netcat使用

netcat可以作为类似于telent的客户端,也可以监听某个端口作为服务器,还可以作为扫描工具扫描对方主机的端口,还可以用来传输文件,不相信吗?听我慢慢道来:) 
首先我们要弄明白netcat的工作原理,其实netcat的原理很简单,它就是从网络的一端读入数据,然后输出到网络的另一端,它可以使用tcp和udp协议.之所以叫做netcat,因为它是网络上的cat,想象一下cat的功能,读出一个文件的内容,然后输出到屏幕上(默认的stdout是屏幕,当然可以重定向到其他地方).netcat也是如此,它读取一端的输入,然后传送到网络的另一端, 
就这么简单.但是千万不要小看了它,netcat可以完成很多任务,,尤其是和其他程序组合时.好了,废话少说,进入正题吧.:p 
网上有两种版本的netcat,一个是@stake公司的netcat,http://www.atstake.com/research/tools/network_utilities/ 也就是最初的版本,还有一个是GNU的netcat.http://netcat.sourceforge.net/download.php 我个人更倾向于使用GNU的netcat,因为它的功能更多,不过GNU的没有windows平台的版本:confused:

只介绍windows平台上一些操作。

参数:

 

-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式的指定范围。

 

下载好nc.exe后,放到c:\windows目录下

 

一、简单服务器 

nc -l -p <portnumber> //这里-l参数表明nc处于监听模式,-p指定端口号. 
nc -l -p 1234[假设这台主机ip为192.168.0.1] 
然后从客户端输入,nc 192.168.0.1 1234 然后你从任一端输入的数据就会显示在另一端了.其实netcat的server和client的区别并不大,区别仅仅在于谁执行了-l来监听端口,一旦连接建立以后,就没有什么区别了.从这里我们也可以了解netcat的工作原理了,通过网络链接读写数据.[It is a simple Unix utility which reads and writes data across network connections, using TCP or UDP protocol]--@stake主页是这么说的. 

二、telnet服务器 

nc有一个-e的选项,用来指定在连接后执行的程序. 
在windows平台上可以指定-e cmd.exe[winxp,win2000,]如果是98就指定command.exe.linux则指定-e bash,或者任何你喜欢的shell,或者是你自己编写的程序,通常是做为后门:p 
指定-e的效果是由你指定的程序代替了nc自己来接受另一端的输入,并把输入(命令)后反馈的结果显示到另一端. 
server: nc -l -p 1234 -e bash 
client: nc 192.168.0.1 1234 就可以远程登陆server了 
其实我们不一定非要在server端指定-e,也可以在client端指定. 
server: nc -l -p 1234 
client:nc -e cmd.exe 192.168.0.1 1234 .这样,就相当于在server上远程登陆client了.我前面说过,有关client和server的区分是没有什么意义的.谁做为telnet server的标准只有一个,谁执行了-e [shell]. 

 

三、传送文件

server:nc -v -l -p 1234 > c:\1.txt

client:nc -v -n 192.168.0.1 1234 < c:\1.txt

输入命令后,client就可以将1.txt通过1234端口发送出去,而server则会开放1234端口接受1.txt,并在C盘根目录下创建1.txt

-v:显示端口信息

 

四、扫描端口 

nc -z -w 2 -v -v http://www.somewhere.com/ port[,port[,port-port]] 
-z 指定zero-I/O 模式,它让netcat禁止任何来自源系统的I/O,如果不指定它,netcat会无限期的挂起端口.所以在网络扫描时要指定-z选项. 
-w 指定超时时间,单位为秒 
-v 详细模式 
例: nc -z -w 2 -v -v http://www.somewhere.com/ 20-30 
不过我不赞成使用netcat来扫描,因为我觉得它的速度不够快,而且得到的信息不够全,而且更重要的是不够隐蔽.nmap倒是个上好的选择,如果有时间,我会在另一篇文章里讨论nmap的超酷功能.[做做广告先:p] 

 

参见:http://www.cnblogs.com/starspace/archive/2009/01/15/1376288.html

 

你可能感兴趣的:(net)