序:
今天天氣不錯,我很冷!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、本集結束
預知后事如何,請聽下回分解!
特別提醒:不用弱口令!不用弱口令!不用弱口令!重要的事情要說三遍,那誰誰誰說的!機智如你,可千萬記好了!
此致
敬禮!