SergioMazo/WB-vuln-auditor
GitHub: SergioMazo/WB-vuln-auditor
一款基于 Python 和 Shodan 的专项审计工具,用于在授权范围内检测互联网暴露的 WattBox 设备是否仍接受文档默认凭据。
Stars: 0 | Forks: 0
# WB Vulnerability Auditor
[](https://github.com/SergioMazo/WB-vuln-auditor/actions)
[](https://github.com/SergioMazo/WB-vuln-auditor/actions)
[](https://github.com/SergioMazo/WB-vuln-auditor/actions)
[](https://github.com/SergioMazo/WB-vuln-auditor/actions)
[](LICENSE)
[](https://www.python.org/)
[](ROADMAP.md)
WB Vulnerability Auditor 是一个专注于授权 WattBox 安全评估的 Python
实用工具。它使用 Shodan 定位匹配的 HTTP 服务,检查记录在案的默认凭据是否会暴露
`wattbox_info.xml`,记录报告的硬件版本,并将确认的结果写入 CSV。
它的存在是为了使一项高价值的凭据清理检查变得可重复。它不会进行密码暴力破解、
利用设备漏洞、扫描任意端口,也不会提供通用的漏洞评估。
## 为什么使用它?
- 范围狭窄,易于审查和解释
- 基于环境变量处理 Shodan API key
- 设备检查之间有一秒的延迟
- 简短的设备超时和有界的结果处理
- 无实时扫描的离线测试
- 适用于授权修复工作流的 CSV 输出
## 架构
```
Authorized operator
|
| SHODAN_API_KEY
v
Shodan host search
"wattbox port:80"
|
| IP and port pairs
v
HTTP GET /wattbox_info.xml
with documented default credentials
|
| HTTP 200 + hardware_version
v
Terminal summary + wattbox_vulnerables.csv
```
当前的扫描不会执行主动的 CVE 丰富,因为设备
响应未映射到可靠的 CPE。请参阅
[架构](docs/architecture.md) 和 [局限性](docs/limitations.md)。
## 快速开始
```
git clone https://github.com/SergioMazo/WB-vuln-auditor.git
cd WB-vuln-auditor
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
export SHODAN_API_KEY="replace_with_your_shodan_api_key"
python Wattbox_vulnerability_comentado.py
```
应用程序不会自动加载 `.env` 文件。如果你根据
`.env.example` 创建了该文件,请显式加载它,并且永远不要提交它。
## 安装
要求:
- Python 3.10 或更高版本
- 你自己的具有主机搜索访问权限的 Shodan API key
- 可访问 Shodan 和明确授权的目标设备的网络
每个操作员必须使用他们自己的 Shodan 账户和 API key。本仓库
不包含、共享或支付任何 key。Shodan 在创建
账户时会提供一个 API key,但本项目的筛选主机搜索会使用查询额度。
因此,实际的搜索访问权限、配额和结果限制取决于
操作员当前的 Shodan 账户和套餐。
仅安装两个运行时依赖项:
```
python -m pip install -r requirements.txt
```
用于开发和本地验证:
```
python -m pip install -r requirements-dev.txt
make check
```
## 配置
目前仅 API key 可在外部进行配置。
| 设置 | 来源 | 当前值或用途 |
| --- | --- | --- |
| `SHODAN_API_KEY` | 环境变量 | 必需的 Shodan 凭据 |
| 搜索查询 | 代码常量 | `wattbox port:80` |
| 结果上限 | 代码常量 | 最多来自一次 API 响应的 150 个匹配项 |
| 设备超时 | 代码常量 | 3 秒 |
| 延迟 | 代码常量 | 检查之间间隔 1 秒 |
| 输出路径 | 代码常量 | `wattbox_vulnerables.csv` |
有关 shell 示例和密钥处理指导,请参阅 [配置](docs/configuration.md)。
## 用法示例
运行授权审计:
```
export SHODAN_API_KEY="replace_with_your_shodan_api_key"
python Wattbox_vulnerability_comentado.py
```
在没有 API key 的情况下运行离线测试套件:
```
make test
```
检查代码、文档、shell 工具和 Git 历史:
```
make check
```
## 输出示例
以下示例使用了为文档保留的地址:
```
[INFO] Searching Shodan for exposed WattBox devices...
[INFO] Testing 203.0.113.42:80 with default credentials...
[VULNERABLE] 203.0.113.42:80 (WB-700)
[INFO] Total tested: 1
[WARN] Devices accepting the default credentials:
IP Port Model Status CVEs
203.0.113.42 80 WB-700 Vulnerable -
[INFO] Results saved to wattbox_vulnerables.csv
```
CSV 包含:
```
IP,Port,Model,Status,CVEs
203.0.113.42,80,WB-700,Vulnerable,-
```
某一行数据意味着 endpoint 在使用文档中的默认值时返回了 HTTP 200 以及预期的硬件版本元素。这并不能证明存在
特定的 CVE。`CVEs` 字段目前为 `-`,因为 CPE 映射未
激活。在将结果用于报告之前,请阅读 [解读输出](docs/output.md)。
## 安全与数据处理
- 永远不要提交真实的 API key 或生成的 CSV。
- 将发现的 IP 地址、模型数据和身份验证结果视为
敏感评估数据。
- 每次运行前确认范围;Shodan 查询并不代表授权。
- 如果 Shodan API key 出现在日志或版本控制中,请立即轮换。
- 通过 [安全策略](SECURITY.md) 报告漏洞,而不是通过公开的
issue。
该仓库包含针对完整 Git 历史的 Gitleaks 扫描,以及一个
拒绝跟踪 RFC 1918 地址字面量的测试。请参阅
[安全模型](docs/security-model.md)。
## 常见问题
### 我需要自己的 Shodan API key 吗?
是的。该仓库永远不会提供或共享 Shodan 凭据。创建或使用
你自己的 Shodan 账户,获取其 API key,并确认该账户具有
主机搜索访问权限和足够的查询额度。免费账户可以提供 API
key,但其当前的权限是否足够用于此筛选
搜索由 Shodan 控制并且可能会发生变化。
### 这会利用 WattBox 设备的漏洞吗?
不会。它使用记录在案的默认凭据对已知的信息 endpoint 执行一次 HTTP 请求。
### CSV 中的一行是否意味着设备存在已知的 CVE?
不是。它意味着默认凭据被接受并且返回了预期的硬件
字段。CVE 丰富未激活。
### 为什么失败的 Shodan 请求最终会显示“未找到设备”?
扫描器保留了其原始的简单结果模型。它会针对
请求失败打印一条警告,然后报告一个空的结果集。在
解读最后一行结果之前,请先查看警告。
### `.env.example` 会自动加载吗?
不会。请在当前的 shell 中导出 `SHODAN_API_KEY` 或者显式加载本地 `.env`。
### 我可以从命令行更改查询、速率或输出路径吗?
在当前版本中不行。这些值是脚本中的常量。CLI
配置可能是未来的改进,而不是现有功能。
## 路线图
近期的工作重点是更好的打包、更清晰的机器可读错误,
以及在不扩大扫描器的授权或
攻击面的情况下扩大测试覆盖率。请参阅 [路线图](ROADMAP.md)。
## 许可证
WB Vulnerability Auditor 采用 [MIT 许可证](LICENSE)。
## 鸣谢
- [Shodan](https://www.shodan.io/) 提供了该项目引用的
主机搜索和 CVEDB 服务。
- 提及 WattBox 仅是为了描述该工具检查的设备。本
项目是独立的,未获得 Shodan 或 WattBox 的认可。
- MiniOps 为仓库结构、文档、测试
和 CI 纪律提供了质量基准;没有任何 MiniOps 文件被原样
复制。
标签:Python, StruQ, 插件系统, 无后门, 漏洞审计, 物联网安全, 逆向工具, 默认凭据检测