renaudbako/Web-Exploitation-Scenario-2
GitHub: renaudbako/Web-Exploitation-Scenario-2
一份详尽的渗透测试实战记录,展示从 XXE 漏洞利用到 Docker 容器逃逸、Linux 提权及持久化的完整攻击链。
Stars: 0 | Forks: 0
# Web-Exploitation-Scenario-2
Web 漏洞利用至 Linux 提权与持久化
1. 执行摘要
本次任务的目标是调查一起归因于“Stealer”恶意软件的感染事件。通过针对关联的命令与控制(C2)IP 地址(172.20.8.184)进行攻击,调查从发现一个不安全的 API 开始,最终实现了对系统的完全控制。关键发现包括利用 Blind XXE 漏洞实现 RCE,以及揭露威胁行为者的基础设施。
# 侦察与枚举
初始阶段涉及扫描目标主机以识别可访问的服务和隐藏端点。
端口扫描:Nmap 分析识别出两个开放端口:22 (SSH) 和 80 (HTTP)。

Web 发现:使用 Feroxbuster 进行的目录模糊测试最初发现了一个 /api 端点。随后的深入扫描在 /api/data 处识别出一个关键子端点。


API 分析:尝试与 /api/data 交互发现,该端点需要一个带有 Content-Type: application/xml 标头的 POST 请求。一个格式错误的请求触发了详细的错误消息,提供了有效用户数据的 XML 模板。




# 漏洞利用:XXE 到 RCE
对 XML 处理行为的分析表明存在 XML 外部实体(XXE)注入漏洞。
Blind XXE:应用程序成功处理了有效的 XML,但未返回反射数据,表明存在 Blind XXE 漏洞。
带外(OOB)数据提取:利用 XXEinjector 和 PHP filter,通过 OOB 服务器窃取了系统文件。这成功获取了 /etc/passwd。


远程代码执行(RCE):通过 XXE 注入点利用 expect:// 协议,在底层系统上执行了任意命令。为了绕过空格字符过滤,使用了内部字段分隔符($IFS)。

立足点:使用分阶段 payload(通过 curl 上传并使用 bash 执行)建立了一个 reverse shell,以 www-data 用户身份获得了访问权限。

# 后渗透与横向移动
获得初始访问权限后,对文件系统的调查发现了一个严重的配置错误。
容器逃逸/主机访问:通过 findmnt 进行的分析显示,主机系统的 root 分区直接挂载到容器的 /host 目录中。

# 权限提升
通过识别配置错误的 Linux capabilities 实现了最终的权限提升。
Capability 滥用:发现 php5 binary 设置了 cap_setuid+ep capability。
Root 访问:通过使用 PHP 单行代码将进程 UID 设置为 0,生成了一个交互式 root shell。


# 持久化
为了稳定连接,将生成的 SSH 公钥附加到 /host/root/.ssh/authorized_keys 文件中,从而允许通过 SSH 直接进行 root 登录。


# 修复建议
禁用 XML 外部实体:配置 XML 解析器以完全禁用 DTD 和外部实体解析,从而缓解 XXE 漏洞。
最小权限原则:审计 Linux capabilities 并从 PHP 等强大的 binary 中移除 cap_setuid。
安全容器配置:避免将主机的 root 文件系统挂载到容器中,因为这会显著增加容器逃逸和主机完全沦陷的风险。
标签:API安全, CISA项目, CTI, DAST, DNS 反向解析, Feroxbuster, HTTP工具, IP 地址批量处理, JSON输出, Linux提权, Nmap, OpenVAS, Out-of-Band攻击, PE 加载器, PHP, RCE, Web安全, XML安全, XXE注入, 内存分配, 命令与控制, 嗅探欺骗, 威胁情报, 密码管理, 开发者工具, 恶意软件分析, 数字取证, 数据统计, 权限维持, 目录枚举, 盲注XXE, 移动安全, 端口扫描, 编程工具, 网络安全, 自动化脚本, 蓝队分析, 虚拟驱动器, 请求拦截, 远程代码执行, 隐私保护