tcpdump本身不制造漏洞,但能精准捕获漏洞利用的原始流量特征,是验证系统是否存在可被利用漏洞的关键证据;需root权限运行以开启混杂模式,配合-bpf过滤表达式直击未授权访问、rce试探、爆破痕迹、dns隧道等典型攻击指纹,并通过实时syn扫描、小包密集、重传异常等现象快速判别风险。

tcpdump 本身不制造漏洞,也不执行攻击,但它能精准捕获并呈现漏洞利用过程中的真实流量特征——这是验证系统是否存在可被利用的网络安全漏洞的关键证据。
确认目标接口与权限基础
漏洞流量验证的前提是能真实看到进出系统的原始数据包。必须用 root 权限运行,否则无法开启混杂模式:
- 先执行 sudo tcpdump -D 列出所有可用接口,重点关注 eth0(有线)、wlan0(Wi-Fi)或 rmnet_data0(Android 蜂窝网络),避免使用 lo(仅本机通信,不反映外部攻击)
- 若提示 “device not found”,可用 ip -br a 或 ifconfig 辅助确认实际网卡名
- 无 root 权限时命令会直接失败,不是配置问题,而是权限缺失
针对常见漏洞类型的过滤抓包策略
不同漏洞在流量层有独特指纹,用 BPF 表达式直击要害,避免全量抓包干扰判断:
- 未授权访问类(如 Redis 默认端口、MongoDB 开放):sudo tcpdump -i eth0 -nn 'port 6379 or port 27017' —— 检查是否有非预期的外部 IP 连接这些服务端口
- 远程代码执行(RCE)试探行为:sudo tcpdump -i eth0 -nn 'tcp port 80 or 443 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420 or tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)' —— 匹配 HTTP GET/POST 请求头,筛查含可疑路径(如 /shell.php、/cmd.jsp)的流量
- 凭证爆破痕迹(SSH/RDP):sudo tcpdump -i eth0 -nn 'port 22 or port 3389 and tcp[tcpflags] & tcp-syn != 0' —— 高频 SYN + 多次重传 + 短连接,常伴随大量失败登录尝试
- DNS 隧道或 C2 通信:sudo tcpdump -i eth0 -nn 'udp port 53 and (len > 100 or (udp[10:2] & 0x8000) == 0)' —— 异常长的 DNS 查询或非标准响应标志位,是隐蔽信道典型信号
抓包过程中的实时判别要点
边抓边看比事后分析更高效,三类现象出现即需警惕:
- 同一源 IP 在数秒内向本机多个端口(如 22→80→443→3306)发起 TCP SYN,且极少收到 ACK → 典型端口扫描或漏洞探测
- 大量小包(
- 目标端口非业务常用端口(如 4444、5555、6667),且源 IP 属于境外或已知恶意 ASN → 高风险木马回连特征
保存与后续验证闭环
发现可疑流量后,立即固化证据用于交叉验证:
- 用 -s0 -w 保存完整包:sudo tcpdump -i eth0 -nn -s0 -w /tmp/vuln-verify-$(date +%Y%m%d).pcap 'src host 192.168.5.222'(替换为实际可疑源)
- -s0 确保不截断 payload,避免丢失关键载荷(如 shellcode、恶意 URL)
- 导出后可用 tcpdump -r file.pcap -A | grep -i "exec\|system\|bash\|nc\|curl" 快速筛查明文命令痕迹
- 将 pcap 文件导入 Wireshark,结合 TLS 解密(如有私钥)或 HTTP 流重组,还原完整攻击链











