UnusualGiraffe/Mass-Scanner-CVE-2025-9242

GitHub: UnusualGiraffe/Mass-Scanner-CVE-2025-9242

一款仅用于检测的异步 IPv4 扫描器,通过发送非攻击性的 IKEv2 请求来识别暴露在网络中且受 CVE-2025-9242 影响的 WatchGuard Fireware 设备。

Stars: 0 | Forks: 0

# mass-scanner-CVE-2025-9242 用于 WatchGuard Fireware 暴露情况的仅检测异步 IPv4 扫描器。 与 CVE-2025-9242 相关的分流处置。 该扫描器针对每个选定的地址和端口发送一个普通的、非溢出的 IKEv2 `IKE_SA_INIT` 请求,然后解析明文响应中返回的任何 WatchGuard 供应商版本/构建指纹。 它不包含任何 `IKE_AUTH` 构建器、漏洞触发器、shellcode、身份验证、枚举、回调或身份验证后逻辑。 ## 功能 - 交互式默认范围或自定义范围菜单 - 内置默认计划:`82.127.0.0/16` - 自定义 CIDR、单个 IPv4 地址或包含起止范围的区间 - 默认使用 UDP/500;可选 UDP/500 和 UDP/4500 - 在大约三秒内快速将速率提升至 `250 -> 500 -> 1,000 -> 2,000` pps - 最高 2,000 总探测/秒的硬上限 - 流式地址扩展和有界的未完成状态 - 默认提供美观的终端显示,并提供安静和详细模式选项 - 换行分隔的 JSON 结果和摘要 - 在执行网络扫描前需明确授权确认 - 仅使用标准库的 Python 实现 内置的 `/8` 是一个范围选择默认值,而非授权声明。 仅在所有选定地址都已获得明确授权时才使用它。 ## 要求 - Python 3.11 或更高版本 - Linux 或其他支持 Python 异步 UDP 的平台 - 对每个选定地址的明确授权 不需要任何第三方 Python 包。 ## 快速开始 交互式菜单默认为网络无操作的演练: ``` python3 wg_ike_mass_scanner.py ``` 菜单显示: 1. 默认范围:`82.127.0.0/16` 2. 自定义 IPv4 CIDR、单个地址或包含起止范围的区间 3. 退出 然后提供 `Pretty`(默认)、`Quiet` 和 `Verbose` 显示级别。 Pretty 模式显示易读的计划、简洁的进度、暴露命中情况和最终摘要。Quiet 模式显示暴露命中情况、错误和最终摘要。Verbose 模式打印诊断 JSON。这三种模式均写入相同的 JSONL 证据格式。 在执行网络扫描之前,扫描器会说明演练仅预览扫描计划且不发送任何数据包。按 Enter 键或选择 `Y` 进行演练。选择 `n` 仅继续进行网络扫描的授权确认。 ## 演练示例 在不创建 socket 的情况下预览默认计划: ``` python3 wg_ike_mass_scanner.py --default-range --dry-run ``` 预览自定义范围和两个 IKE 端口: ``` python3 wg_ike_mass_scanner.py \ --range 192.0.2.0/24 \ --ports 500,4500 \ --dry-run ``` CIDR 和包含的区间按地址升序流式传输。较窄的 CIDR 会更快到达目标地址并减少总流量;请确认整个选定范围均已获得授权。 使用 `--verbosity normal`、`--verbosity quiet` 或 `--verbosity verbose` 选择终端详细程度。`normal` 是美观的默认值。 ## 授权的网络执行 内置默认范围: ``` python3 wg_ike_mass_scanner.py \ --default-range \ --ack-authorized ``` 自定义范围: ``` python3 wg_ike_mass_scanner.py \ --range 192.0.2.0/24 \ --ack-authorized ``` 该确认表明所有选定的地址均已获得授权。它不会替您执行所有权或交战规则的查询。 ## 速率行为 默认的三秒提升过程如下: ``` 0-1 seconds: 250 pps 1-2 seconds: 500 pps 2-3 seconds: 1,000 pps after 3 seconds: 2,000 pps ``` `--max-rate` 可以选择较低的上限,而 `--ramp-seconds` 可以减缓提升速度。高于 2,000 pps 的值将被拒绝。该速率是每秒的总探测数,而不是每秒的地址数。选择两个端口会使探测数量翻倍。 ## 输出 默认的终端显示易于阅读。独立于终端详细程度,扫描器会写入包含以下内容的 JSONL: 1. 一条 `scan_start` 记录 2. 每个响应对应一条结果记录 3. 一条 `scan_summary` 记录 超时会在摘要中进行统计,而不是每个地址写入一次。 可能的仅版本状态包括: - `EXACT_PROFILE_EXPOSURE`: Fireware `12.7`, build `640389` - `AFFECTED_VERSION_EXPOSURE` - `RESOLVED_VERSION` - `WATCHGUARD_VERSION_UNPARSED` - `WATCHGUARD_VERSION_REQUIRES_OWNER_REVIEW` - `IKE_RESPONSE_NO_WATCHGUARD_FINGERPRINT` 在普通和安静的终端模式下,确切的 `12.7` / `640389` 配置文件显示为 `[EXACT EXPOSURE]`;其他受影响的版本显示为 `[EXPOSURE]`。底层的 JSONL 状态保持不变。 超时并不能证明目标已被修补。版本指纹不能证明设备型号、相关当前或历史 VPN 配置或可利用性。 ## 离线验证 ``` python3 -m unittest discover -s tests -v python3 tests/benchmark_offline.py python3 wg_ike_mass_scanner.py --default-range --dry-run sha256sum -c MANIFEST.sha256 ``` GitHub Actions 工作流仅执行离线单元测试、演练、清单验证和简化的离线基准测试。 ## 安全与范围 仅在您拥有或被明确授权评估的系统上使用此项目。有关报告和数据处理的边界,请参阅 [SECURITY.md](SECURITY.md)。 ## 许可证状态 此上传包中不包含任何开源许可证。在发布或重新分发之前,请参阅 [LICENSE-STATUS.md](LICENSE-STATUS.md)。 ## 参考 - [WatchGuard advisory WGSA-2025-00015](https://www.watchguard.com/wgrd-psirt/advisory/wgsa-2025-00015) - [NVD CVE-2025-9242](https://nvd.nist.gov/vuln/detail/CVE-2025-9242) - RFC 7296: Internet Key Exchange Protocol Version 2 - RFC 3948: UDP Encapsulation of IPsec ESP Packets
标签:Python, 密码管理, 异步IO, 插件系统, 无后门, 计算机取证, 逆向工具