原創: free雅軒 合天智匯

近期在項目中碰到的ApacheTomcat中間件愈來愈多,於是乎。想著做一個整理。將ApacheTomcat中間件的幾大較為重要的高危漏洞做一個總結整理復現。用作來鞏固更新自己的知識庫。

在這裡感謝公司Bearcat師傅和殘憶師傅以及李師傅等指導和共享精神。首先我們先來了解以下Tomcat的概念:Tomcat是我們在工作中所使用的一款開源輕量級的Web應用程序伺服器。通常情況下在中小型系統或者並發量較小的場合下使用,常用來與JSP腳本結合使來解析腳本語言部署搭建網站等系統。在這裡我們將Tomcat的幾大高危漏洞整理至以下:

1、Tomcat後台弱口令上傳war包

2、Tomcat的PUT的上傳漏洞(CVE-2017-12615)3、Tomcat反序列化漏洞(CVE-2016-8735)4、Tomcat JMX伺服器弱口令5、Tomcat 樣例目錄session操控漏洞6、Tomcat本地提權漏洞(CVE-2016-1240)7Tomcat win版默認空口令漏洞(CVE-2009-3548)在這裡解釋一下War包的概念:war包是用來進行Web開發時一個網站項目下的所有代碼,包括前台HTML/CSS/JS代碼,以及後台JavaWeb的代碼。當開發人員開發完畢時,就會將源碼打包給測試人員測試,測試完後若要發布則也會打包成War包進行發布。War包可以放在Tomcat下的webapps或word目錄,當Tomcat伺服器啟動時,War包即會隨之解壓源代碼來進行自動部署。先來看第一個Tomcat後台弱口令上傳war包。在這裡我們就是利用暴力破解或者弱口令猜解的方式得到tomcat的後台登陸認證賬戶,即在登陸成功之時利用tomcat管理控制台WARfile to deploy自動部署war的功能將我們的木馬進行上傳部署。在這裡我們本地給大家準備的實驗環境如下:JDK1.8.0

ApacheTomcat7.0.88(關於爆破本來應該使用6版本,不過為了總結更多關於防禦的知識,所以這裡我使用7版本的)

在這裡jdk以及tomcat的安裝配置我就不細講了。大家可以自行百度。準備好如下圖所示的實現環境後,接下來我們來開始復現操作。

在這裡我們設置一個8090的本地代理埠,以防止和tomcat默認的本地8080埠所衝突造成不必要的影響。我們隨便輸入12345賬戶密碼來進行爆破。

得到賬戶密碼是利用Authorization該授權欄位以base64方式傳遞賬戶信息。

得到他的加密方式,接下來我們拿去解密分析他的數據傳遞方法。

可以得出tomcat在授權認證時,將賬號與密碼用冒號進行組合再輔以base64加密所傳遞。接下來我們構造字典來進行爆破。利用burp抓包發送到Intrude模糊測試模塊來進行暴力破解。

上面我們得到了tomcat數據傳遞格式為username:password的格式,這是就要使用到burp模糊測試模塊中的customiterator自定義迭代類型的payload,官方的解釋是該類型的payload共分為8個佔位符,每一個佔位又可以指定簡單列表的payload類型。再根據佔位的數值,與每一個payload列表區進行笛卡兒積生成集合組。得到最終的payload列表。我的理解就是利用數學中的笛卡兒積進行集合,去拼湊各種可能存在的payload可能列表。設置格式如下:

按照payload類型分組進行設置Position參數,比如說我們要爆破的Tomcat數據。需要設置的第一個Position參數就是username參數,然後再進行添加payload字典。以此類推第二個參數就是冒號:,第三個就是password欄位。設置完成後再需要對數據欄位進行base64編碼就可以爆破了。設置方法如下圖所示:

以上就收tomcat基礎認證爆破,當然我們還可以去自己收集匹配號的三個欄位字典或者base64加密過的字典以及metasploit中的tomcat爆破,更加方便進行爆破。方式多樣,根據自己的需求去使用。爆破很多次,發現正確的用戶名密碼字典爆破出來一直是失敗的401狀態碼。我們可以在tomcat的後台jar腳本文件中發現一串警告信息。

這是由於在tomcat6版本以後針對爆破做了鎖定機制的設置。我們先去更改一下。為了方便演示。

在conf/server.xml中添加一段failureCount="500"lockOutTime="0"超時鎖定數的設置。

即可解除針對爆破次數過多的用戶的鎖定機制。爆破成功之後來到Tomcat後台即可部署我們的war木馬文件來進行提權操作。

Tomcat後台弱口令上傳war包進行getshell的篇幅到此為止。修復方案:1、在系統上以低許可權運行Tomcat應用程序。創建一個專門的 Tomcat服務用戶,該用戶只能擁有一組最小許可權(例如不允許遠程登錄)。2、增加對於本地和基於證書的身份驗證,部署賬戶鎖定機制(對於集中式認證,目錄服務也要做相應配置)。在CATALINA_HOME/conf/web.xml文件設置鎖定機制和時間超時限制。3、以及針對manager-gui/manager-status/manager-script等目錄頁面設置最小許可權訪問限制。
推薦閱讀:
相关文章