Tcpdump使用语法:
tcpdump [ -adeflnNOpqStvx ] [ -c count ] [ -F file ][ -i interface ] [ -r file ] [ -w file ]
参数:
-c 指定监听的封包数,默认持续监听。
-e 显示链路层报头
-nn 以数字方式显示IP及端口
-i 指定监听的网卡
-F 读取文件内的过滤参数
-q 快速输出模式
-l 使标准输出变为行缓冲形式,用于重定向分析
-w 数据包保存为文件
-r 读取保存的数据包
-A 以ASCII编码显示数据包
-x 以十六进制显示
-s 指定抓包显示一行的宽度,-s0表示显示完整的包
应用举例:
1.监听单个IP的所有TCP通信
#https://www.haiyun.me
tcpdump tcp -nn -v host 192.168.1.16
2.监听指定IP间的ARP通信
tcpdump arp -nn -v host 192.168.1.16 and 192.168.1.1
3.监听DNS查询数据包
tcpdump udp port 53
4.监听目标端口80的数据包
tcpdump -A -v dst port 80
5.监听指定IP目标80端口的数据包
tcpdump -A -v -s 0 host 192.168.1.235 and dst port 80
6.监听特定TCP标志的数据包
tcpdump tcp[tcpflags]=tcp-syn
#syn ack
tcpdump 'tcp[13] = 18'
7.监听HTTP HEAD:
#GET
tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
#POST
tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'
#所有HEAD
tcpdump -A -s 0 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'