mmessiassts/threat-hunting-tool
GitHub: mmessiassts/threat-hunting-tool
一款轻量级 Python 威胁狩猎工具,自动从 Apache/SSH 日志中提取入侵指标并与公开威胁情报源关联,帮助 SOC 分析师快速识别已知恶意活动。
Stars: 0 | Forks: 0
# Threat Hunter
一个轻量级的 Python 工具,用于从
Apache/SSH 日志中提取入侵指标 (IOC),并将它们与无需 API key 的公共
威胁情报源进行关联 —— 通过严重性评分标记已知的恶意 IP、域名和文件
哈希。
## 开发背景
在日志审查期间,手动将可疑 IP 与威胁情报源进行交叉引用
既缓慢又容易出错。此工具自动执行了该初步筛查
步骤:解析 → 提取 → 关联 → 报告,以便 SOC 分析师能够立即
查看日志中的哪些活动与已知的恶意基础设施相关联。
## 功能
- 解析 Apache combined 日志格式和 SSH 认证日志(`Failed password`、
`Invalid user`、`Accepted password/publickey` 事件)
- 通过 regex 提取 IP、域名和文件哈希 (MD5/SHA1/SHA256)
- 与公共威胁情报源进行交叉引用:
- [Feodo Tracker](https://feodotracker.abuse.ch/) (C2 IP)
- [Blocklist.de](https://www.blocklist.de/) (暴力破解 / 滥用源)
- [URLhaus](https://urlhaus.abuse.ch/) (恶意主机/域名)
- 无需 API key 或账号 —— 所有源均为开放的纯文本列表
- 本地源缓存,用于离线/可重复分析
- 易读的终端报告 + 可选的 JSON 导出
- 基于命中源数量的严重性评分
## 使用说明
```
# 分析日志文件,下载最新的 threat intel feeds
python3 threat_hunter.py sample_logs/auth.log
# 仅使用本地 feed cache 进行分析(无网络调用)
python3 threat_hunter.py sample_logs/access.log --use-local-cache
# 将完整报告导出为 JSON
python3 threat_hunter.py sample_logs/auth.log --json-out report.json
```
## 输出示例
```
[HIGH] IP: 185.220.101.45
Linha 1 | Evento: Failed password
Feeds: feodotracker_c2, blocklist_de_all
Log: Jul 20 03:12:01 srv01 sshd[1022]: Failed password for root from 185.220.101.45 port 51422 ssh2
```
## 示例数据
`sample_logs/` 目录包含合成的 Apache 和 SSH 日志,而
`feed_cache/` 包含一个小型离线源示例,以便无需任何
网络访问即可立即运行和演示该工具。
## 环境要求
- Python 3.8+
- 无需第三方依赖(仅使用标准库)
## 路线图
- [ ] 为拥有免费 API key 的用户添加 VirusTotal / AbuseIPDB 支持
- [ ] 支持额外的日志格式(Nginx、Windows Event Log)
- [ ] 添加 `--watch` 模式以进行持续/实时的日志监控
## 关于
作为 SOC 分析师实操学习路线的一部分而构建,专注于蓝队
行动、威胁检测和实用的日志分析。
标签:IOC提取, IP 地址批量处理, Python, 威胁情报, 开发者工具, 无后门, 逆向工具