`

linux抓包工具tcpdump

 
阅读更多

抓包工具比较好用的有两个,一个是

snort

,一个是

tcpdump

,这次不说

snort

了,觉得这个工具虽然很强

大,但是比较复杂,还是

tcpdump

比较简单。

tcpdump windows

linux

版本均有。

linux

版本可以在以下

网站下载:

 

www.tcpdump.org. 

安装好

tcpdump

之后,运行

tcpdump

 

1. tcpdump -D 

获取网络适配器列表

,以下是在

windows

上获取到的结果:

 

 

1.\Device\PssdkLoopback (PSSDK Loopback Ethernet Emulation Adapter) 

2.\Device\{CF587901-C85F-4FD6-896F-D977DEFE76EC} (Intel(R) PRO/100 VE 

Network Co 

nnection) 

2. tcpdump -i <

需要监控的网络适配器编号

>

,例如我想监控

lo(127.0.0.1)

,即上面列表中的

1.\Device\PssdkLoopback: 

windows

上特有的,

 

linux

不适用)

 

tcpdump -i 1 

如果不使用

-i

来定义监控适配器的话,默认使用列表中的第一个;

 

3. 

监控主机为

192.9.200.59

8000

端口的

tcp

协议

 

 

tcpdump host 192.9.200.59 and tcp port 8000 

4. 

如果想要显示数据包的内容,

需要使用

-X

参数

如,

我想要显示捕获的

http

数据包

http header

的内容:

 

 

tcpdump -X host 192.9.200.59 and tcp port 8000 

显示结果如下:

 

 

22:13:19.717472 IP testhost59.12535 > liujuan59.8000: . 1:330(329) ack 1 win 327 

        

0x0000:  

4500 0171 e616 0000 8006 cb2b 0000 0000  

E..q.......+.... 

        

0x0010:  

c009 c83b 30f7 1f40 0000 0002 0000 0002  ...;0..@........ 

        

0x0020:  

5010 8000 b066 0000 504f 5354 202f 2048  

P....f..POST./.H 

        

0x0030:  

5454 502f 312e 310d 0a43 6f6e 7465 6e74  

TTP/1.1..Content 

        

0x0040:  

2d54 7970 653a 2074 6578 742f 786d 6c3b  

-Type:.text/xml; 

        

 

0x0050:  

2063                                     .c 

可以看到该结果只显示了

http

头的一部分,没有显示全,是因为

tcpdump

默认将显示的数据长度截断了,

可以使用

-s

后面加数据长度,来设置数据显示长度:

 

 

tcpdump -X -s 0 host 192.9.200.59 and tcp port 8000 

以上的例子中,

-s 0 

表示自动设置长度使其能够显示所有数据。

 

5. 

捕获的数据太多,不断刷屏,可能需要将数据内容记录到文件里,需要使用

-w

参数

 

 

tcpdump -X -s 0 -w aaa host 192.9.200.59 and tcp port 8000 

则将之前显示在屏幕中的内容,写入

tcpdump

 

可执行文件同级目录下的

aaa

文件中。

 

文件查看方式如下,需要使用

-r

参数:

 

tcpdump -X -s 0 -r aaa host 192.9.200.59 and tcp port 8000 

如果这样写:

 

tcpdump -r aaa 

则只能看到最简单的数据传输交互过程,看不到数据包内容,查看时也需要使用相应的参数。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics