renaudbako/Web-Exploitation-Scenario-3
GitHub: renaudbako/Web-Exploitation-Scenario-3
一个展示从Web漏洞到Linux权限提升与持久化的完整攻击链实战案例。
Stars: 0 | Forks: 0
# Web-Exploitation-Scenario-3
Web Exploitation To Linux Privilege Escalation And Persistence
# 1. 执行摘要
本次参与的目标是调查归因于 "Stealer" 恶意软件的感染情况。通过针对相关的命令与控制 IP 地址进行调查,流程从发现一个不安全的 API 逐步推进到获得完整的系统控制。关键发现包括:利用盲 XXE 漏洞实现了 RCE,以及发现了 "Luna Stealer" 团伙的基础设施。
# 2. 侦察与枚举
初始阶段涉及对目标主机进行扫描,以识别可访问的服务和隐藏的端点。
端口发现
端口扫描:Nmap 分析识别出两个开放端口:22 (SSH) 和 80 (HTTP)。

目录发现
Web 发现:使用 GoBuster 进行目录模糊测试最初揭示了 /api 端点。进一步的深度扫描识别出一个关键的子端点 /api/data。


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




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


远程代码执行 (RCE):通过利用 XXE 注入点处的 expect:// 协议,执行了任意命令。为了绕过空格字符过滤,使用了内部字段分隔符 ($IFS)。
立足点:通过上传并使用 bash 执行一个 staged payload(使用 curl 上传),建立了反向 shell,以 www-data 用户身份获得访问权限。


# 4. 漏洞利用后与横向移动
获得初始访问权限后,对文件系统进行检查发现了一个关键的配置错误。
容器逃逸/主机访问:通过 findmnt 分析发现,主机系统的根分区被直接挂载到了容器内的 /host 目录。

# 5. 权限提升
通过识别配置错误的 Linux 能力,实现了最终权限提升。
[Priv](./images/PrivsEsc_Enum.jpg)
能力滥用:发现 php5 二进制文件设置了 cap_setuid+ep 能力。
根访问权限:通过使用 PHP 单行命令将进程 UID 设置为 0,生成了一个交互式的 root shell。
[Priv](./images/PrivEscOk.jpg)
# 6. 持久化
为了稳定连接,将生成的 SSH 公钥追加到 /host/root/.ssh/authorized_keys 文件中,从而允许通过 SSH 直接以 root 身份登录。
[Pers](./images/Persistence.jpg)
[Pers](./images/PersistenceOK.jpg)
# 修复建议
禁用 XML 外部实体:将 XML 解析器配置为完全禁用 DTD 和外部实体解析,以缓解 XXE 漏洞。
最小权限原则:审计 Linux 能力,并移除 PHP 等强大二进制文件的 cap_setuid 权限。
安全的容器配置:避免将主机的根文件系统挂载到容器中,因为这会显著增加容器逃逸和整个主机被攻破的风险。
标签:API 枚举, C2 通信, CSV导出, CTI, Cutter, /etc/passwd, GoBuster, Linux 提权, Luna Stealer, Nmap, OOB 数据外泄, PHP 过滤器, RCE 远程代码执行, Stealer 恶意软件, Web 渗透, XXE 注入, 命令与控制, 大数据, 目录扫描, 盲注 XXE, 系统文件读取, 网络安全, 网络安全审计, 虚拟驱动器, 隐私保护