smoke-wolf/cyclops

GitHub: smoke-wolf/cyclops

统一的 OSINT 目标侦察流水线,输入单一目标即可自动调度 32 个连接器并行采集情报、关联实体并生成报告。

Stars: 2 | Forks: 0

CYCLOPS demo

CYCLOPS

统一的 OSINT 目标侦察流水线
32 个连接器 • 实体图谱关联 • 自动报告

Tests Python 3.9+ License Stars

输入单个目标,输出全面情报。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技术, 代码示例, 去重, 图分析, 图谱关联, 域名查询, 多源数据, 威胁情报, 安全防御评估, 实体关联分析, 实时处理, 开发者工具, 情报分析, 情报收集, 数据分析, 无后门, 漏洞研究, 用户名追踪, 目标侦察, 网络安全, 网络诊断, 聊天机器人, 自动化报告, 自动化流水线, 计算机取证, 请求拦截, 软件工具, 进程管理, 逆向工具, 邮箱溯源, 隐私保护, 黑盒测试