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端口的服務器進行密碼碰撞,成功獲取到多台服務器用戶名、密碼,如下圖所示: