tcpdump抓包工具详解

一、简介

tcpdump是一种用来截取网络分组,并输出分组内容的工具。tcpdump抓包工具从筛选条件来分类,主要有三大类。一是针对关键字,譬如主机名(HOST)、网段(NET)、端口(PORT);二是针对包的方向,譬如源地址(src)、目的地址(dst),且可以支持逻辑运算符号(src and dst、src or dst)。三是针对协议进行抓包,譬如抓取tcp/udp/imcp等协议的数据包。

二、参数介绍

tcpdump 常用命令参数:

-D :展示可供抓包的端口

-n :将网络地址以数字形式展示

-nn :不进行端口名称的转换

-i :后面跟端口,针对该端口进行抓包

-w :后面跟文件名,将抓取的数据包保存至某个文件(一般保存为.pcap/.cap文件格式)

-v :展示数据包详细详细

-vv :展示数据包更详细的信息

-e :展示数据链路层信息,主要是mac地址

-c :要抓取的数据包数量

-C :在将一个原始包写入文件之前,检查文件当前的大小是否超过了参数file_size 中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。

-r :从指定的文件中读取包(这些包一般通过-w生成)

-t :不在每一行中输出时间戳。

三、示例解析

1、截取端口eth0的所有关于主机192.168.137.21的数据包

tcpdump -i eth0 host 192.168.137.21

2、截取所有端口的关于192.169.137.0网段的数据包

tcpdump net 192.168.137.0/24

3、截取端口eth0的关于192.169.137.0网段且端口为23的数据包

tcpdump -i eth0 net 192.168.137.0/24 and port 23

4、 截取主机名为hostname的主机发送的通信数据包

tcpdump src host hostname

5、在端口eth0上截取主机名为hostname的主机接收的的通信数据包

tcpdump -i eth0 dst host hostname

6、在eth0上截取所有tcp协议的数据包

tcpdump -i eth0 tcp 

下面介绍些混合带参数较复杂一些的示例

1、 在eth0端口截取源主机192.168.137.21和目的端口不为23的报头,并导入到test.txt文件中

tcpdump -nn -e -i eth0 src host 192.168.137.21 and dst port not 23 -w test.txt

//-nn将主机名端口以数字形式显示;-e展示数据链路层信息

2、截取所有从主机192.168.1.1发往192.168.3.0网段但是不包括192.168.3.1的icmp协议的包,显示mac地址,保存至test.txt文件 

tcpdump -e src host 192.168.1.1 and dst net 192.168.3.0/24 and dst host not 192.168.3.1 and icmp -w test.txt

猜你喜欢

转载自blog.csdn.net/m0_64496909/article/details/124780636