Tomcat漏洞全解析(一):Tomcat7+ 密碼爆破&&后台war部署后門getshell漏洞


序:

  今天天氣不錯,我很冷!Tomcat是個好東西!

 

 1、簡介

 

Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和並發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。

Tomcat是Apache 服務器的擴展,但實際上是作為一個與Apache 獨立的進程單獨運行的。Apache 為HTML頁面服務,而Tomcat 實際上一個Servlet和JSP容器,運行JSP 頁面和Servlet。

Tomcat和IIS等Web服務器一樣,具有處理HTML頁面的功能,但處理靜態HTML的能力不如Apache服務器。

                                                ------來自百度百科。

 

 2、Tomcat 后台 war部署后門getshell漏洞解析

 

Tomcat7+支持在后台部署war文件,可以直接將webshell部署到web目錄下。當然,有個前提條件,那就是需要能登錄后台,且對應用戶有相應權限。

 

Tomcat7 +權限分為:

manager(后台管理)

  manager-gui 擁有html頁面權限

  manager-status 擁有查看status的權限

  manager-script 擁有text接口的權限,和status權限

  manager-jmx 擁有jmx權限,和status權限

host-manager(虛擬主機管理)

  admin-gui 擁有html頁面權限

  admin-script 擁有text接口權限

詳情閱讀 http://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html

在conf/tomcat-users.xml文件中配置用戶的權限(用戶tomcat擁有上述所有權限,密碼是tomcat):

<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">

    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
    <role rolename="admin-gui"/>
    <role rolename="admin-script"/>
    <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script" />

</tomcat-users>

正常安裝的情況下,tomcat8中默認沒有任何用戶且manager頁面只允許本地IP訪問。只有管理員手工修改了這些屬性的情況下,才可以進行攻擊。

測試環境搭建可通過Vulhub,利用Docker搭建,真真方便快捷。

當然,為直觀了解內在原理,亦可自行搭建。

                                      -------來自https://vulhub.org/#/environments/tomcat/tomcat8/

 

3、Tomcat管理后台口令爆破

 

如果你運氣好,恰巧碰到網管比較機智,tomcat管理頁面支持訪問,那你就抱他,用力的抱他!

 

(1)首先,通過tomcat主頁面,點擊Manager App登錄管理頁面,在登錄框中輸入用戶名密碼;

或直接訪問http://your-ip:8080/manager/html,在登錄框中輸入用戶名密碼。

(2)然后點擊確定,通過burpsuite抓取登錄請求報文(用戶名密碼采用base64編碼,用戶名:密碼   格式傳輸)

(3)右鍵點擊請求報文,選擇“send to intruder”將請求報文發送到intruder模塊

 

  (4)在“Positions”選項卡頁面添加攻擊參數:選中參數后,點擊Add添加為攻擊參數

  (5)配置payload:在“payloads”選項卡,設置payload類型為自定義迭代器(Custom iterator):

自定義迭代器(Custom iterator):很厲害的東東。它共有8個占位,每一個占位可以指定簡單列表的Payload類型,然后根據占位的多少,與每一個簡單列表的Payload進行笛卡爾積(不懂就找你度麻麻去),生成最終的Payload列表。

  (6)為第一個占位添加你的username字典

(7)為第二個占位添加字符“:”

 (8)為第三個占位添加你的password字典

  (9)在“payload processing”設置編碼為“encode”-->“base64-encode”,並在“payload Encoding”中取消“URL-encode these characters"勾選

 

(10)可以開始攻擊了

 

 

4、war部署后門getshell

 

如果你有幸踩到了little dog bian bian,嗯,記得離我遠點,別忘了把鞋擦干凈

 

(1)制作WAR包(將后門文件打包到war包,需本地配置java環境)

jar -cvf war.war “houmen.jsp”

(2)利用后台war部署功能上傳后門文件

 (3)getshell

上傳war包后,會自動解壓到網站根目錄下/war(你的war包名字)/houmen.jsp(你的后門名字),通過c刀等工具連接,getshell。

http(s)://xxx.xxx.xx.xx:xxxx/war/houmen.jsp

 

5、本集結束

 

預知后事如何,請聽下回分解!

 

特別提醒:不用弱口令!不用弱口令!不用弱口令!重要的事情要說三遍,那誰誰誰說的!機智如你,可千萬記好了!

 

此致

  敬禮!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM