olezhaku/react2shell-toolkit

GitHub: olezhaku/react2shell-toolkit

一个用于授权环境下批量验证和调查 CVE-2025-55182(React2Shell)Next.js 远程代码执行漏洞的 Python 安全评估工具包。

Stars: 3 | Forks: 0

# Next.js RCE 评估工具包 一个用于在授权环境中验证和调查 [CVE-2025-55182](https://www.cve.org/CVERecord?id=CVE-2025-55182)(也称为 **React2Shell**)的 Python 工具包。该漏洞影响 React Server Components,并可能使使用 Next.js 等框架构建的应用程序面临未授权的远程代码执行风险。该工具包集成了目标收集、 批量验证、交互式测试 shell、主机枚举以及 可选的验证后实用工具。 ## 漏洞说明 - **CVE:** CVE-2025-55182 - **名称:** React2Shell - **类别:** 未授权远程代码执行 - **受影响技术:** React Server Components 及其依赖框架, 包括受影响的 Next.js 配置 - **工具包验证:** `hosts_scanner.py` 在批量检测期间仅执行固定的 `echo VULN_TEST` 标记 本代码库仅作为评估辅助工具,不能替代检查 官方安全公告及应用厂商补丁。 ## 功能特性 | 工具 | 用途 | 输出或效果 | | --- | --- | --- | | `shodan_parser.py` | 根据查询列表打开经过验证的 Shodan 搜索,并收集标准化的 HTTP(S) 源。 | 将唯一的主机追加到 `files/targets.txt`。 | | `hosts_scanner.py` | 使用固定的 `VULN_TEST` 命令并发检查目标列表。 | 将确认的目标写入 `files/vulnerable.txt`,未成功的目标写入 `files/trash.txt`。 | | `exploit.py` | 重新验证单个目标并提供交互式命令会话。 | 在终端打印远程命令输出。 | | `universal_scanner.py` | 收集系统、容器、网络、文件系统、进程、凭据暴露和权限风险信息。 | 将详细的发现保存到 `scan_results.json`。 | | `infrastructure/universal_download.py` | 通过命令通道以可恢复的 Base64 块传输远程文件。 | 创建或恢复本地文件并验证其大小。 | | `infrastructure/mongo_proxy.py` | 将验证后的主机用作 MongoDB 清单和有限采样的网络路径。 | 列出数据库、集合、计数和一个小样本。 | | `infrastructure/mongo_dump.py` | 导出一个 MongoDB 数据库或所有非系统数据库(具有单集合限制)。 | 在评估主机的 `/tmp` 下创建一个 JSON 文件。 | | `infrastructure/aws_dump.py` | 清点 ECS 任务角色可用的 AWS 资源。 | 在 `/tmp` 下创建一个 JSON 文件;可能包含敏感值。 | | `infrastructure/install_ssh_key.py` | 将公钥添加到当前远程用户的 `authorized_keys` 中。 | 修改远程 SSH 配置并建立持久化。 | | `infrastructure/trace_cleaner.py` | 移除工具包残留,并尝试清除历史记录、缓存和日志。 | 破坏性地修改远程文件;仅在批准的清理操作中使用。 | 依赖 RCE 的工具预期目标环境为带有常见 shell 实用工具的类 Linux 系统。 一些基础设施辅助工具还预期评估主机上已经可用 Node.js 和相关的 npm 包。 ## 环境要求 - Python 3.10 或更高版本 - 授权目标的网络访问权限 - 通过 Playwright 安装 Chromium(供 `shodan_parser.py` 使用) - 用于目标收集的 Shodan 账户 ## 安装说明 ``` python -m venv .venv ``` 激活环境: ``` # Linux 或 macOS source .venv/bin/activate # Windows PowerShell .\.venv\Scripts\Activate.ps1 ``` 安装依赖项: ``` python -m pip install -r requirements.txt python -m playwright install chromium ``` 对于 Shodan 收集,将 `.env.example` 复制到 `.env` 并设置 `LOGIN` 和 `PASSWORD`。切勿提交 `.env`。 ## 典型工作流 1. 在 `files/queries.txt` 中每行放置一个 Shodan 查询,或者将授权 目标直接放在 `files/targets.txt` 中。 2. (可选)使用 `python shodan_parser.py` 收集目标。 3. 运行固定标记的批量检查: ``` python hosts_scanner.py --file files/targets.txt --concurrency 50 --timeout 30 ``` 4. 在运行任何命令执行或基础设施实用工具之前,检查 `files/vulnerable.txt` 并手动验证所有权和范围。 要重置扫描仪跳过列表: ``` python hosts_scanner.py --file files/targets.txt --clear-trash ``` ## 单目标工具 ``` python exploit.py https://target.example python universal_scanner.py https://target.example ``` 基础设施实用工具: ``` python infrastructure/universal_download.py [LOCAL_FILE] [CHUNK_SIZE] python infrastructure/mongo_proxy.py python infrastructure/mongo_dump.py [OUTPUT_FILE] [LIMIT] python infrastructure/aws_dump.py [OUTPUT_FILE] python infrastructure/install_ssh_key.py [PUBLIC_KEY_PATH] python infrastructure/trace_cleaner.py ``` 在不带参数的情况下运行每个脚本以查看其完整的命令行帮助。 ## 局限性 - 当前 HTTP 客户端调用中禁用了 TLS 证书验证。 - 检测取决于受影响的 Next.js 行为所使用的响应格式。 - 远程命令假定存在 `bash`、`base64`、`dd` 和 `timeout` 等工具。 - 云和数据库结果受远程身份权限的限制。 - 该工具包不提供补救措施,也不证明目标在范围内。
标签:HTTP工具, Python, StruQ, 插件系统, 无后门, 特征检测, 编程工具, 网络安全审计, 远程代码执行, 逆向工具