tcpdump - 追踪过滤网络数据包
tcpdump 是能够打印指定网卡接口的详细网络包内容的工具集
command format
过滤主机
指定源地址
指定目的地址
过滤端口 抓取所有经过eth1,目的或源端口是25的网络数据
指定源端口
指定目的端口
网络过滤
协议过滤
常用表达式
抓取所有经过eth1,目的地址是172.16.71.254或172.16.71.200端口是80的TCP数据
抓取所有经过eth1,目标MAC地址是00:01:02:03:04:05的ICMP数据
抓取所有经过eth1,目的网络是172.16,但目的主机不是172.16.71.200的TCP数据
高级过滤
IP头
抓分片包 匹配MF,分片包
最后分片包的开始3位是0,但是有Fragment Offset字段匹配分片和最后分片
抓取源端口大于1024的TCP数据包
只抓SYN包,第十四字节是二进制的00000010,也就是十进制的2
抓SYN或者SYN-ACK
用到了位操作,就是不管ACK位是啥抓PSH-ACK
抓所有包含FIN标记的包(FIN通常和ACK一起,表示幽会完了,回见)
抓RST(勾搭没成功,伟大的greatwall对她认为有敏感信息的连接发RST包,典型的棒打鸳鸯)
tcpdump考虑了一些数字恐惧症者的需求,提供了部分常用的字段偏移名字 icmptype (ICMP类型字段) icmpcode (ICMP符号字段) tcpflags (TCP标记字段) ICMP类型值有:
TCP标记值:
这样上面按照TCP标记位抓包的就可以写直观的表达式了:只抓SYN包
抓SYN, ACK
抓SMTP数据
抓取数据区开始为"MAIL"的包,"MAIL"的十六进制为0x4d41494c
抓HTTP GET/POST数据 GET
POST
查看HTTP请求响应头
抓SSH返回
"SSH-"的十六进制是0x5353482D
抓老版本的SSH返回信息,如"SSH-1.99.."
按数量抓包保存到文件 -c参数指定抓多少个包
上面的命令计算抓10000个SYN包花费多少时间,可以判断访问量大概是多少
领取专属 10元无门槛券
私享最新 技术干货