Ubuntu 环境下用嗅探器识别僵尸网络的可操作方案
识别思路与关键信号
- 主机行为侧写:同一主机对大量外联 IP/端口发起短连接,连接时长极短、频率高,常见于DGA 域名解析与命令控制(C2)心跳。
- 协议与载荷特征:非业务时段仍有DNS/NTP/HTTP/HTTPS外联;DNS 查询中出现异常长随机子域;HTTP 请求头异常(如User-Agent 一致、无 Referer、异常路径);TLS 握手到非常见端口或证书信息可疑。
- 流量统计异常:基于基线建模发现突发高包量、异常协议占比、连接数暴增等偏离常态的模式。
- 主机侧佐证:可疑进程持续外联、启动项/计划任务新增、系统调用异常等(配合主机 IDS/EDR 更有效)。
工具与安装
- 抓包与离线分析:tcpdump、Wireshark(协议细查、统计视图)。
- 实时连接与带宽:iftop、nload、bmon、vnstat(快速定位异常连接与带宽尖峰)。
- 安装命令示例:
- sudo apt update && sudo apt install tcpdump wireshark iftop nload bmon vnstat
- 合规提示:抓包/嗅探需获得网络与主机所有者授权,避免触犯隐私与合规要求。
快速排查流程
- 建立基线:先用vnstat、iftop、nload观察一段时间的带宽、连接数、协议分布,记录常态阈值。
- 发现异常主机:在网关/关键主机上用iftop -P -N或nload找出异常出流量的源 IP/端口与方向。
- 抓包定位:对可疑主机或网段定向抓包并落盘,便于深度分析。
- 示例:sudo tcpdump -i eth0 -w c2-suspect.pcap(按实际接口名替换)
- 协议与载荷筛查:
- DNS 异常长随机子域:sudo tcpdump -i eth0 -nn -s0 -r c2-suspect.pcap ‘udp port 53’ | egrep -o ‘[a-z0-9]{20,}.[a-z]{2,}’ | sort | uniq -c | sort -nr | head
- HTTP 可疑 UA/路径:sudo tcpdump -i eth0 -nn -A -r c2-suspect.pcap ‘tcp port 80 and (http.request or http.response)’ | egrep -i 'User-Agent:|Host:|GET |POST ’
- HTTPS 非常见端口:sudo tcpdump -i eth0 -nn -r c2-suspect.pcap ‘tcp port 4443 or 8443 or 10443’
- 会话与频率分析:统计源 IP 对目的 IP/端口的会话次数与 RTT,识别“高频短会话”模式。
- 示例:sudo tcpdump -i eth0 -nn -r c2-suspect.pcap ‘tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn’ | awk ‘{ip=$5; gsub(/:.*/,“”,ip); cnt[ip]++;} END {for(i in cnt) print cnt[i],i;}’ | sort -nr | head
- 可视化与统计:用Wireshark的“Statistics → Protocol Hierarchy / Conversations / Endpoints”查看协议占比、会话矩阵、端点排行,交叉验证异常。
- 主机侧取证:结合OSSEC等 HIDS 检查异常进程、启动项、登录与网络连接,形成闭环证据。
典型命令清单
- 实时查看连接与带宽:sudo iftop -i eth0 -P -N;sudo nload
- 定向抓包:sudo tcpdump -i eth0 -w capture.pcap
- 读取与过滤:sudo tcpdump -r capture.pcap -nn
- DNS 长随机子域:sudo tcpdump -i eth0 -nn -s0 -r capture.pcap ‘udp port 53’ | egrep -o ‘[a-z0-9]{20,}.[a-z]{2,}’ | sort | uniq -c | sort -nr | head
- HTTP 可疑 UA/路径:sudo tcpdump -i eth0 -nn -A -r capture.pcap ‘tcp port 80 and (http.request or http.response)’ | egrep -i 'User-Agent:|Host:|GET |POST ’
- 高频 SYN 源 IP:sudo tcpdump -i eth0 -nn -r capture.pcap ‘tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn’ | awk ‘{ip=$5; gsub(/:.*/,“”,ip); cnt[ip]++;} END {for(i in cnt) print cnt[i],i;}’ | sort -nr | head
- 协议分布统计:在 Wireshark → Statistics → Protocol Hierarchy 查看各协议占比是否异常。
处置与加固建议
- 立即隔离:对确认受控主机断网/隔离网段,保留pcap与系统日志用于取证。
- 阻断通道:在边界/主机防火墙临时封禁异常外联 IP/域名与端口;对可疑域名实施DNS 黑名单与出口策略收紧。
- 清理与加固:终止恶意进程、清理启动项/计划任务/crontab、修补漏洞、更新AV/EDR/IDS特征库,并重置相关凭据。
- 持续监测:基于已建立的流量与行为基线开展持续监测,结合主机 IDS与网络 IDS联动告警,缩短检测与响应时间。