renaudbako/Web-Exploitation-Scenario-4

GitHub: renaudbako/Web-Exploitation-Scenario-4

一个演示从Web漏洞到Linux权限提升的完整攻击链案例,解决如何在测试环境中复现与学习完整妥协路径的问题。

Stars: 0 | Forks: 0

# Web-Exploitation-Scenario-4 Web 渗透至 Linux 权限提升 # 执行摘要 成功对运行 Joomla 4 实例的 Debian 11 服务器执行了完整链条的安全妥协。攻击路径从未经身份验证的信息泄露开始,最终完全接管服务器的 root 账户,导致敏感的客户采购日志和供应商联系信息被外泄。 # 阶段 1:信息泄露与初始访问 攻击面最初通过 Joomla 4 内容管理系统的版本不匹配被识别。我们利用了 CVE-2023-23752,这是 Joomla API 中的一个严重漏洞,允许未经身份验证访问敏感配置文件。 ![nmap](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d861ac564c190204.jpg) ![dir](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/2c2a5985c8190211.jpg) ![joom](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d650f9d696190218.jpg) 目标端点: /api/index.php/v1/config/application?public=true /api/index.php/v1/users?public=true ![joom](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8b36688373190223.jpg) ![joom](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/2435737369190230.jpg) 泄露的数据:请求成功以明文形式返回了站点配置,揭示了 MySQL/MariaDB 数据库的名称和凭据: 用户:joomla 密码:bL3zgeLGXk8eYP3mtshtUgtc # 阶段 2:数据库利用与管理员接管 拥有数据库凭据后,我们建立与 MariaDB 实例的连接以操纵用户账户并收集情报。 ![db](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/1894f73f75190237.jpg) 账户识别:查询 joomla_users 表以识别主要管理员 phantomtech。 凭据跳转:为了绕过破解 BCrypt 哈希的耗时过程,我们执行 SQL 更新以覆盖管理员的哈希值为已知密码。这立即提供了对 /administrator 后端的访问权限。 ![db](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/851832ff8b190244.jpg) ![db](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/b66c2e30a3190251.jpg) # 阶段 3:远程代码执行(RCE) 一旦以管理员身份认证,我们从数据库操纵过渡到操作系统交互。 ![dash](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/71a2f04beb190258.jpg) 模板注入:我们利用内置的模板编辑器修改 Cassiopeia 模板文件,插入一个 PHP Web Shell。 ![tmp](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/20108b83b0190305.jpg) ![tmp](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a2a698310b190331.jpg) 建立持久性:通过 Web Shell,我们执行了一个基于 Python3 的反向 Shell 有效载荷,连接回我们的本地监听器。这建立了一个以低权限 www-data 用户身份运行的交互式终端会话。 ![rev](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/80a448b5cc190338.jpg) # 阶段 4:权限提升 目标是将我们的访问权限从服务账户提升到 Debian 11 环境中的 root 用户。 ![esc](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/fc75d41b22190345.jpg) 能力配置错误:系统审计显示 /usr/bin/php8.3 被赋予了 cap_setuid+ep 能力。这允许 PHP 二进制文件操纵其自身的用户 ID(UID)。 ![esc](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d17e1bf0ee190352.jpg) 根利用:通过调用 PHP 单行命令将 UID 设置为 0(root),我们生成了一个特权 Bash Shell: php8.3 -r "posix_setuid(0); system('/bin/bash');" 结果:对服务器拥有完全的管理控制权。 # 修复措施 # 1. 应用程序层面:补丁与输入验证 根本原因是 CMS 版本过时。 更新 Joomla:立即更新到 Joomla 4 的最新版本(或者 5)。特定漏洞 CVE-2023-23752 在 4.2.8 版本中已修复。 禁用未使用的 API:如果 Joomla Web Services API 对业务操作并非必需,请禁用该插件或通过 Web 应用防火墙(WAF)或 .htaccess 规则限制对 /api/ 的访问。 实施 IP 白名单:限制对 /administrator 面板和 API 端点的访问,仅允许已知、可信的 IP 地址。 # 2. 数据库加固 直接访问数据库导致了账户接管和数据外泄。 最小权限原则:如果并非严格必要,joomla 数据库用户不应具备修改系统表或执行全局更新的权限。 外部访问限制:确保 MariaDB 实例配置为仅监听 localhost(127.0.0.1)或私有管理网络。在网络防火墙级别阻止 3306 端口。 凭据轮换:立即更改所有数据库密码。使用复杂且唯一的字符串,且不要以明文形式存储在脚本或文档中。 # 3. 系统层面:安全配置 从低权限用户(www-data)到 root 的跳转是由于一个危险的 Linux 能力。 审计文件能力:移除 PHP 二进制文件的 cap_setuid 能力。很少有正当理由让 Web 解释器具备将其 UID 更改为 root 的能力。 检查命令:getcap -r / 2>/dev/null 移除命令:setcap -r /usr/bin/php8.3 限制模板编辑:禁用通过 Joomla 管理 UI 直接编辑 PHP 文件的能力。可以通过对模板目录设置严格的文件权限(555 或 755)来实现,确保 Web 服务器用户无法写入这些文件。 禁用危险的 PHP 函数:在 php.ini 中,使用 disable_functions 指令来阻止常用于反向 Shell 的函数,例如 system()、exec()、passthru() 和 shell_exec()。 # 4. 监控与检测 文件完整性监控(FIM):使用 Wazuh 或 Aide 等工具监控关键目录(如 /usr/bin/ 和 Joomla 模板文件夹)。这将在 PHP 能力被更改或模板被修改的瞬间提醒管理员。 日志聚合:监控 Web 服务器日志中 API 端点的异常状态码,以及数据库日志中的未经授权的远程连接。
标签:APT 攻击, CISA项目, CVE-2023-23752, Joomla 4, Linux 提权, MariaDB 连接, RCE, SQL 更新提权, Web 渗透, 事件响应, 信息泄露, 协议分析, 反取证, 威胁模拟, 子域名变形, 安全评估, 密码哈希覆盖, 数据库凭证窃取, 无线安全, 未认证访问, 权限提升, 管理员接管, 编程工具, 网络安全审计, 远程代码执行, 逆向工具