NetCat,在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具,可通过TCP或UDP协议传输读写数据。同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。
语法
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
参数说明:
-g<网关> 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。详细信息
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
实例
TCP端口扫描
nc -v -z -w2 192.168.110.167 1-100
192.168.110.167: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.110.167]80 (http) open
(UNKNOWN) [192.168.110.167]23 (telnet) open
(UNKNOWN) [192.168.110.167]22 (ssh) open
扫描192.168.110.167 的端口 范围是 1-100
扫描UDP端口
nc -u -z -w2 192.168.110.167 1-1000 //扫描192.168.110.167 的端口 范围是 1-1000
扫描指定端口
nc -nvv 192.168.110.167 80 //扫描 80端口
(UNKNOWN) [192.168.110.167] 80 (?) open
y //用户输入
同一网段聊天
A主机:nc -lvp 5678
B主机:nc ip(A主机) 5678
文件传送
A:nc -lvp port
B:nc ip port < 文件名
或:
A:nc -lvp port >/ / /文件路径+文件名
B:nc IP port < 文件名
克隆
A:nc -l 9999|dd of =/dev/sda
B:dd if=/dev/sda |nc -nv ip 9999
密文传输(使用kali)
A: nc -lp 333 | mcrypt--flush-Fbqd -a rijndael-256 -m ecb > 1.txt
{在本地侦听333端口,等待接收文件(等待着别人给传文件),将接收到的文件重定向对其进行解密,最后保存为本地文件!}
其实在本次传输过程中,是B端先将文件进行加密,之后再重定向通过nc传输给A端。
B: mcrypt --flush -Fbq -a rijndael-256 -m ecb < 1.txt | nc -nv IP(A主机) 333 -q 1
{将1.txt的内容输入给加密指令进行加密,之后将加密后的文件管道给nc,nc再去连接A端的333端口,一旦连上,立即传输,传输完成以后延迟1秒断开连接}
如没有mcrypt命令,更新kali源source.list
详情点击 kali最新国内更新源sources.list