smoke-wolf/cyclops
GitHub: smoke-wolf/cyclops
统一的 OSINT 目标侦察流水线,输入单一目标即可自动调度 32 个连接器并行采集情报、关联实体并生成报告。
Stars: 2 | Forks: 0
CYCLOPS
统一的 OSINT 目标侦察流水线
32 个连接器 • 实体图谱关联 • 自动报告
输入单个目标,输出全面情报。CYCLOPS 会自动检测你的输入(电子邮件、域名、IP、URL、电话号码、用户名),选择合适的工作流,并行运行连接器,跨来源关联实体,并生成报告。
## 快速入门
```
pip install -e git+https://github.com/smoke-wolf/cyclops.git#egg=cyclops-osint
# 或克隆并安装
git clone https://github.com/smoke-wolf/cyclops.git
cd cyclops
pip install -e .
```
```
# 调查域名
cyclops example.com
# 调查用户名
cyclops johndoe
# 调查邮箱
cyclops target@company.com
# 调查 IP
cyclops 8.8.8.8
```
### Docker
```
docker build -t cyclops .
docker run --rm cyclops example.com
```
## 工作原理
```
target ──► auto-detect type ──► select workflow ──► run phases (parallel)
│
report ◄── correlate ◄── deduplicate ◄── entities
```
1. **输入** — 传入任意目标,CYCLOPS 会自动检测其类型
2. **工作流** — 基于 DAG 的引擎会选择正确的执行阶段并解决依赖关系
3. **连接器** — 每个阶段通过 `asyncio` 并行运行其连接器
4. **实体** — 使用 SHA-256 指纹对结果进行去重,并进行置信度评分
5. **关联** — 使用模糊匹配(Levenshtein)进行跨来源链接
6. **报告** — 支持输出为 JSON、HTML 或 Markdown 格式
## 连接器
32 个连接器 — 16 个原生(内置异步 HTTP,零安装)+ 16 个二进制(自动检测,未安装则跳过)。
原生连接器 (16) — 开箱即用
| 连接器 | 类型 | 接受输入 | API Key |
|-----------|------|---------|---------|
| GitHub | code_platform | username | 可选 |
| DNS-Native | dns_enum | domain | — |
| WHOIS-Native | domain_registration | domain | — |
| crt.sh | certificate_transparency | domain | — |
| HaveIBeenPwned | breach_lookup | email | 可选 |
| WebScraper | web_intelligence | domain, url | — |
| Wayback Machine | historical_archive | domain | — |
| IP-API | ip_geolocation | ip | 可选 |
| EmailRep | email_reputation | email | 可选 |
| Hunter | email_finder | domain, email | 必需 |
| VirusTotal | threat_intelligence | domain, ip, url | 必需 |
| SecurityTrails | dns_intelligence | domain, ip | 必需 |
| Shodan InternetDB | ip_recon | ip | — |
| AlienVault OTX | threat_intelligence | domain, ip, url | 可选 |
| AbuseIPDB | ip_reputation | ip | 必需 |
| URLScan | url_intelligence | domain, url | 可选 |
二进制连接器 (16) — 从 PATH 中自动检测
| 连接器 | 类型 | 接受输入 |
|-----------|------|---------|
| Sherlock | username_enum | username |
| Holehe | email_enum | email |
| Maigret | username_deep | username |
| theHarvester | domain_recon | domain |
| Amass | subdomain_enum | domain |
| Subfinder | subdomain_enum | domain |
| Shodan CLI | ip_recon | ip, domain |
| Censys | cert_recon | domain, ip |
| PhoneInfoga | phone_recon | phone |
| h8mail | breach_lookup | email |
| WhatsMyName | username_enum | username |
| socialscan | availability_check | username, email |
| Photon | web_crawler | url, domain |
| GHunt | google_osint | email |
| Nmap | port_scan | ip, domain |
| DNSrecon | dns_enum | domain |
## 工作流
| 工作流 | 描述 | 阶段数 |
|----------|-------------|--------|
| `person_full` | 根据任意个人标识生成完整档案 | 6 |
| `domain_recon` | 完整的基础设施枚举与人员信息收集 | 6 |
| `username_trace` | 跨平台追踪 username,提取关联身份 | 5 |
| `quick_recon` | 快速表层扫描 — 最长 60 秒 | 2 |
使用 `-w` 覆盖:
```
cyclops example.com -w quick_recon
```
## API Keys
设置为环境变量。只有带必需 key 的连接器才需要进行配置 — 其他所有功能无需配置即可使用。
```
export GITHUB_TOKEN=ghp_...
export VIRUSTOTAL_API_KEY=...
export HUNTER_API_KEY=...
export SECURITYTRAILS_API_KEY=...
export ABUSEIPDB_API_KEY=...
export SHODAN_API_KEY=...
export HIBP_API_KEY=...
```
## 命令
```
cyclops
# investigate (auto-detect type)
cyclops -t domain # override detected type
cyclops -w quick_recon # override workflow
cyclops connectors # list all 32 connectors
cyclops workflows # list available workflows
cyclops list # list past investigations
cyclops entities # browse entities from an investigation
cyclops entities --type domain # browse specific entities
cyclops entities --json # export entities as JSON
cyclops report --format html # generate HTML report
```
## 架构
```
cyclops/
├── cli.py # click CLI + auto-detect
├── core/
│ ├── engine.py # DAG workflow engine (asyncio)
│ ├── state.py # SQLite + WAL, entity fingerprinting
│ └── telemetry.py # event broadcasting
├── connectors/
│ ├── base.py # BaseConnector + BinaryConnector
│ ├── registry.py # config-driven loader
│ ├── github.py # ... 16 native connectors
│ └── ...
├── correlate/
│ └── linker.py # Levenshtein fuzzy matching, graph builder
└── reporting/
└── generator.py # JSON / HTML / Markdown
```
## 贡献
欢迎提交 PR。添加连接器的步骤:
1. 创建 `cyclops/connectors/your_connector.py`,继承 `BaseConnector` 或 `BinaryConnector`
2. 在 `config/connectors.json` 中添加条目
3. 在 `cyclops/connectors/registry.py` 的 `CONNECTOR_MAP` 中添加
4. 在 `config/workflows.json` 的相关工作流阶段中添加
## 许可证
MIT标签:32个连接器, CLI, DAG工作流, Docker, ESC4, GitHub, GitHub项目, IP反查, OSINT, pip, Python, WAF测试, WiFi技术, 代码示例, 去重, 图分析, 图谱关联, 域名查询, 多源数据, 威胁情报, 安全防御评估, 实体关联分析, 实时处理, 开发者工具, 情报分析, 情报收集, 数据分析, 无后门, 漏洞研究, 用户名追踪, 目标侦察, 网络安全, 网络诊断, 聊天机器人, 自动化报告, 自动化流水线, 计算机取证, 请求拦截, 软件工具, 进程管理, 逆向工具, 邮箱溯源, 隐私保护, 黑盒测试