NetCat号称网络工具中的瑞士军刀,可以用它来做很多有用事情,比如侦听端口、端口扫描、传输文件、网络测速等等。
1、监听端口
机器IP:118.178.255.158
nc -l 9999
妹子,哥想你!
滚蛋
机器IP:47.96.151.115
nc 118.178.255.158 9999
妹子,哥想你!
滚蛋
可以用这个和妹子聊天,比阅后即焚更安全
监听UDP端口
nc -ul 9999
nc -vuz -w2 118.178.255.158 9999
Connection to 118.178.255.158 9999 port [udp/*] succeeded!
2、端口扫描
nc -vz -w2 118.178.255.158 1-1024
-w2 设置2秒超时时间
nc: connect to 118.178.255.158 port 79 (tcp)
timed out: Operation now in progress
Connection to 118.178.255.158 80 port
[tcp/http] succeeded!
3、传输文件
接收端:nc -l 9999 > /tmp/jdk-8u151-linux-x64.tar.gz
发送端:nc 118.178.255.158 9999 < jdk-8u151-linux-x64.tar.gz
测试下来,nc传文件与scp传文件速度无差别,用tcpdump查看数据包个数也差不多,nc传输文件比scp好在不需要输入密码。
4、测试网速
测试网速原理就是采用文件传输方式,把来自一台机器的/dev/zero一直发送给另外一台的机器的/dev/null,这样测试网速因为不需要写磁盘会更精确。
接收端
nc -vnl 9999 > /dev/null
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Listening on :::9999
Ncat: Listening on 0.0.0.0:9999
Ncat: Connection from 47.96.151.115.
Ncat: Connection from 47.96.151.115:36696.
发送端
nc -n 118.178.255.158 9999 < /dev/zero
在接收端测试网速
阿里云测试机网速峰值为5Mbps,换算一下 5*1024/8 =640KB/s,与测试结果的recv相差不大,说明阿里云没有骗人。
5、远程Shell
受控端
nc -l 9999 -e /bin/bash
控制端
nc 118.178.255.158 9999
这是否就意味我没有远程机的root账号而能做很多事了?