NC使用教程(上)

引用
[root@hatest1 ~]# cat
/etc/asianux-release

 
Asianux release 2.0 (Trinity
SP2)

 
[root@hatest1 ~]# cat
/etc/redflag-release

 
Red Flag DC Server release
5.0 (Trinity SP2)

 
[root@hatest1 ~]# type -a nc
 
nc is /usr/bin/nc
 
[root@hatest1 ~]# rpm -q nc
 
nc-1.10-22
 
建议在使用前,先用man nc看看帮助。这里以红旗DC Server 5.0上的1.10版本进行简单说明。
 
假设两服务器信息:
引用
server1: 192.168.228.221
 
server2: 192.168.228.222
 
二、常见使用
 
1、远程拷贝文件
 
server1拷贝文件到server2上。需要先在server2上,用nc激活监听,server2上运行:
引用
[root@hatest2 tmp]# nc -lp
1234 > install.log

 
server1上运行:
引用
[root@hatest1 ~]# ll
install.log

 
-rw-r–r–   1 root root 39693 12 20   2007 install.log
 
[root@hatest1 ~]# nc -w 1
192.168.228.222 1234 < install.log

 
2、克隆硬盘或分区
 
操作与上面的拷贝是雷同的,只需要由dd获得硬盘或分区的数据,然后传输即可。
 
克隆硬盘或分区的操作,不应在已经mount的的系统上进行。所以,需要使用安装光盘引导后,进入拯救模式(或使用Knoppix 具光盘)启动系统后,在server2上进行类似的监听动作:
# nc -l -p 1234 | dd of=/dev/sda
server1上执行传输,即可完成从server1克隆sda硬盘到server2的任务:
# dd if=/dev/sda | nc 192.168.228.222 1234
完成上述工作的前提,是需要落实光盘的拯救模式支持服务器上的网卡,并正确配置IP
3、端口扫描
 
可以执行:
引用
# nc -v -w 1 192.168.228.222
-z 1-1000

 
hatest2 [192.168.228.222] 22
(ssh) open

 
4、保存Web页面
# while true; do nc -l -p 80 -q 1 <
somepage.html; done

5、模拟HTTP Headers
引用
[root@hatest1 ~]# nc www.huanxiangwu.com 80
 
GET / HTTP/1.1
 
Host:
ispconfig.org

 
Referrer:
mypage.com

 
User-Agent:
my-browser

 

 
HTTP/1.1 200 OK
 
Date: Tue, 16 Dec 2008
07:23:24 GMT

 
Server: Apache/2.2.6 (Unix)
DAV/2 mod_mono/1.2.1 mod_python/3.2.8 Python/2.4.3 mod_perl/2.0.2 Perl/v5.8.8

 
Set-Cookie: PHPSESSID=bbadorbvie1gn037iih6lrdg50;
path=/

 
Expires: 0
 
Cache-Control: no-store,
no-cache, must-revalidate, post-check=0, pre-check=0

 
Pragma: no-cache
 
Cache-Control: private,
post-check=0, pre-check=0, max-age=0

 
Set-Cookie: oWn_sid=xRutAY;
expires=Tue, 23-Dec-2008 07:23:24 GMT; path=/

 
Vary: Accept-Encoding
 
Transfer-Encoding: chunked
 
Content-Type: text/html
 
[......]
 
nc命令后,输入红色部分的内容,然后按两次回车,即可从对方获得HTTP
Headers
内容。
6、聊天
 
nc还可以作为简单的字符下聊天工具使用,同样的,server2上需要启动监听:
[root@hatest2 tmp]# nc -lp 1234
server1上传输:
[root@hatest1 ~]# nc 192.168.228.222 1234
这样,双方就可以相互交流了。使用Ctrl+D正常退出。
7、传输目录
 
server1拷贝nginx-0.6.34目录内容到server2上。需要先在server2上,用nc激活监听,server2上运行:
引用
[root@hatest2 tmp]# nc -l
1234 |tar xzvf -

 
server1上运行:
引用
[root@hatest1 ~]# ll -d
nginx-0.6.34

 
drwxr-xr-x 8 1000 1000 4096
12-23 17:25 nginx-0.6.34

 
[root@hatest1 ~]# tar czvf –
nginx-0.6.34|nc 192.168.228.222 1234



在网络工具中有“瑞士军刀”美誉的NetCat,
 在我们用了N年了至今仍是爱不释手。因为它短小精悍(这个用在它身上很适合,现在有人已经将其修改成大约10K左右,而且功能不减少)。现在就我的一些使用心得和一些帮助文档中,做一些介绍与大家共勉。
 1、 了解NC的用法
 命令:nc –h
 技巧:win98用户可以在autoexec.bat加入path=nc的路径,win2000用户在环境变量中加入path中,linux含有这个命令(redhat)
 1、基本使用
 想要连接到某处: nc [-options] hostname port[s] [ports]
...

 绑定端口等待连接:
 nc -l -p port [-options] [hostname] [port]
 参数:
 -e prog 程序重定向,一旦连接,就执行
 [危险!!]
 -g gateway source-routing hop point[s], up to 8
 -G num
 source-routing pointer: 4, 8, 12, ...
 -h 帮助信息
 -i secs 延时的间隔
 -l
 监听模式,用于入站连接
 -n 指定数字的IP地址,不能用hostname
 -o file 记录16进制的传输
 -p port 本地端口号
 -r 任意指定本地及远程端口
 -s addr 本地源地址
 -u UDP模式
 -v 详细输出——用两个-v可得到更详细的内容
 -w secs timeout的时间
 -z 将输入输出关掉——用于扫描时
 其中端口号可以指定一个或者用lo-hi式的指定范围。
 例如:扫描端口
 tcp扫描
 C:\nc>nc -v -z -w2 192.168.0.80 1-140
 net
 [192.168.0.80] 140 (?)
 net [192.168.0.80] 139 (netbios-ssn) open
 net
 [192.168.0.80] 138 (?)
 net [192.168.0.80] 137 (netbios-ns)
 net
 [192.168.0.80] 136 (?)
 net [192.168.0.80] 135 (epmap) open
 net
 [192.168.0.80] 81 (?) open
 net [192.168.0.80] 80 (http) open
 net
 [192.168.0.80] 79 (finger)
 net [192.168.0.80] 25 (smtp) open
 net
 [192.168.0.80] 24 (?)
 net [192.168.0.80] 23 (telnet)
 net [192.168.0.80]
 21 (ftp)
 udp扫描
 C:\nc>nc -u -v -z -w2 192.168.0.80 1-140
 net
 [192.168.0.80] 140 (?) open
 net [192.168.0.80] 139 (?) open
 net
 [192.168.0.80] 138 (netbios-dgm) open
 net [192.168.0.80] 137 (netbios-ns)
 open
 net [192.168.0.80] 54 (?) open
 net [192.168.0.80] 53 (domain) open
 net [192.168.0.80] 38 (?) open
 net [192.168.0.80] 37 (time) open
net
 [192.168.0.80] 7 (echo) open
转载请注明本文链接: http://www.mayidui.net/t2279.html
游客
登录后才可以回帖,登录 或者 注册