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技术, 域名分析, 威胁情报, 库, 应急响应, 开发者工具, 态势感知, 恶意软件分析, 情报收集, 文档结构分析, 无后门, 沙箱检测, 渗透测试辅助, 漏洞研究, 网络安全, 自动化调查, 逆向工具, 隐私保护