shawal-shamraiz/ArzensIntern_SHAWAL_Threat_Intelligence_Tool

GitHub: shawal-shamraiz/ArzensIntern_SHAWAL_Threat_Intelligence_Tool

一个初级 Python 威胁情报查询工具,通过调用多个主流情报 API 对 IP、域名和文件哈希等指标进行批量检查并输出综合判定结论。

Stars: 0 | Forks: 0

# THE ARZENS 威胁情报增强器 一个初级 Python 工具,用于通过威胁情报 API(VirusTotal 和 AbuseIPDB,并可选支持 AlienVault OTX)检查 IP 地址、域名、文件哈希和 URL,并输出易于阅读的判定结果。 专为 THE ARZENS 实习计划的作业 4(初级方向)而开发。 ## 项目结构 ``` threat_intel_tool.py - main script config.yaml - API keys and settings (edit this before running) sample_indicators.txt - example list of indicators to test with sample_output.json - example JSON output sample_output.csv - example CSV output sample_report.txt - example text report README.md - this file ``` 当你运行该工具时,它还会创建: - `cache.json` - 存储过往结果,避免重复检查同一个指标 - 你选择的输出文件(JSON、CSV 和文本报告) ## 1. 安装 你需要 Python 3.8 或更高版本。 克隆或下载本项目,然后安装所需的库: ``` pip install requests pyyaml colorama ``` `argparse`、`json` 和 `csv` 是 Python 的内置库,因此你无需单独安装它们。 ## 2. 必需的库 | 库 | 用途 | |------------|-------------------------------------------| | requests | 向 API 发起 HTTP 调用 | | pyyaml | 读取 config.yaml 文件 | | colorama | 为控制台输出着色(红/黄/绿) | | argparse | 读取命令行参数(内置) | | json | 读取/写入 JSON 文件(内置) | | csv | 写入 CSV 文件(内置) | ## 3. 获取 API 密钥 你需要至少获取这三个密钥中的两个,该工具才能发挥作用。 **VirusTotal** 1. 访问 https://www.virustotal.com/gui/join-us 2. 创建一个免费账户。 3. 点击你的个人资料图标,然后点击 "API Key" 查找你的密钥。 4. 免费层级限制:每天 500 次请求,每分钟 4 次请求。 **AbuseIPDB** 1. 访问 https://www.abuseipdb.com/register 2. 创建一个免费账户。 3. 进入账户页面,然后点击 "API" 标签页查找你的密钥。 4. 免费层级限制:每天 1,000 次检查。 **AlienVault OTX**(在此工具中为可选) 1. 访问 https://otx.alienvault.com 2. 创建一个免费账户。 3. 点击你的个人资料,然后点击 "API Integration" 查找你的密钥。 获取密钥后,打开 `config.yaml` 并将它们粘贴进去: ``` api_keys: virustotal: "PASTE_YOUR_KEY_HERE" abuseipdb: "PASTE_YOUR_KEY_HERE" otx: "PASTE_YOUR_KEY_HERE" ``` **切勿将你的 API 密钥硬编码在 threat_intel_tool.py 中。** 始终使用 config.yaml,并且切勿将带有真实密钥的 config.yaml 上传到 GitHub。如果你计划将此项目公开,请将其添加到 `.gitignore` 文件中。 ## 4. 示例命令 检查单个 IP 地址: ``` python threat_intel_tool.py --ip 185.220.101.42 ``` 检查域名: ``` python threat_intel_tool.py --domain example.com ``` 检查文件哈希: ``` python threat_intel_tool.py --hash 44d88612fea8a8f36de82e1278abb02f ``` 同时检查多种类型的指标: ``` python threat_intel_tool.py --ip 8.8.8.8 --domain example.com ``` 从文件中检查整个指标列表: ``` python threat_intel_tool.py --input-file sample_indicators.txt ``` 逐个输入指标: ``` python threat_intel_tool.py --interactive ``` 为你的输出文件选择一个自定义名称: ``` python threat_intel_tool.py --ip 8.8.8.8 --output my_results ``` 这会创建 `my_results.json`、`my_results.csv` 和 `my_results_report.txt`。 ## 5. 工具工作原理(简述) 1. 从 `config.yaml` 读取你的 API 密钥和设置。 2. 从命令行、文件或交互式输入中收集指标。 3. 检查每个指标的格式(例如,它看起来真的像一个 IP 吗?)。 4. 首先检查本地缓存,确保同一个指标不会被查找两次。 5. 调用 VirusTotal 和/或 AbuseIPDB(如果启用,则调用 OTX),在调用之间等待几秒钟,以遵守 API 速率限制。 6. 如果请求失败,它会进行最多 3 次带指数退避的重试(分别等待 2 秒、4 秒和 8 秒)。 7. 将结果合并为一个总体判定结论:CLEAN(干净)、SUSPICIOUS(可疑)或 MALICIOUS(恶意)。 8. 在控制台打印彩色报告,并保存 JSON、CSV 和文本报告文件。 ## 6. 注意事项 - AbuseIPDB 仅支持 IP 地址,因此对于域名、哈希和 URL 会自动跳过。 - 该工具尚不支持在 VirusTotal/OTX 上进行 URL 查找(这需要使用文件/URL 提交 endpoint,这是后续添加的一个好方向)。 - config.yaml 中的 `use_otx` 设置默认关闭。当你拥有 OTX 密钥后,将其更改为 `true`。
标签:API集成, Python, 可观测性, 威胁情报, 开发者工具, 无后门, 聊天机器人, 逆向工具