Ahmedf000/ThreatIntel

GitHub: Ahmedf000/ThreatIntel

一款集钓鱼邮件分析与Web服务器日志扫描于一体的命令行威胁情报工具,帮助安全人员快速评估邮件合法性、提取恶意JS指标并检测Web攻击模式。

Stars: 1 | Forks: 0

# ThreatIntel 一款用于分析钓鱼邮件和 Web 服务器日志的命令行威胁情报工具。它可以解析邮件头,提取 JavaScript 指标,扫描 Apache/Nginx 访问日志以查找攻击模式,并可选择查询 VirusTotal 获取信誉数据。 ![Alt Text](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/6a5a1e6431231202.png) ## 功能特性 - 具备 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服务器日志分析, 云安全架构, 命令注入检测, 失陷标示, 威胁情报, 安全运营, 开发者工具, 开源安全工具, 扫描框架, 无后门, 电子邮件安全, 网络安全, 逆向工程平台, 钓鱼邮件分析, 隐私保护