聲明:本文僅限學(xué)習(xí)研究討論,切忌做非法亂紀(jì)之事
Web打點(diǎn)
滲透測試中,Web端最常見的問題大多出現(xiàn)在弱口令、文件上傳、未授權(quán)、任意文件讀取、反序列化、模版漏洞等方面。因此,我們著重圍繞這些方面進(jìn)行滲透。
1.弱口令
先介紹一些好用的字典:
https://github.com/fuzz-security/Superwordlist
https://github.com/gh0stkey/Web-Fuzzing-Box
首先將收集到的所有登錄頁面(url.txt)使用腳本進(jìn)行爆破,我這里使用的是WebCrack腳本,在web_crack_log.txt可以直接看到有驗(yàn)證碼的地址是哪些,然后我們在選擇其他工具進(jìn)行爆破。
私信回復(fù)“資料”獲取滲透學(xué)習(xí)思路大綱與學(xué)習(xí)資料【點(diǎn)擊查看】
本次運(yùn)氣還不錯(cuò),找到了四個(gè)弱點(diǎn):
2.文件上傳
常見的文件上傳漏洞類型:
通過剛才爆破出來的其中一個(gè)弱口令登錄到后臺,發(fā)現(xiàn)了上傳地址并且成功上傳:
但是這個(gè)只是一臺獨(dú)立的服務(wù)器,并沒有進(jìn)入到內(nèi)網(wǎng),接著往下看。
3.任意文件讀取
通過jsfinder爬取了大量的路徑,然后通過字典爆破到了一個(gè)任意文件讀取。
但是由于是低權(quán)限,所以沒有繼續(xù)測試。
4.springboot未授權(quán)漏洞
找到個(gè)springboot未授權(quán)漏洞。按照正常思路,訪問 Web 應(yīng)用的 /actuator/env 或 /env,如果有返回 json 格式的數(shù)據(jù),則可能存在漏洞。但是在此環(huán)境下,這個(gè)路徑可能被刪除了:
于是我們嘗試讀取配置文件,看看能不能找到有用的東西。
訪問/autoconfig后,發(fā)現(xiàn)了某云的Accesskey:
使用工具成功登錄:
但是登錄后發(fā)現(xiàn)是個(gè)空的服務(wù)器,所以還得繼續(xù)找口子。
順便總結(jié)下Spring Boot Actuator常用的路徑:
/dump - 顯示線程轉(zhuǎn)儲(包括堆棧跟蹤) |
/autoconfig - 顯示自動(dòng)配置報(bào)告 |
/configprops - 顯示配置屬性 |
/trace - 顯示最后幾條HTTP消息(可能包含會話標(biāo)識符) |
/logfile - 輸出日志文件的內(nèi)容 |
/shutdown - 關(guān)閉應(yīng)用程序 |
/info - 顯示應(yīng)用信息 |
/metrics - 顯示當(dāng)前應(yīng)用的”指標(biāo)“信息 |
/health - 顯示應(yīng)用程序的健康指標(biāo) |
/beans - 顯示Spring Beans的完整列表 |
/mAppings - 顯示所有MVC控制器映射 |
/env - 提供對配置環(huán)境的訪問 |
/restart - 重新啟動(dòng)應(yīng)用程序 |
5.JAVA-RMI反序列化
利用這個(gè)漏洞前,我先簡單介紹下Java-RMI。
Java RMI服務(wù)是遠(yuǎn)程方法調(diào)用(Remote Method Invocation),它是一種機(jī)制,能夠讓在某個(gè)Java虛擬機(jī)上的對象調(diào)用另一個(gè)Java虛擬機(jī)的對象的方法。
在Java Web中,很多地方都會用到RMI來相互調(diào)用。比如很多大型組織都會在后臺部署一些Java應(yīng)用,用于對外網(wǎng)站發(fā)布更新的靜態(tài)頁面,而這種發(fā)布命令的下達(dá)使用的就是這種RMI形式。
值得注意的是,RMI傳輸過程必然會使用序列化和反序列化,如果RMI服務(wù)端端口對外開發(fā),并且服務(wù)端使用了像Apache Commons Collections這種庫,那么會導(dǎo)致遠(yuǎn)程命令執(zhí)行。
我們找到的這個(gè)服務(wù)恰好端口對外開放,并且使用了Apache Commons Collections的有漏洞的版本,所以成功執(zhí)行命令:
通過此漏洞,終于成功打進(jìn)內(nèi)網(wǎng),通過發(fā)現(xiàn)192.168.0.0/16網(wǎng)段和172.16.0.0/16網(wǎng)段:
內(nèi)網(wǎng)滲透
【點(diǎn)擊查看學(xué)習(xí)資料】
通過Java-RMI反序列化終于打進(jìn)了內(nèi)網(wǎng)。接下來進(jìn)行內(nèi)網(wǎng)滲透測試,下圖是此次內(nèi)網(wǎng)滲透的流程圖:
第一步,192.168.0.0/16網(wǎng)段和172.16.0.0/16網(wǎng)段的未授權(quán)通過使用frp代理出來流量后,使用fscan進(jìn)行信息收集:
發(fā)現(xiàn)多個(gè)未授權(quán)訪問:
第二步,192.168.0.0/16網(wǎng)段和172.16.0.0/16網(wǎng)段的弱口令:
第三步,Jboss反序列化漏洞,發(fā)現(xiàn)了Jboss的網(wǎng)站:
成功上傳shell:
發(fā)現(xiàn)是低權(quán)限后上傳CS碼,提權(quán)成功,然后將流量代理出來:
發(fā)現(xiàn)了“10”段位:
通過配置文件,發(fā)現(xiàn)了數(shù)據(jù)庫的密碼:
成功連接數(shù)據(jù)庫:
第四步,CVE-2020-1472拿域控。
通過net time /d找到域控:
測試發(fā)現(xiàn)有zerologon的漏洞:
然后收集了“10”段的信息:
至此整個(gè)滲透過程結(jié)束。簡單回顧一下:
總結(jié)
由于是滲透測試項(xiàng)目,本著能多測就多測的原則,對多個(gè)系統(tǒng)歷年來出現(xiàn)的漏洞逐一進(jìn)行了測試。
根據(jù)測試的結(jié)果來看,雖然很多企業(yè)已經(jīng)對網(wǎng)絡(luò)安全足夠重視,但正如周總所言,世界上只有不努力的黑客,沒有攻不破的系統(tǒng)。在安全這個(gè)行業(yè),我們?nèi)匀沃囟肋h(yuǎn)。