Ahmedf000/ThreatIntel
GitHub: Ahmedf000/ThreatIntel
一款集钓鱼邮件分析与Web服务器日志扫描于一体的命令行威胁情报工具,帮助安全人员快速评估邮件合法性、提取恶意JS指标并检测Web攻击模式。
Stars: 1 | Forks: 0
# ThreatIntel
一款用于分析钓鱼邮件和 Web 服务器日志的命令行威胁情报工具。它可以解析邮件头,提取 JavaScript 指标,扫描 Apache/Nginx 访问日志以查找攻击模式,并可选择查询 VirusTotal 获取信誉数据。

## 功能特性
- 具备 DKIM、SPF 和 DMARC 评分的邮件头分析
- 从邮件 HTML 负载中提取 JavaScript IOC(atob, setTimeout, meta-refresh)
- 扫描 Apache 和 Nginx 访问日志,检测 SQL 注入、命令注入和自动化工具指纹
- 对每一个检测到攻击的记录行进行 IP 归属分析
- 最活跃 IP 和最繁忙日期分析
- 查询 VirusTotal 获取域名和 IP 的信誉信息
## 系统要求
- Python 3.10+
- 一个 VirusTotal API 密钥(免费版即可)
- 可选:用于 URL 还原(unshortening)的 onesimpleapi token
安装依赖:
```
pip install requests python-dotenv beautifulsoup4
```
## 配置说明
在项目根目录创建一个 `.env` 文件:
```
VT_API=your_virustotal_api_key_here
TOKEN_EXPANDER=your_onesimpleapi_token_here
```
`.env` 文件已被 gitignore 忽略,永远不会被提交。
## 使用说明
在项目根目录运行:
```
python main.py [options]
```
### 选项
| 标志 | 长选项 | 描述 |
|------|-----------|-------------|
| `-e` | `--email` | 分析邮件头文件。传入不带 `.eml` 扩展名的文件名。该文件必须位于您的桌面上。 |
| `-j` | `--js_integration` | 从邮件 HTML 源文件中提取基于 JS 的 IOC。传入不带 `.eml` 扩展名的文件名。 |
| `-w` | `--webserver_logs` | 分析 Web 服务器访问日志。`access.log` 文件必须位于您的桌面上。 |
### 示例
分析邮件头:
```
python main.py -e "Suspicious GitHub Email"
```
从邮件中提取 JS IOC:
```
python main.py -j "Suspicious GitHub Email"
```
分析 Web 服务器日志:
```
python main.py -w access.log
```
## 文件要求
- 邮件文件必须具有 `.eml` 扩展名,并在运行前放置在桌面上。
- Web 服务器日志必须命名为 `access.log` 并放置在桌面上。
- Windows 和 Linux 路径会自动处理。
## 项目结构
```
ThreatIntel/
main.py Entry point and argument parser
.env API keys (not committed)
colors/
color.py ANSI terminal color helpers
phisher/
email_header_analyser.py Email header parsing and scoring
js_integration.py JavaScript IOC extractor
requestor_VT.py VirusTotal API wrapper
splunk_Integ.py Splunk integration (in progress)
server_logs/
entry_analyzer.py Log parsing, attack detection, IP analysis
SQL_injection_func.py SQLi pattern library and decoder
cmd_injection_func.py Command injection pattern library and decoder
login_enumerate/
enumerate_login.py Login enumeration (in progress)
Tests/
test.html Sample phishing email for testing
```
## 评分系统(邮件分析)
邮件头分析器会从 0 开始计算合法性得分。分数将根据以下内容进行加减:
| 检查项 | 通过 | 未通过 |
|-------|------|------|
| From 域名与 Reply-To 匹配 | +20 | 0 |
| DKIM 签名有效 | +20 | -20 |
| Return-Path 域名与 From 匹配 | +15 | -15 |
| DMARC 通过 | +10 | -10 |
| SPF 通过 | +15 | -10 |
| VirusTotal 显示安全 | +10 | -15 至 -50 |
得分解读:
| 分数 | 结论 |
|-------|---------|
| 90 及以上 | 具有强烈的合法性指标 |
| 50 至 89 | 基本合法 |
| 30 至 49 | 存在部分可疑指标 |
| 30 以下 | 极大可能为钓鱼邮件 |
## 攻击检测(日志分析)
日志分析器会扫描 `access.log` 的每一行,并根据以下模式库检查请求字段:
**SQL 注入 (SQL Injection):** 关键字注入、基于 UNION 的注入、基于时间的盲注、基于布尔值的盲注、基于错误的注入、身份验证绕过、WAF 绕过混淆、注释序列、数据库指纹识别、MSSQL/Oracle/PostgreSQL/MySQL 特定模式、OOB DNS 数据渗透、堆叠查询、十六进制编码关键字。
**命令注入:** 基础 shell 命令、多命令链接、curl/下载模式、原始十六进制编码、十六进制转义编码、单引号绕过、大括号展开绕过、DNS 数据渗透模式。
**自动化工具:** 检测来自 Nmap, Sqlmap, Nikto, Hydra, Nuclei, Masscan, Metasploit, Gobuster, Dirbuster, fuff, OWASP ZAP 的 User-Agent 字符串。
对于每次命中,都会打印出源 IP、响应码和响应大小。响应大小阈值说明:
- 0 字节且状态码为 200 OK:可能是盲注或错误
- 1 到 1199 字节且状态码为 200 OK:可能泄露了数据库错误信息
- 8000 字节以上且状态码为 200 OK:很可能发生了成功的数据渗透
## VirusTotal 说明
该工具将 URL 和 IP 提交到 VirusTotal 的 `/v1/messages` endpoint,并在返回结果前轮询直至完成。在免费 API 密钥下,每次查询可能需要 15 到 30 秒。用于 IP 提交的 `https://` 前缀是标准格式,并被 VT URL 扫描器所接受。
## 已知局限性
- 邮件文件必须位于桌面上。路径处理支持 Windows 和 Linux 自动识别,但不支持 macOS。
- 免费的 VirusTotal API 密钥有每分钟 4 次请求的速率限制。该工具不会在 top-5 列表中的 IP 之间自动进行节流。
- Splunk 集成和登录枚举模块尚未实现。
- 日志分析仅支持 Apache 和 Nginx 访问日志使用的组合日志格式。
## 许可证
仅供个人和教育用途。
标签:Apache, Ask搜索, CISA项目, DKIM, DMARC, DNS 反向解析, DOE合作, IOC提取, IP 地址批量处理, IP归属分析, Nginx, Python, SecOps, SPF, SQL注入检测, VirusTotal, Web服务器日志分析, 云安全架构, 命令注入检测, 失陷标示, 威胁情报, 安全运营, 开发者工具, 开源安全工具, 扫描框架, 无后门, 电子邮件安全, 网络安全, 逆向工程平台, 钓鱼邮件分析, 隐私保护