靶机信息
名称 | Race |
---|---|
发布日期 | 2025年9月2日 |
操作系统 | Linux |
难度 | 困难 [40分] |
创建者 | jkr |
侦察阶段
初始扫描
Nmap扫描发现两个开放端口:
- SSH (22)
- HTTP (80)
|
|
网站分析 - TCP 80
技术栈识别
网站使用Grav CMS,通过Cookie grav-site-09f1269
和页面脚注确认。网站重定向到/racers/
路径。
目录爆破
使用feroxbuster发现/phpsysinfo
路径,需要HTTP基本认证。
获取www-data shell
phpSysInfo信息泄露
使用默认凭证admin/admin登录phpSysInfo,在进程列表中发现cron备份作业包含密码:
Wedobackupswithsecur3password5.Noonecanhackus!
Grav管理员访问
备份用户登录
Grav管理面板位于/racers/admin
,使用备份用户和上述32字符密码登录。备份用户权限有限,只能使用备份工具。
密码重置漏洞
通过生成站点备份,获取用户账户文件:
user/accounts/admin.yaml
user/accounts/backup.yaml
user/accounts/patrick.yaml
分析Grav密码重置机制,patrick用户的reset字段包含token和过期时间。通过请求密码重置并下载新备份获取有效token,重置patrick密码后获得更高权限。
多种攻击路径
CVE-2024-28116利用
Grav CMS 1.7.43存在SSTI漏洞,可绕过Twig沙箱执行系统命令:
|
|
通过创建包含恶意负载的页面获取反向shell。
恶意主题攻击
代理配置
通过Grav管理面板配置代理指向攻击者Burp,实现中间人攻击。
主题安装劫持
拦截主题安装请求,修改下载位置指向恶意主题压缩包,包含webshell实现代码执行。
升级至max用户
凭证发现
在/usr/local/share/race-scripts/offsite-backup.sh
中发现max用户凭证:
max:ruxai0GaemaS1Rah
用户枚举
发现两个用户:patrick和max,成功使用凭证切换到max用户。
获取root权限
枚举分析
max属于racers组,拥有/usr/local/share/race-scripts
目录访问权限。通过pspy监控发现每分钟运行的cron作业:
|
|
TOCTOU漏洞利用
漏洞原理
secure-cron-runner.sh在运行脚本前检查MD5哈希,但在检查和执行之间存在时间窗口。
命名管道攻击
-
创建命名管道替代原脚本:
1
mkfifo offsite-backup.sh
-
等待cron作业挂起在md5sum检查
-
移动管道并创建恶意脚本:
1 2 3
mv offsite-backup.sh pipe echo -e '#!/bin/bash\n\ncp /bin/bash /tmp/0xdf\nchmod 6777 /tmp/0xdf' > offsite-backup.sh chmod +x offsite-backup.sh
-
向管道写入合法内容通过哈希检查:
1
cat backup/offsite-backup.sh > pipe
-
执行SetUID bash获取root权限:
1
/tmp/0xdf -p
总结
Race靶机展示了从信息泄露到权限提升的完整攻击链,涉及Grav CMS漏洞、密码重置机制绕过、SSTI代码执行和TOCTOU时间竞争漏洞,体现了现代Web应用安全中的多层次防御挑战。