osintph/bantay-eye
GitHub: osintph/bantay-eye
Bantay-Eye 是一款防御性互联网暴露面普查工具,通过聚合三大搜索引擎数据实现国家层面的攻击面发现与负责任披露流程自动化。
Stars: 0 | Forks: 0
# Bantay-Eye
Bantay-Eye 端到端地运行 [Operation Liwanag](https://blog.osintph.info) 方法论:它通过查询 Shodan、Censys 和 ZoomEye,获取某个国家在七个类别中暴露的攻击面,跨引擎对发现的结果进行去重,标记可能的 honeypot,并为 NCERT-PH、资产所有者以及国家隐私委员会生成可直接发送的披露模板。
它不包含 exploit 代码,不连接被发现的设备,也不会以任何超出上述三个上游搜索引擎已公开索引范围的方式枚举目标。
`Bantay` 在他加禄语中意为“监视”或“守卫”。`Eye` 是刻意对 [HackingPassion's](https://hackingpassion.com) “Eye”套件的致敬,本工具的文档风格正是模仿其以实践者优先的发布风格。
## 它的功能
- **七大暴露类别**:ICS/SCADA、政府、远程访问、电信、银行业(预留)、IoT 以及云托管的错误配置。
- **三大引擎,统一查询层**:使用针对每个引擎验证过的语法(Shodan、带 `host.` 前缀的 Censys Search v2,以及带引号和 `&&` 的 ZoomEye REST),为所有三个引擎表达每一次查询。
- **跨引擎去重**:将同一 `(ip, port, category)` 上的发现合并为一条记录,并取数据源的并集。
- **Honeypot 标注**:将 Shodan 自身的 `honeypot` 标签、与已知商业云 honeypot IP 范围的 ASN 匹配,以及单引擎观察结果作为信号呈现。
- **礼貌的速率限制**:支持配置每个引擎调用之间的最小延迟,以防您耗尽免费额度的配额。
- **披露模板**:使用 Jinja 渲染的 NCERT-PH、直接发给所有者的通知以及 NPC 通知模板,并根据发现的数据自动预填。
- **JSON 输出**:每次扫描都会生成一份结构化的报告,您可以在多次运行之间进行 diff。
## 它不能做的事
- 它不连接被发现的设备。
- 它不查询设备寄存器,不尝试身份验证,也不触发任何服务。
- 它不包含 CVE 查找、exploit 代码或漏洞的概念验证。
- 它不按名称枚举目标。国家过滤器和类别查询是唯一的选择器。
这些意图已在 LICENSE 文件中声明:这是一个用于负责任披露工作的防御性调查工具。请为此目的使用它。
## 要求
- Python 3.10 或更高版本
- 至少拥有这三个搜索引擎之一的 API 访问权限
### API 等级及价格
| 引擎 | 免费层可行性 | 您实际需要的 |
| --- | --- | --- |
| **Shodan** | 受限。真正的免费层对搜索有严格限制。 | 一次性购买 **Membership**(约 59 美元,黑色星期五期间通常打折至约 5 美元)即可获得每次查询 100 页结果、每月 10,000 个结果积分,这是进行 survey 工作时实用的“工作等级”。标签过滤器(`tag:ics` 等)需要企业版,Bantay-Eye 因此未使用它们。 |
| **Censys** | 完全免费。 | 免费账户每月提供 250 次搜索查询,足以支持多次完整的 Bantay-Eye 运行。请在 [search.censys.io](https://search.censys.io) 注册。 |
| **ZoomEye** | 完全免费。 | 免费账户每月提供约 10,000 个查询积分。请在 [zoomeye.org](https://zoomeye.org) 注册。 |
您可以配置 Bantay-Eye 使用任意引擎子集运行;没有凭据的引擎将被静默跳过。推荐的最低配置:Censys + ZoomEye,因为它们都是完全免费的。
## 安装说明
### 选项 A:pipx(推荐终端用户使用)
```
pipx install git+https://github.com/osintph/bantay-eye.git
```
### 选项 B:在 virtualenv 中使用 pip(推荐开发使用)
```
git clone https://github.com/osintph/bantay-eye.git
cd bantay-eye
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
```
### 选项 C:直接从 GitHub 安装
```
pip install --user git+https://github.com/osintph/bantay-eye.git
```
## 快速入门
```
# 1. 在当前目录创建一个初始 config
bantay-eye init
# 2. 编辑 bantay_eye.toml 并添加您的 API keys
vi bantay_eye.toml
# 3. 验证您的安装和 credentials
bantay-eye doctor
# 4. 列出可用的 categories
bantay-eye categories
# 5. 运行已定义 queries 的所有 categories 的 survey
bantay-eye survey --all
# 6. 或者运行单个 category,例如 ICS
bantay-eye survey --category ics
# 7. 为一个 finding 生成 disclosure template
bantay-eye disclose 203.0.113.42-502-ics \
--report findings/survey-20260617T093000.json \
--template ncert \
--output disclosures/ncert-203.0.113.42.md
```
## 配置说明
Bantay-Eye 会按以下顺序查找 `bantay_eye.toml`:
1. 传递给 `--config` 的路径。
2. 当前工作目录下的 `./bantay_eye.toml`。
3. 平台的用户配置目录(运行 `bantay-eye config-path` 查看)。
如果您倾向于使用系统范围的设置,请运行 `bantay-eye init --location user`,以便在用户配置目录中生成一个初始配置。
有关每个可用的配置项,请参见 `bantay_eye.toml.example`。
## 支持的国家
默认国家是菲律宾(`PH`)。该工具是与国家无关的,并且内置了其余东盟国家、主要东亚经济体、澳大利亚、新西兰、美国和英国的名称映射。在 `src/bantay_eye/categories.py` 中的 `COUNTRY_NAMES` 添加新国家后,它们将立即在所有三个引擎上生效。
## 输出结构
```
findings/
├── survey-20260617T093000.json # full survey report
disclosures/
├── ncert-203.0.113.42.md # rendered disclosure templates
├── owner-198.51.100.7.md
└── npc-198.51.100.7.md
```
## 方法论
七个类别及其查询在 [blog.osintph.info](https://blog.osintph.info) 上的 Operation Liwanag 文章中有详细描述。请先阅读该文章;本工具是该论述的具体操作化实现,并不能替代您去理解为什么查询语句要这样设计。
## 许可证
MIT,附带道德使用声明。请参见 LICENSE。
## 致谢
- [Shodan](https://shodan.io)、[Censys](https://censys.io) 和 [ZoomEye](https://zoomeye.org) 团队提供的底层数据。
- [HackingPassion](https://hackingpassion.com) 提供的文档风格和以实践者优先的发布传统。
- NCERT-PH 接受披露,即使他们无法公开承认。
标签:Blue Team, ESC4, OSINT, Python安全, 实时处理, 密码管理, 暴露面梳理, 漏洞披露, 逆向工具