使用tcpdump更加精确的抓包

来源:互联网 发布:python算法精解 编辑:程序博客网 时间:2024/05/04 20:08

tcpdump 保存文件 -w *.cap -c ip包个数
-e 打印数据链路层信息,可以查看数据包的MAC地址

tcpdump中的协议关键字:
(1) 过滤ip包长度
tcpdump -i eth0 -n -vv icmp and 'ip[2:2] > 100'
(2) 过滤相关的tcp类型包
tcp类型包包括:
URG(带外数据)
ACK(应答包)
PSH(PSH传送)
RST(重置包)
SYN(握手包)
FIN(结束包)

这几个标志分别在tcp头部第14字节的后6位,为1则表示该包是哪个具体的tcp包.
比如二进制000001(十进制1)表示FIN结束包,000010(十进制2)表示SYN握手包,
000011(十进制3)则表示FIN和SYN都可以捕获 

捕获所有的FIN和SYN包
tcpdump -i eth0 -n -vv tcp and 'tcp[13] & 3 != 0'

捕获含有FIN的包
tcpdump -i eth0 -n -vv tcp and 'tcp[13] & 1 != 0'

捕获RST包
tcpdump -i eth0 -n -vv tcp and 'tcp[13] & 4 != 0'

依此类推其他协议也可以这样处理

 

或者使用如下形式:

tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0' 抓取所有tcp syn和fin包,依此类推

 

原创粉丝点击