内网渗透——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端口的服务器进行密码碰撞,成功获取到多台服务器用户名、密码,如下图所示:

 

posted @ 2020-08-06 15:55  关东老丸子  阅读(1205)  评论(1编辑  收藏  举报