内网渗透——struts2远程任意代码执行(s2-046)


0X01:struts2介绍:

Struts2是一个基于MVC设计模式的web应用框架,它本质上相当于一个servlet,在MVC设计模式中,struts2作为控制器来建立模型与视图的数据交互。Struts2的使用范围及其广泛,国内外均有大量厂商使用该框架。

 

0X02:漏洞介绍:

根据漏洞提交者纰漏,s2-046的利用条件有以下三个方面:

1.系统必须使用jakarta插件,检查struts2配置文件中是否有以下配置:<constant name = “struts.multipart.parser” value = “Jakarta-stream”/>。

2.上传文件的大小(由content-Lsength头指定)大于struts2允许的最大大小(2GB)。

3.文件名内容构造恶意的OGNL内容。

 

0X03:利用环境:

攻击机:windows 10物理机

靶   机:实际内网环境

 

0X04:整体思路:

step1:取得权限。

step2:权限提升。

step3:密码读取。

step4:内网拓展,密码碰撞,获取多台服务器权限。

 

0X05:攻击过程:

使用poc检测到目标主机存在此漏洞。

使用漏洞利用工具进行远程命令执行:添加账户test(用户名:test、密码:19491001China!)。

 将test账户添加到管理员(administrators)组。

 探测发现目标开启3389端口,所以使用创建的test账户进行远程登录测试。

 上传mimikatz抓取管理员(administrator)用户名、密码,首先提权。

成功抓取到管理员(administrator)的用户名、密码(用户名:administrator、密码:Qhwy520)。

根据抓取到administrator的用户名、密码,对整个B段开放3389端口的服务器进行密码碰撞,成功获取到多台服务器用户名、密码,如下图所示:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM