aksharnc/ArCHie_Analyzer
GitHub: aksharnc/ArCHie_Analyzer
这是一款面向SOC与VAPT场景的威胁情报CLI工具,能够自动识别IOC类型并并发查询多个外部API,快速生成综合判定表以辅助分流。
Stars: 1 | Forks: 0
# ArCHie Analyzer
面向 SOC / VAPT / 网络钓鱼分流的威胁情报 CLI。
粘贴任何 IOC 以自动检测其类型,并发查询多达 11 个来源,并获取判定表。
包含一个嵌入式 Java 代理,通过本地隧道路由请求,适用于绕过企业或受管环境中的网络级 URL 限制。可能并非在所有情况下都有效 —— 使用 `--no-proxy` 跳过。
完整版本历史请参阅 [CHANGELOG.md](CHANGELOG.md)。
## 快速开始
```
# 1. 安装 dependencies
pip install -r requirements.txt
# 2. 设置 API keys
copy .env.example .env
# 打开 .env 并填入你的 keys
# 3. (一次性)将项目文件夹添加到 PATH,以便你可以从任何位置运行 'archie'
setx PATH "%PATH%;C:\Automations Stuff\ArCHie_Analyzer"
# 在此步骤后打开一个新的终端
# 4. 运行
archie # interactive menu
archie -h # all CLI flags
archie -i "45.33.32.156" # analyze single IOC
archie -i "45.33.32.156" -v # verbose output
archie -f tests/sample_iocs.txt # bulk from file
archie -f iocs.txt -o csv # export CSV
archie --api-status # API usage dashboard
archie --list-sources # show all source names
```
## CLI 标志
```
-i, --ioc Single IOC to analyze
-f, --file Path to a file with one IOC per line
-s, --sources Comma-separated source filter (e.g. "VirusTotal,AbuseIPDB")
-v, --verbose Show per-API results as they arrive (default: quiet summary)
-np, --no-proxy Skip the Java proxy (use direct connection)
-nc, --no-cache Bypass the 24 h result cache
-w, --workers Thread pool size for concurrent API calls (default: 5)
-o, --output Export format: csv or json
-lr, --log-raw Save full raw API dump to output/logs/json/
-ls, --log-summary Save summary log (parsed fields only) to output/logs/json/
--api-status Show API key config, daily usage, and remaining quota
--list-sources Print all available source names
--mark-exhausted Manually flag a source as exhausted until midnight
--clear-exhausted Clear the exhausted flag for a source (or "all")
```
## 支持的 IOC 类型
| 类型 | 示例 | 备注 |
|---|---|---|
| MD5 / SHA1 / SHA256 | `44d88612fea8a8f36de82e1278abb02f` | Hash 查询 |
| IPv4 (+ CIDR) | `45.33.32.156`, `10.0.0.0/8` | IP 信誉 |
| Domain | `evil.ru` | 域名情报 + 证书侦察 |
| URL | `https://phish.evil.ru/login` | URL 扫描 + 网络钓鱼检查 |
| Email | `attacker@phish.ru` | 提取域名并重新分发 |
| File Path | `C:\Temp\payload.exe` | 扩展名 + 路径风险检查 |
| CVE | `CVE-2024-12345` | NVD CVSS 查询 |
## API 来源
| 来源 | 覆盖范围 | 需要密钥 |
|---|---|---|
| VirusTotal | Hash, IP, Domain, URL | 是 |
| AbuseIPDB | IP | 是 |
| OTX AlienVault | Hash, IP, Domain, URL | 是 |
| GreyNoise | IP | 是 |
| URLScan.io | Domain, URL | 是 |
| MalwareBazaar | Hash | 是(免费账户) |
| Hybrid Analysis | Hash | 是(免费账户) |
| PhishTank | URL | 是(免费账户) |
| IPInfo | IP | 否(基础地理位置信息免费) |
| crt.sh | Domain | 否(公共 CT 日志) |
| NVD | CVE | 否(可选密钥以获得更高的速率限制) |
所有密钥的注册链接位于 `.env.example` 中。
缺失的密钥在判定表中显示为 `~ NO KEY` —— 该工具绝不会因缺失密钥而崩溃。
## 示例输出
```
IOC >> 45.33.32.156
TYPE >> IPv4 Address
+------------------+----------------+---------------------------------------------+
| SOURCE | VERDICT | KEY FINDINGS |
+------------------+----------------+---------------------------------------------+
| VirusTotal | [!] MALICIOUS | 14/94 security vendors flagged this IP ... |
| AbuseIPDB | [!] MALICIOUS | 87% | 234 reports | Linode |
| GreyNoise | [!] MALICIOUS | malicious | scanner |
| OTX AlienVault | [~] SUSPICIOUS | 3 threat pulses |
| IPInfo | [i] INFO | AS63949 Linode | US |
+------------------+----------------+---------------------------------------------+
// VERDICT
[!] MALICIOUS (3 of 4 sources agree)
Flagged : VirusTotal, AbuseIPDB, GreyNoise
Run log -> output/logs/json/run_20260320_222739.json
```
## 项目结构
```
ArCHie_Analyzer/
|-- analyzer.py <- CLI entry point (dispatch, bulk/single, log, export)
|-- detector.py <- IOC type detection (hash/ip/domain/url/email/cve/filepath)
|-- proxy_manager.py <- Java proxy lifecycle (start / auto-stop on exit)
|-- cache.py <- File-based result cache (24 h TTL)
|-- rate_limiter.py <- Per-source sliding-window rate limiter (auto-scales with multi-key)
|-- archie.bat <- Windows launcher (run as: archie [flags])
|-- apis/
| |-- base.py <- Shared HTTP client (retry + backoff)
| |-- virustotal.py <- Hash / IP / Domain / URL
| |-- abuseipdb.py <- IP reputation + abuse reports
| |-- malwarebazaar.py <- Hash (malware database)
| |-- hybridanalysis.py <- Hash (sandbox verdict + threat score)
| |-- otx.py <- Hash / IP / Domain / URL (threat pulses)
| |-- greynoise.py <- IP (internet scanner classification)
| |-- urlscan.py <- Domain / URL (live browser scan)
| |-- phishtank.py <- URL (verified phishing database)
| |-- ipinfo.py <- IP geolocation
| |-- crtsh.py <- Domain cert transparency / subdomain recon
| `-- nvd.py <- CVE CVSS score + description
|-- output/
| |-- renderer.py <- Rich TUI (tables, verdict box, ASCII banners)
| `-- logs/
| |-- json/ <- Run logs + JSON exports
| `-- csv/ <- CSV exports
|-- tests/
| `-- sample_iocs.txt
|-- .env.example <- Template -- copy to .env and fill in your keys
|-- requirements.txt
`-- CHANGELOG.md
```
## 运行日志
日志记录是可选的 —— 除非您请求,否则不会写入任何内容。
| 模式 | 标志 | 保存内容 |
|---|---|---|
| 原始转储 | `--log-raw` / `-lr` | IOC、类型、判定、解析字段 + 每个来源的完整原始 API 响应 |
| 摘要 | `--log-summary` / `-ls` | IOC、类型、判定、解析字段(原始响应已剥离) |
| 默认(静默) | (无) | 自动保存摘要日志 |
| 默认(详细) | (无) | 不写入任何内容 |
日志保存至 `output/logs/json/run_.json`。
日志结构示例(摘要模式):
```
{
"run_at": "2026-03-27T14:00:00",
"log_mode": "summary",
"iocs": [
{
"value": "45.33.32.156",
"type": "ipv4",
"verdict": "malicious",
"sources": [
{ "source": "VirusTotal", "verdict": "malicious", "data": { "detections": "14/94" }, "error": null }
]
}
],
"summary": { "malicious": 1 }
}
```
## API 密钥设置
```
copy .env.example .env
```
打开 `.env` 并填写您希望激活的来源的密钥。
该工具可以在零密钥的情况下工作 —— 缺失的来源显示 `~ NO KEY` 并被干净地跳过。
### 多密钥轮换
每个来源都支持来自 N 个不同账户的 N 个密钥。将编号密钥添加到 `.env`:
```
VT_API_KEY=
VT_API_KEY_2=
VT_API_KEY_3=
```
该工具在任何 429 响应时自动轮换到下一个密钥。速率限制器会自动按比例调整每分钟的预算(2 个密钥 = 2 倍,3 个密钥 = 3 倍)。无需其他配置,编号必须是连续的(无间隔)。
*ArCHie Analyzer -- 由 Akshar 用 ❤️ 制作*
标签:AbuseIPDB, AES-256, API集成, Ask搜索, CLI, ETW劫持, IOC分析, IP信誉, Java代理, JSON导出, JS文件枚举, Object Callbacks, Python, Sigma 规则, URL检测, VAPT, VirusTotal, WiFi技术, 可观测性, 哈希查询, 域名分析, 多源聚合, 威胁情报, 安全运营, 并发查询, 开发者工具, 扫描框架, 批量分析, 无后门, 日志记录, 本地隧道, 漏洞评估, 线程池, 结果缓存, 网络绕过, 网络钓鱼, 自动判定, 逆向工具