- Symfonos1 下載地址:https://www.vulnhub.com/entry/symfonos-1,322/
Symfonos1 是 Symfonos 系列靶機(jī)的第一關(guān)。
目錄
1、掃描
- Netdiscover
- Nmap
2、枚舉
- SMB 共享目錄
- WPScan
3、漏洞利用
- 利用 WordPress 的 LFI 漏洞
- 通過(guò) SMTP 日志投毒使 LFI 漏洞來(lái)實(shí)現(xiàn) RCE
4、提權(quán)
- 利用環(huán)境變量
PATH
Let's get it!
使用 netdiscover 命令來(lái)發(fā)現(xiàn)目標(biāo)主機(jī),這里靶機(jī)的 IP 是 192.168.166.201
- netdiscover -i eth0

使用 nmap 對(duì)靶機(jī)進(jìn)行端口掃描,發(fā)現(xiàn)開(kāi)放了以下端口:22、25、80、139、445

接著使用使用 enum4linux 對(duì)靶機(jī)進(jìn)行網(wǎng)絡(luò)枚舉,發(fā)現(xiàn)靶機(jī)存在一個(gè)名為 helios 的用戶(hù),以及兩個(gè) Samba 共享目錄 /anonymous 和 /helios

訪問(wèn) Samba 共享目錄:


先訪問(wèn) /anonymous 目錄,因?yàn)樵撃夸洘o(wú)須輸入密碼即可訪問(wèn):

查看 attention.txt 文件的內(nèi)容:

上面提到幾個(gè)弱密碼,可用來(lái)嘗試進(jìn)入 /helios 目錄,嘗試后發(fā)現(xiàn)弱密碼 qwerty 可進(jìn)入 /helios 目錄:

發(fā)現(xiàn)兩個(gè)文件,research.txt 和 todo.txt ,查看其內(nèi)容,發(fā)現(xiàn) research.txt 沒(méi)啥用,todo.txt 中提到了一個(gè)目錄 /h3l105,這也許是 Web站點(diǎn)的路徑,我們可以嘗試在 Web 中訪問(wèn),于是訪問(wèn) http://192.168.166.201/h3l105/,發(fā)現(xiàn)是一個(gè)使用了 WordPress 搭建的站點(diǎn):


對(duì)該站點(diǎn)使用 BurpSuite 抓包可以看到,網(wǎng)站前端向服務(wù)器發(fā)請(qǐng)求的時(shí)候,還會(huì)請(qǐng)求一個(gè)域名 symfonos.local,其實(shí)該域名是就是指向靶機(jī)的 IP,所以我們?cè)诠魴C(jī)的 /etc/hosts 文件中加上該域名的解析記錄:

然后使用 WPScan 對(duì)其進(jìn)行掃描,加上 -ep 參數(shù),枚舉以下該站點(diǎn)使用的 wordpress 插件:
- wpscan --url http://symfonos.local/h3l105/ -ep

發(fā)現(xiàn)使用了 mail-masta 和 site-editor 這兩個(gè)插件,使用 searchsploit 搜索一下看有沒(méi)有相應(yīng)的 exp:

可以看到 mail-masta 這個(gè)插件的 1.0 版本存在兩個(gè)漏洞,這里我們利用 LFI 漏洞,將 40290.txt 下載下來(lái):

查看該文件,可看到該漏洞的 PoC 為:
http://server/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/etc/passwd

于是我們?cè)L問(wèn):
http://192.168.166.201/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/etc/passwd
可看到漏洞確實(shí)存在且可被利用:

因?yàn)榍懊娑丝趻呙璧臅r(shí)候,看到靶機(jī)還開(kāi)放了 25 端口,該端口上運(yùn)行的是 SMTP 郵件服務(wù),所以下面我們通過(guò) SMTP 日志投毒來(lái)使得 LFI 漏洞實(shí)現(xiàn) RCE。
訪問(wèn) http://192.168.166.201/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios 可看到 /var/mail/helios 文件,該郵件記錄的是 helios 用戶(hù)收到的郵件信息。
于是我們可以使用 telnet 通過(guò)命令行向 helios 用戶(hù)發(fā)送郵件,在郵件中插入惡意的 php 代碼:

發(fā)送后,通過(guò)訪問(wèn) http://192.168.166.201/h3l105/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/var/mail/helios&m=id 即可達(dá)到遠(yuǎn)程代碼執(zhí)行的效果

于是,用這種方式,使用 nc 命令,我們可以拿到一個(gè)反向 shell。
先監(jiān)聽(tīng)本機(jī) 5555 端口:

得到反向 shell:

為了提權(quán),我們先通過(guò) find 命令尋找有 sticky 位的程序文件:
- find / -perm -u=s -type f 2>/dev/null

我們選擇其中的 /opt/statuscheck 程序,該文件是一個(gè)二進(jìn)制文件,因此我們使用 strings 命令查看它的元數(shù)據(jù):

可以看到,該程序會(huì)去調(diào)用 curl 命令。因此我們可以通過(guò)自建一個(gè) curl 命令,并通過(guò)臨時(shí)配置環(huán)境變量 PATH,使得當(dāng) /opt/statuscheck 程序執(zhí)行的時(shí)候,調(diào)用我自建的 curl 命令,從而獲得一個(gè)擁有 root 權(quán)限的 shell。
依次執(zhí)行下面的命令:
cd /tmp
echo "/bin/sh" > curl
chmod 777 curl
export PATH=/tmp:$PATH
echo $PATH
/opt/statuscheck

這種提權(quán)的方式,可閱讀 Linux Privilege Escalation Using PATH Variable
Hacking done.
