hidden-investigations/wp2shell-scanner

GitHub: hidden-investigations/wp2shell-scanner

一款用于检测 WordPress wp2shell 漏洞链(CVE-2026-63030 / CVE-2026-60137)的 Python 安全扫描器,支持批量扫描、主动探测确认、可选 PoC 验证及 JSON 结果导出。

Stars: 0 | Forks: 1

# wp2Shell Scanner – 附带 PoC `wp2shell-scanner` 用于检测 WordPress wp2shell 漏洞链,其方式包括:验证公开的 WordPress 证据、对暴露的版本进行指纹识别、检查 REST 批量行为,以及测量主动的时间差异。该工具仅供授权的防御性研究、CTF 环境以及您拥有或管理的系统使用。 ## ⚠️ 法律与道德免责声明 本项目严格提供用于授权的安全测试和防御性研究。 - 仅对您拥有、管理或获得明确授权可以评估的系统使用此工具。 - 请勿扫描公共网站、生产系统或您无法控制的基础设施。 - `-p/--poc` 会在尝试尽最大努力进行清理之前更改 WordPress 状态。 - 您需自行负责遵守所有适用的法律、法规和协议。 ## 功能 ### 检测工作流 - 扫描单个目标或去重后的目标列表。 - 检测公开的 WordPress HTML、标头和 REST API 标记。 - 在可能的情况下对暴露的 WordPress 版本进行指纹识别。 - 检查 REST 批量行为并收集结构性路由标记。 - 使用重复的基准和延迟时间探测进行主动确认。 ### 面向研究人员的 CLI - 使用可配置的 worker 数量并发扫描列表。 - 清晰展示每个目标的完成进度以及最终状态明细。 - 彩色终端输出,在通过管道或重定向时自动保持纯文本。 - JSON 导出,可选择包含每次扫描结果。 - 静音多行命令输出,并提供详细的 PoC 响应诊断。 - 具有可操作性的输入、网络和响应错误提示。 - 在主动确认后提供可选的命令验证 PoC,默认使用 `whoami` 或由研究者提供的命令。 ## 环境要求 - Python 3.10 或更高版本 - `requirements.txt` 中列出的依赖项: - `requests` - `colorama` ## 安装说明 获取此代码库,然后在其根目录中安装依赖项。 1. 切换到项目目录: cd wp2shell-scanner 2. 可选但推荐的操作:创建并激活虚拟环境: python3 -m venv .venv source .venv/bin/activate # Windows PowerShell: .venv\Scripts\Activate.ps1 3. 安装依赖项: python3 -m pip install -r requirements.txt 4. 确认 CLI 是否可用: python3 wp2shell-scanner.py -h ## 使用说明 显示帮助信息: ``` python3 wp2shell-scanner.py -h ``` 在没有提供目标的情况下运行该工具将显示品牌化的帮助文本并因使用错误而退出。请准确提供一个目标来源:使用 `-u/--url` 指定单个目标,或使用 `-l/--list` 指定目标文件。 ``` python3 wp2shell-scanner.py -u https://wordpress.example ``` 没有 scheme 的目标将被视为 `http://` URL。目标列表文件每行包含一个 URL;空行和以 `#` 开头的行将被忽略。无效条目将连同其行号一起报告。 受支持的入口点是根脚本: ``` python3 wp2shell-scanner.py -u https://wordpress.example ``` ## 命令行选项 ### 目标 | 选项 | 描述 | 默认值 | | --- | --- | --- | | `-u URL`, `--url URL` | 扫描一个 WordPress 目标 URL。与 `--list` 互斥。 | 无 | | `-l FILE`, `--list FILE` | 从文本文件扫描目标 URL。与 `--url` 互斥。 | 无 | ### 扫描和 PoC 行为 | 选项 | 描述 | 默认值 | | --- | --- | --- | | `-p`, `--poc` | 在主动确认后,运行改变状态的命令验证 PoC。除非提供 `--command`,否则使用 `whoami`。 | 关闭 | | `-c COMMAND`, `--command COMMAND` | 在 `--poc` 期间执行 `COMMAND`;需要配合 `--poc` 使用。 | `whoami` | | `-t N`, `--threads N` | 用于列表扫描的并发目标 worker。`N` 必须至少为 `1`。 | `10` | ### 输出与展示 | 选项 | 描述 | 默认值 | | --- | --- | --- | | `-o FILE`, `--output FILE` | 将 UTF-8 JSON 格式的结果数组写入 `FILE`。默认情况下,仅包含确认存在漏洞的结果。 | 无 | | `--all-results` | 在 `--output` 中包含每次扫描结果,包括非漏洞、非 WordPress 以及错误结果。 | 关闭 | | `-v`, `--verbose` | 显示最终的 PoC HTTP 状态和 `X-Action-Redirect` 标头。 | 关闭 | | `-q`, `--quiet` | 成功执行 PoC 时,仅打印规范化的命令输出。失败和清理警告将输出到 stderr。 | 关闭 | | `--no-color` | 禁用彩色终端输出。 | 关闭 | ## 示例 扫描单个目标: ``` python3 wp2shell-scanner.py --url https://wordpress.example ``` 使用 20 个 worker 扫描目标列表: ``` python3 wp2shell-scanner.py --list targets.txt --threads 20 ``` 仅在扫描器主动确认目标后,才运行改变状态的验证 PoC: ``` python3 wp2shell-scanner.py -u https://wordpress.example -p ``` 运行研究者提供的命令并仅打印其规范化的多行输出: ``` python3 wp2shell-scanner.py --url https://wordpress.example -p --command "ls -la" --quiet ``` 仅将确认的漏洞结果写入 JSON,或使用 `--all-results` 包含所有目标: ``` python3 wp2shell-scanner.py --list targets.txt --output results.json python3 wp2shell-scanner.py --list targets.txt --output results.json --all-results ``` ## 结果解读 | 结果 | 含义 | | --- | --- | | **VULNERABLE** | 主动时间探测确认了该漏洞链。请立即修复目标。 | | **POTENTIALLY AFFECTED** | 公开版本处于受影响范围内,但主动确认被阻止或结果不确定。请进行修补并调查。 | | **NOT VULNERABLE** | 主动探测未得到确认,且未检测到受影响的公开版本。 | | **NOT WORDPRESS** | 未找到公开的 WordPress 证据。 | | **ERROR** | 网络、TLS、目标输入或意外响应错误导致无法进行可靠扫描。 | 受影响的稳定版本为 WordPress 6.9.0–6.9.4 和 7.0.0–7.0.1。请立即更新至 6.9.5 或 7.0.2,或更高版本。 ### 退出代码 | 代码 | 含义 | | --- | --- | | `0` | 扫描完成,没有任何 `POTENTIALLY AFFECTED` 结果。确认存在漏洞的结果也使用此代码。 | | `1` | 至少有一个目标为 `POTENTIALLY AFFECTED`。 | | `2` | 目标输入无效,或所有计划的目标均以错误结束。 | ## 许可证 本项目基于 **MIT License** 授权。详情请参阅 [`LICENSE`](LICENSE)。 📬 联系我们:[hi@hiddeninvestigations.net](mailto:hi@hiddeninvestigations.net)
标签:CISA项目, Maven, PoC, Python, WordPress, 加密, 无后门, 暴力破解, 漏洞扫描器, 漏洞验证, 逆向工具