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技术, 可观测性, 哈希查询, 域名分析, 多源聚合, 威胁情报, 安全运营, 并发查询, 开发者工具, 扫描框架, 批量分析, 无后门, 日志记录, 本地隧道, 漏洞评估, 线程池, 结果缓存, 网络绕过, 网络钓鱼, 自动判定, 逆向工具