数据包捕获及分析工具介绍
1、tcpdump工具可以分析数据包的流向,也可以监听明文传输的数据包内容。具体用法如下:
tcpdump [-nn][-i 接口][-w 储存档名][-c 次数][-Ae][-qX][-r 文件][所捕获的数据内容]
参数说明:
-nn,直接以IP及Port Number显示,而非主机名与服务名称;
-i,后面接要监听的网络接口,比如eth0、lo、ppp0等;
-w,如果你要将监听所得的数据包数据储存下来,用这个参数即可,后面接文件名;
-c,监听的数据包数,如果没这个参数,tcpdump会持续不断地监听,直到用户输入ctrl+c终止为止;
-A,数据包的内容以ASCII显示,通常用来抓取www的网页数据包资料;
-e,使用数据链路层的MAC数据包数据显示;
-q,仅列出较为简短的数据包信息,每一行的内容比较精简;
-X,可以列出16进制以及ASCII的数据包内容,对于监听数据包内容很有用;
-r,从后面接的文件将数据包数据读出来,该文件必须是已经存在且由-w所制作的文件;
所捕获的数据内容:我们可以针对专门的某些通信协议或是IP头源进行数据包捕获,那就可以简化输出结果并取得最有用的信息,常见的表示方法有:
'host foo','host 127.0.0.1':针对单台主机来进行数据包的捕获;
'net 192.168':针对某个网段来进行数据包的捕获;
'src host 127.0.0.1' 'dst net 192.168':同时加上来源或目标予以限制;
'tcp port 21':还可以针对通信协议检测,如tcp、udp、arp、ether等;
还可以利用and与or来进行数据包数据的整合显示的。
命令范例:
tcpdump -c 3 -i eth0 -nn
tcpdump -i eth0 -nn port 21
tcpdump -i lo -nn -X 'port 21'
使用tcpdump监听来自eth0适配卡且通信协议为port 22,目标来源为192.168.1.100的数据包资料:tcpdump -i eth0 -nn 'port 22 and src host 192.168.1.100'
为了让网络接口可以让tcpdump监听,所以执行tcpdump时网络接口会启动在“混杂模式(promiscuous)”,将会在/Var/log/messages里面看到很多警告信息,通知你说网卡被设置成为混杂模式了,看到这个不要担心,属于正常情况。
2、另外一个好用的网络流量分析软件是ethereal,其有文本界面和图形界面两种,文本界面的用法与tcpdump类似,不过命令名称为tethereal,在CentOS上安装时要同时安装ethereal与ethereal-gnome;
范例:
连接本地的port 25查阅相关信息:nc localhost 25[此功能类似telnet]
更神奇的演示如下:
先在Client端启动一个port来进行监听:nc -l -p 20000
然后在主机端利用nc联机到客户端:nc localhost 20000,回车后继续输入一些字符串,你会发现在Client端同时也出现了你输入的文字。
更详细地了解nc的功能和用途,自行查看下机器内的/usr/Share/doc/nc-1.10/scripts目录下的这些scripts,有帮助的。
3、nc(或叫netcat)软件,它可以连接到某个port来进行通信,还可以自行启动一个port来倾听其他用户的联机,非常好用。如果在编译的时候设置了GAPING_SECURITY_HOLE参数的话,还可以用来取得客户端的bash,有点可怕!具体用法如下:
nc [IP|host][port]
nc -l -p [port]
参数说明:
-l,作为监听之用,也就是开启一个port来监听用户的联机;
-p,开启的这个Port Number。