tools4eu/lookout

GitHub: tools4eu/lookout

Lookout 是一款命令行自动化威胁情报查询工具,通过并行调用多个情报源 API,帮助分析人员快速评估域名、IP、哈希和 URL 的风险等级并生成报告。

Stars: 0 | Forks: 0

# Lookout **针对域名、IP、哈希和 URL 的自动化 OSINT 与威胁情报工具。** Lookout 是一款命令行工具,只需一条命令即可调查可疑指标。它并行查询多个威胁情报源,并为您提供清晰的风险评估——无需逐一手动检查各项服务。 专为需要快速、可靠结果且无需深厚技术专业知识的调查员和分析师打造。 ## 它的功能是什么? 您向 Lookout 提供一个域名、IP 地址、文件哈希或 URL。Lookout 会自动: 1. **检测** 指标类型 2. **查询** 最多 9 个威胁情报源(并行) 3. **评分** 根据所有来源的加权结果评估风险 4. **报告** 在清晰的概览中展示发现(支持表格、JSON 或 Markdown) ### 示例 ``` $ lookout investigate suspicious-domain.com Detected type: domain DOMAIN: suspicious-domain.com [MEDIUM (42)] Source Status Risk Details virustotal OK medium (38) 8/93 malicious, 5 suspicious urlscan OK clean (0) IP: 203.0.113.50 rdap OK - Registrar: Example Registrar Inc. crtsh OK - 12 subdomains threatfox OK clean (0) - Queried 5 sources in 2.34s (0 cached) ``` ## 支持的威胁情报源 | 来源 | 类型 | 检查内容 | 需要 API key? | |--------|------|----------------|-----------------| | **VirusTotal** | Premium | 域名、IP、URL、文件哈希(60+ 防病毒引擎) | 是(提供免费层) | | **AbuseIPDB** | Premium | IP 信誉和滥用报告 | 是(提供免费层) | | **Shodan** | Premium | IP 上的开放端口、服务、漏洞 | 是(提供免费层) | | **URLScan.io** | Premium | 实时网站扫描、截图、技术栈 | 是(提供免费层) | | **AlienVault OTX** | Premium | 社区威胁情报 pulses | 是(免费) | | **RDAP** | Free | WHOIS/域名注册数据(注册商、日期、名称服务器) | 否 | | **crt.sh** | Free | 证书透明度日志(子域名、证书) | 否 | | **ThreatFox** | Free | 来自 abuse.ch 的已知 IOC(恶意软件、C2 服务器) | 否 | | **URLhaus** | Free | 来自 abuse.ch 的恶意 URL 数据库 | 否 | ## 支持的指标类型 | 类型 | 示例 | 使用的来源 | |------|---------|-------------| | Domain | `example.com` | VirusTotal, URLScan, RDAP, crt.sh, ThreatFox | | IPv4 | `1.2.3.4` | VirusTotal, AbuseIPDB, Shodan, RDAP, ThreatFox | | IPv6 | `2001:db8::1` | VirusTotal, AbuseIPDB, Shodan, RDAP, ThreatFox | | URL | `https://evil.com/payload` | VirusTotal, URLScan, URLhaus, ThreatFox | | MD5 hash | `d41d8cd98f00b204e9800998ecf8427e` | VirusTotal, ThreatFox | | SHA1 hash | `da39a3ee5e6b4b0d3255bfef95601890afd80709` | VirusTotal, ThreatFox | | SHA256 hash | `e3b0c44298fc1c14...` | VirusTotal, ThreatFox | | Email | `actor@evil.com` | VirusTotal | ## 风险评分 Lookout 根据加权结果计算 0 到 100 的风险评分: | 分数 | 等级 | 含义 | |-------|-------|---------| | 0-9 | **CLEAN** | 未检测到威胁 | | 10-29 | **LOW** | 轻微标记,可能安全 | | 30-59 | **MEDIUM** | 检测到可疑活动 | | 60-84 | **HIGH** | 多个来源将其标记为恶意 | | 85-100 | **CRITICAL** | 强烈共识:这是恶意的 | ## 快速开始 请参阅 [安装与使用指南 (HOWTO.md)](HOWTO.md) 获取详细的分步说明。 ``` # 1. 克隆仓库 git clone https://github.com/tools4eu/lookout.git cd Lookout # 2. 安装 pip install -e . # 3. 配置 API keys cp .env.example .env # 编辑 .env 填入你的 API keys(获取来源请参阅 HOWTO.md) # 4. 运行你的第一次调查 lookout investigate example.com ``` ## 典型调查工作流 Lookout 旨在一步步指导您完成调查。在每个命令之后,它会建议逻辑上的下一步操作。 ``` # 步骤 1:创建一个 Case 以保持一切井井有条 lookout new "phishing-example-com" -d "Suspicious domain from spam report" # 步骤 2:进入 Case 目录 cd phishing-example-com # 步骤 3:调查域名(被动 —— 目标无法看到你) lookout investigate suspicious-domain.com # 步骤 4:Lookout 显示结果 + 建议后续步骤: # → 枚举以发现子域名 # → dirscan 以寻找暴露的面板 # → 调查 Pivot IP 或子域名 # 步骤 5:发现子域名(半被动) lookout enumerate suspicious-domain.com # 步骤 6:扫描钓鱼面板路径(主动 —— 如需要请使用代理) lookout dirscan suspicious-domain.com --proxy socks5://127.0.0.1:9050 # 步骤 7:Pivot —— 调查在步骤 3 中发现的托管 IP lookout investigate 203.0.113.50 # 步骤 8:生成最终报告 lookout investigate suspicious-domain.com --format docx --output reports/report.docx ``` 当您在案例目录(使用 `lookout new` 创建)中运行命令时,结果会自动保存,案例文件也会更新。 ## 输出格式 ``` # 表格(默认)- 终端中的人类可读概览 lookout investigate example.com # JSON - 用于进一步处理或脚本编写 lookout investigate example.com --format json --output report.json # Markdown - 用于文档记录和分享 lookout investigate example.com --format markdown --output report.md # Word (.docx) - 用于 Case 文件的专业报告 lookout investigate example.com --format docx --output report.docx ``` | 格式 | 最适合 | |--------|----------| | **Table** | 终端中快速查看 | | **JSON** | 脚本编写、数据处理、归档 | | **Markdown** | 笔记、Wiki、基于文本的报告 | | **Word (.docx)** | 正式报告、案例文件、与非技术读者分享 | ## OPSEC — 了解每个命令的作用 **在使用 Lookout 之前阅读此内容。** 并非所有命令都同样安全。有些是完全被动的(对目标不可见),其他的则不是。 ### 被动命令(目标无法看到您) | 命令 | 发生什么 | 您的 IP 对目标可见吗? | |---------|-------------|---------------------------| | `lookout investigate` | 查询第三方 API(VirusTotal, Shodan 等) | **否** — 流量发送给 API 提供商,从不发送给目标 | | `lookout detect` | 仅本地检测,无网络流量 | **否** | ### 半被动命令(低风险) | 命令 | 发生什么 | 您的 IP 对目标可见吗? | |---------|-------------|---------------------------| | `lookout enumerate` | 通过您的 DNS 解析器发送 DNS 查询 | **间接** — 目标的名称服务器看到的是您 DNS 解析器的 IP,而不是您直接的 IP | ### 主动命令(目标可以看到您) | 命令 | 发生什么 | 您的 IP 对目标可见吗? | |---------|-------------|---------------------------| | `lookout dirscan` | 向目标发起直接的 HTTP 请求 | **是** — 您的 IP 会出现在他们的服务器日志、WAF 警报和反机器人系统中 | **在使用 `dirscan` 时保护自己:** ``` # 通过 SOCKS5 代理路由(例如 Tor) lookout dirscan target.com --proxy socks5://127.0.0.1:9050 # 通过 HTTP 代理路由 lookout dirscan target.com --proxy http://your-proxy:8080 ``` `enumerate` 和 `dirscan` 都会显示 OPSEC 警告并在继续之前要求确认。仅当您了解风险时,才使用 `--yes` 跳过警告。 有关更多详细信息,请参阅 [HOWTO](HOWTO.md#11-opsec--privacy)。 ## 项目结构 ``` Lookout/ ├── .env.example # API keys template (fill in your own) ├── config/ │ └── config.yaml # Rate limits, caching, enabled sources ├── src/osint/ │ ├── cli/app.py # Command-line interface │ ├── clients/ # API clients (one per source) │ ├── core/ # Config, constants, exceptions │ ├── detection/ # Auto-detection of indicator types │ ├── models/ # Data models for results │ ├── orchestration/ # Investigation orchestrator │ ├── cache/ # SQLite caching layer │ ├── reports/ # Report generation (Markdown/JSON) │ └── utils/ # Rate limiter ├── tests/ # Unit tests └── data/ # Runtime data (cache database) ``` ## 许可证 MIT
标签:AbuseIPDB, Ask搜索, CLI, DAST, ESC4, GitHub, Hash校验, HTTP/HTTPS抓包, IP信誉查询, OSINT, Python, Sigma 规则, URL扫描, VirusTotal, WiFi技术, 域名分析, 威胁情报, 库, 应急响应, 开发者工具, 态势感知, 恶意软件分析, 情报收集, 文档结构分析, 无后门, 沙箱检测, 渗透测试辅助, 漏洞研究, 网络安全, 自动化调查, 逆向工具, 隐私保护