arpitgupta369/ioc-threat-hunter
GitHub: arpitgupta369/ioc-threat-hunter
基于 Python 标准库的离线 IOC 威胁狩猎工具,支持从多种格式 feeds 加载失陷指标并在日志数据集中进行降阶感知匹配与 MITRE ATT&CK 映射报告。
Stars: 0 | Forks: 0
# ioc-threat-hunter
**加载 IOC feeds,并在任何日志或数据集中进行追踪 —— 包含降级(defanged) indicators 和 MITRE ATT&CK 标签。**
## 为什么开发这个项目
威胁追踪是我在 MeitY Young
Scholar Traineeship 期间 **CERT-In** 工作的核心部分:提取 indicators of compromise(IPs、domains、file
hashes),并在 proxy、DNS、mail 和 endpoint telemetry 中进行扫描,以发现
攻击者已经在何处接触过该系统环境。Indicators 以 *defanged*(降级)形式(`hxxps://evil[.]com`, `45[.]155[.]205[.]233`)从 feeds
和报告中获取,因此
它们不会被意外点击。此工具将该追踪过程自动化:它接收
feeds,对 indicators 进行重新还原(refangs)并与数据集进行匹配,显示周围的
context,并将每个命中项映射到 MITRE ATT&CK 技术,以便将发现的结果直接整理进事件报告中。
## 功能特性
- **多格式 feeds** 从 `feeds/` 加载:IP blocklists 和 domain lists
(`.txt`) 以及 file-hash feeds (`.json`, md5/sha1/sha256)。
- **Defang-aware(感知降级)匹配** — 在比较之前对 `hxxp`/`hxxps`, `[.]`, `(.)`, `[dot]`,
`[at]`, `[:]`, `[/]` 进行 refang(还原)处理,并标记哪些命中项被 defanged。
- **Indicator 提取** 适用于 IPv4(octet-validated)、domains 和 md5/sha1/
sha256 hashes(采用最长 hash 优先原则以避免片段冲突)。
- 每个命中项周围的 **Context window**(可通过 `--context` 配置)。
- 来自小型内置 `mitre_map.json` 的 **MITRE ATT&CK 标记**(支持按 IOC 覆盖以及按类型设置默认值)。
- **文本或 JSON** 输出;可通过 `--demo` 完全离线运行。
## 技术栈
Python 3.9+(仅限标准库:`re`, `argparse`, `json`, `os`)。
## 安装说明
```
git clone https://github.com/arpitgupta369/ioc-threat-hunter.git
cd ioc-threat-hunter
# 无需第三方 dependencies
python threat_hunter.py --demo
```
## 用法
在内置的示例数据集中进行追踪:
```
python threat_hunter.py --demo
```
使用您自己的 feeds 目录在您自己的数据集中进行追踪:
```
python threat_hunter.py --input /path/to/proxy.log --feeds ./feeds --context 2
python threat_hunter.py --input events.csv --json
```
预期输出(节选):
```
Matches found : 10
ATT&CK techniques observed:
- T1110 - Brute Force (login attack source)
- T1566.002 - Phishing: Spearphishing Link
- T1204.002 - User Execution: Malicious File
[4] 45.155.205.233 (ip) [defanged in source]
Feed : ip_blocklist.txt
ATT&CK : T1110 - Brute Force (login attack source)
Hits : 1 (line(s): 6)
Context :
>> 2026-07-18T08:18:02 fw outbound 10.0.0.31:49312 -> 45[.]155[.]205[.]233:443 established
```
## 项目结构
```
ioc-threat-hunter/
├── threat_hunter.py # refang + extract + match + report
├── feeds/
│ ├── ip_blocklist.txt # malicious IPs
│ ├── malicious_domains.txt # malicious domains
│ ├── file_hashes.json # md5/sha1/sha256 feed
│ └── mitre_map.json # IOC -> ATT&CK technique mapping
├── samples/
│ └── proxy_and_mail.log # sample dataset with defanged IOCs
├── README.md
├── LICENSE
└── .gitignore
```
## 添加您自己的 IOCs
将更多 indicators 放入 `feeds/`:在 `.txt` 中每行放一个 IP/domain
(注释以 `#` 开头),或者扩展 `file_hashes.json`。通过编辑
`mitre_map.json` 添加 ATT&CK context(针对特定 IOC 的 `overrides`,针对类别的 `default_by_type`)。
## 免责声明
本项目仅供**教育、防御和授权目的使用**。仅将其用于您拥有或明确获得授权可进行追踪的系统中的数据。
内置的 feeds 是虚构的/测试值(包括无害的 EICAR 测试
签名),不得将其视为实时的威胁情报来源。
由 **Arpit Gupta** 构建 — [LinkedIn](https://linkedin.com/in/arpit-gupta-060b302a7/) · [GitHub](https://github.com/arpitgupta369)
标签:IP 地址批量处理, PB级数据处理, Python, 威胁情报, 安全运维, 开发者工具, 攻防检测, 无后门, 网络信息收集