Tomcat弱口令爆破+war部署getshell


1.1、影響版本

Tomcat全版本

1.2、環境搭建

1.利用vulhub已有的鏡像,由於這個鏡像啟動后登錄管理頁面存在重復驗證的問題,這里不再利用docker-compose.yml

cd /root/vulhub/tomcat/tomcat8
docker pull docker.io/vulhub/tomcat:8.0

2、創建tag並運行docker

docker tag yourDockerid tomcat8.0

3、更改tomcat鏡像的里的tomcat-users.xml

docker cp tomcat-users.xml yourDockerid:/usr/local/tomcat/conf/tomcat-users.xml

4、重啟docker

docker restart yourDockerid

1.3、復現流程

1.3.1、弱口令爆破--使用burpsuite爆破

訪問manager后台

http://192.168.52.130:8080/manager/html

提交用戶名和密碼后抓包,設置Authorization: Basic dG9tY2F0Onh4eHh4eHh4eA==這一部分為payload變量。

設置payload為Custom iterator,並按順序設置以下3個payload。

這個順序很有講究,在實際測試中,tomcat6/7/8+會針對登陸次數過多的用戶進行鎖定,經過統計分析,當登錄錯誤>5次后,就會鎖定用戶。這時候我們就要考慮如何繞過。CSDN上有個腳本利用的是占滿tomcat緩存的方式繞過,當同一賬號大於5次登錄,就會采用臟數據去進行登錄,直到緩存占滿后,又會用剩下的可能存在的username進行登錄。直到找到password為止。tomcat暴破圖形化---繞過tomcat 6/7/8的防暴破機制

這里我們采用針對同一弱口令去爆破不同賬號的方式進行猜解,將可能存在的username放入position1的位置,其次放置password在position3的位置,最后attack時爆破的順序如下圖,就不會針對同一賬號鎖定。這樣做的好處在於我們針對同一個口令去爆破大量用戶時,由於用戶不同,不會被鎖定,同時由於第二次使用這個賬戶爆破其他口令時,tomcat的緩存有很大幾率被占滿,就不會導致鎖定。

在此模塊設置對payload的處理方式

然后start attack,獲得密碼,即可登錄。

1.3.2、弱口令爆破--使用msf自帶模塊爆破

msf有一個自帶的爆破該后台的模塊,但是顯然也沒有考慮到后續版本對這個策略的繞過,不過無論哪個繞過方式都不適當,因為請求的次數太多,都需要結合實際考慮是否使用。但是這個模塊依舊有意義的點在於它的username和password是十分易於存在的用戶名和弱口令,且數目很少,假如存在弱口令,也頂多是這個;不存在弱口令,在無可奈何的情況下,也就是只能采用我們上述的辦法。下面是爆破過程。
首先使用爆破模塊

use auxiliary/scanner/http/tomcat_mgr_login

然后設置參數

set rhosts 192.168.52.130
set rport 8080

然后run一下即可,由於tomcat口令正好處於第5個,未被鎖定,故而網上絕大部分文章都是這樣利用的,實際上沒有深入思考實戰價值

1.4、部署war包上傳getshell

1)、將shell.jsp打包成war包
shell.jsp單獨放置一個目錄,命令行下進入當前目錄

jar -cvf Login.war .\

或者直接將shell.jsp壓縮,修改后綴為.war即可
2)、進入登錄后的頁面,部署上傳

3)、訪問http://yourip:port/Login/shell.jsp
Login目錄是war包的包名


免責聲明!

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



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