一、Netcat是什么
Netcat 是一个使用TCP/IP协议在网络之间读写数据的网络实用工具。
常用来发送或者监听TCP或者UDP数据包,也可以用来做网络隧道,甚至还具有一定的端口扫描能力。
二、常用参数
-l
: 开启监听-p
:指定端口-t
: 以telnet形式应答-e
:程序重定向-n
:以数字形式表示ip-v
:显示执行命令过程-z
:不进行交互,直接显示结果-u
:使用UDP协议传输-w
:设置超时时间
三、使用场景
3.1 确认端口是否开启
nc -nvz 127.0.0.1 80
如果端口是开启的,会看到:
[127.0.0.1] 80 (http) open
如果没开启,则会看到:
[127.0.0.1] 80 (http) : Connection refused
3.2 监听端口的数据
nc -l -p 80
会监听80端口的TCP连接,并直接输出TCP连接发来的数据,像这样:
$ nc -l -p 80
asd
dq
vdasdv
如果希望监听UDP,可以添加 -u 参数:
nc -l -u -p 80
3.3 向目标端口发送数据
nc -nv 127.0.0.1 80
使用上述命令后,会向80端口建立连接,并将后续输入的内容直接发送到80端口。
当然发送UDP数据,也是加上 -u 参数即可。
还可这样,比如把 “测试内容”以UDP形式发送到80端口:
echo "测试内容" | nc -nvu 127.0.0.1 80
或者 把文件内容通过TCP发送到80端口:
cat ./file.txt | nc -nv 127.0.0.1 80