tcpdump抓包工具

1. tcpdump工具简介

(1)tcpdump是一个用于截取网络分组,并输出分组内容的工具,tcpdump具有强大的功能和灵活的截取策略,使其成为Unix系统下用于网络分析和问题排查的首选工具。
(2)tcpdump必须在root权限下执行,用来获取网络上的信息。
(3)tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

2. tcpdump常用选项

参数 含义
-A 以ASCII格式打印出所有分组,通常抓取www的网页数据包数据。
-c 在收到指定的数量的分组后,tcpdump就会停止。
-d 将匹配信息包的代码以汇编形式给出。
-dd 将匹配信息包的代码以C语言形式给出。
-e 在输出行打印出数据链路层的头部信息,也就是使用数据链路层的MAC数据包数据来显示.
-i 指定监听的网络接口。
-vv 输出详细的报文信息。
-w 直接将分组写入文件中,而不是不分析并打印出来。
-X 可以列出16进制以及ASCII的数据包内容,对于监听数据包内容很有用。

示例:

tcpdump -ntv -i xxx 
-n表示不将网络地址转化为名称,-t不输出时间戳,-v输出详细信息。

3. tcpdump表达式

(1)tcpdump利用它作为过滤报文的条件,如果一个报文满足表 达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包 将会被截获。
(2)表达式由一个或多个表达元(组成表达式的基本元素)组成. 一个表达元通常由一个或多个修饰符(qualifiers)后跟一个名字或数字表示的 id组成( 即, qualifiers id).
(3)修饰符: type, dir以及 proto.
type
指定id 所代表的对象类型, host, net, port 以及portrange。

host foo, net 128.3, port 20, portrange 6000-6008
分别表示主机 foo, 网络 128.3, 端口 20, 端口范围 6000-6008. 
如果不指定type修饰符, id默认的修饰符为host.

dir
描述 id 所对应的传输方向, 即发往 id 还是从 id 接收,可取的方向为: src, dst, src or dst, src and dst.(nt:分别表示, id是传输源, id是传输目的, id是传输源或者传输目的, id是传输源并且是传输目的).

src foo,dst net 128.3, src or dst port ftp-data.
分别表示符合条件的数据包中, 源主机是 foo, 目的网络是 128.3, 源或目的端口为 ftp-data.
如果不指定 dir修饰符, id 默认的修饰符为 src or dst.

proto
描述id所属的协议. 常用的协议有: ether, wlan, ip, ip6, arp, rarp, tcp以及 upd.

 ether src foo, arp net 128.3, tcp port 21, udp portrange 7000-7009
 分别表示: 从以太网地址foo来的数据包, 发往或来自128.3网络的arp协议数据包, 发送或接收端口为21的tcp协议数据包, 发送或接收端口范围为7000-7009的udp协议数据包.

示例

src foo 含义是 (ip or arp or rarp) src foo (nt: 即, 来自主机 foo的 ip/arp/rarp协议数据包, 默认 type为 host).
net bar 含义是 (ip or arp or rarp) net bar (nt: 即, 来自或发往 bar网络的 ip/arp/rarp协议数据包).
port 53 含义是 (tcp or udp) port 53(nt: 即, 发送或接收端口为 53的 tcp/udp协议数据包).

猜你喜欢

转载自blog.csdn.net/qq_37954088/article/details/80919956