vulnhub Mercury

0x01 端口扫描

扫描结果:8080、22
其余信息什么也没有,开始web渗透:

0x02 web渗透

可以确定是目录爆破

各目录扫描均无结果,怀疑是特殊目录名,打开浏览器测试:

熟悉的django的404页面,而且开启了debug,暴露出了所有目录,由此得知了隐藏目录mercuryfacts

好像没什么信息,下载图片检查,没有信息

又注意到facts/1处伪静态传参,想到todo里面说直接连接了数据库,测试注入:

测出注入,选用报错注入:

另注意:若跑sqlmap,注入点在url要在注入点前加星号

1
sqlmap -u "10.10.10.147:8080/mercuryfacts/*1/"

webmaster登录成功

0x03 提权–pwnkit

拿到linuxmaster的凭证

枚举时意外的发现polkit有root的s位,尝试提权:

常规利用失败,尝试打pwnkit:

成功提权

0x04 预期提权–环境变量劫持+sudo提权

在linuxmaster下sudo枚举:

有sudo权限的脚本文件使用了tail命令,很遗憾这个脚本没有写权限,但是可以执行,想到可以用环境变量去劫持掉tail命令,替换成vim命令,此时就可以把命令执行点外带出来

注意:,sudo 命令会使用安全的默认的PATH路径,并不会使用我们刚export的当前目录,故产生了上述报错,需要加一个--preserve-env=PATH参数


成功root

1
2
3
ln -s /usr/bin/vim tail
export PATH=$(pwd):$PATH
sudo --preserve-env=PATH /usr/bin/check_syslog.sh

0x05 非预期–内核提权

0x06 总结

  1. 端口扫描:ssh、web
  2. web渗透:django未关debug导致404报错出隐藏目录,对url的页面参数注入,报错注入拿到登录凭据
  3. 提权:在web用户家目录下发现系统用户的凭据,登录后枚举到polkit的s位,使用pwnkit提权成功;预期提权,劫持有sudo权限的脚本所使用的tail命令为vim的执行文件,外带出root的命令执行点,成功提权

vulnhub Mercury
https://fyhypo.github.io/blog/vulnhub/vulnhub Mercury/
作者
FYHypo
发布于
2024年8月31日
许可协议