在一次內部審計任務期間,我被安排去攻陷一個Windows上的Tomcat實例。通常,說到攻擊Tomcat實例,都會想到進入manager后台,這是一個簡單的漏洞。
但是,在這篇文章中,manager無法訪問(403 HTTP錯誤)。然而,host-manager是可以訪問的,這就是它有趣的地方,。
背景:
我們的目標 - > Windows 2012R2服務器(192.168.56.31)
命令與控制服務器 C&C(我們的機器) - > Ubuntu 16.04(192.168.56.1)
Tomcat版本 - >寫下這篇文章時的最新版本(8.5.37)
信息收集:
用nmap掃描目標主機,發現Tomcat監聽在8080端口
這是理想的攻擊情況,因為根據經驗,Tomcat在Windows主機上是以'nt authority \ system'權限啟動的,這使得我們在攻陷它后能夠完全控制服務器。這又讓我們能獲取密碼和哈希值,這將使我們能夠進行內網橫移。
登錄認證
在第一次碰到Tomcat實例時,作為審計員的第一個操作是嘗試登錄manager。我們通常會嘗試使用默認密碼,例如admin / admin或tomcat / tomcat。
在這個場景下,當我嘗試使用'tomcat / tomcat'組合訪問manager時,返回了'403拒絕訪問'。
但是,當我在host-manager上嘗試同樣的事情時...
...
boom!
HTTP 200,我進去了!
有一些工具可以自動化爆破:
(譯者注:在tomcat7.0后,默認會有登錄次數限制,需要手動更改conf/server.xml才能進行爆破)
Metasploit模塊 : auxiliary/scanner/http/tomcat_mgr_login
Hydra
一些爆破Tomcat的腳本
e.g. : https://gist.github.com/th3gundy/d562eb1ae5dc42d666d3aab761bd4d96
攻陷 'host-manager '
好的,現在我們可以訪問host-manager了,然后呢?
這個頁面沒有並上傳表單,根據我從文檔中看到的,你需要 知道並控制 將要部署的應用 的路徑,和一個有效的vhost。
(譯者注:
The Tomcat Host Manager application enables you to create, delete, and otherwise manage virtual hosts within Tomcat.
http://tomcat.apache.org/tomcat-7.0-doc/host-manager-howto.html
當我再次閱讀文檔時,我有了一個漏洞利用的思路:如果我可以創建指向我控制的SMB服務器(使用impacket中的smbserver.py)的UNC路徑,那該多令人振奮
(譯者注:UNC路徑格式:\servername\sharename,其中servername是服務器名。sharename是共享資源的名稱。一般用在局域網內)
Bingo!Tomcat連接到我的服務器了!
這意味着Tomcat解釋了UNC路徑,並嘗試從'datatest'文件夾安裝應用程序。我們將強制它(autoDeploy)並創建“datatest”文件夾,並添加一個WAR文件,我們在WAR中插入一個后門,使我們能夠從C&C上通過后門拿下目標服務器。
- 創建WAR
創建WAR比較簡單; 它只是一個后綴名被我們改成了.war的zip文件。在zip文件中,我們創建一個JSP木馬,讓我們可以瀏覽器中訪問,並執行系統命令。
我們創建包含后門的ZIP
然后改后綴
對於那些'不確定你正在做什么'的腳本小子,你可以使用msfvenom方便地創建一個WAR文件並直接執行“meterpreter”:
- 部署war包並pwn掉服務器
既然我們的WAR文件已經在Tomcat服務器上,並從我們的C&C上部署它,我們將使用impacket包中的smbserver.py來共享以下文件夾:
這樣部署就遠程完成了,文件存儲在我們的C&C上。要訪問我們的后門,Tomcat要使用alias。這意味着需要通過vhost功能,在/ etc / hosts中添加服務器的IP。
現在我們看看在部署前的Tomcat:
部署后
成功了!在部署期間從我的SMB服務器連接Tomcat:
從瀏覽器訪問后門,確認后門已生效,並且可以在Windows服務器上執行系統命令。
部署完成后,我的計算機上的目錄內容:
在Tomcat部署在Windows服務器前提下,
已經在以下Tomcat版本上測試了這種攻擊方法:
<= 7.0.92 et <= 8.5.37。
本文為翻譯稿件,原文鏈接:https://www.certilience.fr/2019/03/tomcat-exploit-variant-host-manager/




















