在日常网络运维或安全排查中,面对成千上万的数据包,如何快速找到自己关心的那一个?盲目抓包只会让屏幕刷满无用信息。掌握一些实用的数据包过滤技巧,能让你像筛沙淘金一样,高效定位问题。
\n\n使用Wireshark显示过滤器快速筛选
\n当你已经捕获了一大堆数据包,可以用Wireshark的显示过滤器进行事后筛选。比如只看HTTP流量,直接在过滤栏输入:
\nhttp\n想查看某个IP的通信记录,写上:
\nip.addr == 192.168.1.100\n注意这里用双等号,可以同时匹配源和目的地址。如果只想看发往该IP的包,就用单等号加方向:
\nip.dst == 192.168.1.100\n\n捕获过滤器提前缩小范围
\n与其抓完再筛,不如一开始就限定范围。在开始捕获前设置捕获过滤器,减轻系统负担。例如,只捕获来自某主机且使用TCP协议的包:
\nhost 192.168.1.100 and tcp\n如果怀疑是DNS问题,可以只抓53端口的数据:
\nport 53\n\n组合条件锁定异常行为
\n某些攻击行为会表现出特定特征。比如ARP欺骗常伴随大量ARP响应包。可以通过以下过滤语句揪出可疑主机:
\narp.opcode == 2\n再配合源地址筛选,很容易发现非网关设备却频繁发送ARP应答的情况。
\n\n过滤特定协议层次的数据
\n排查问题时,分层过滤更清晰。比如查看所有ICMP包(常用于ping测试或网络探测):
\nicmp\n或者只关注TCP握手阶段的SYN包,判断是否存在扫描行为:
\ntcp.flags.syn == 1 and tcp.flags.ack == 0\n\n利用字符串匹配查找敏感内容
\n有些明文传输的内容可以通过关键字抓出来。比如查找URL中包含login的请求:
http.request.uri contains \"login\"\n注意特殊字符要用反斜杠转义。这种方式不适合HTTPS,但对调试内部HTTP服务很实用。
\n\n保存常用过滤器提高效率
\n经常重复使用的过滤规则,可以保存为命名过滤器。比如创建一个叫web-traffic的过滤器,内容为:
tcp port 80 or tcp port 443\n下次点击就能直接加载,不用每次都手动输入。
\n\n实际工作中,比如公司内网突然变慢,用top talkers功能配合过滤器,很快就能发现是某台设备在偷偷上传数据。又或者APP连接失败,通过过滤目标域名相关的DNS和TCP连接,几秒内就能判断是解析问题还是连接超时。这些技巧看似简单,用好了却能省下大量排查时间。