Yashas1604/pdf-malware-analysis-toolkit
GitHub: Yashas1604/pdf-malware-analysis-toolkit
一款基于Python的PDF恶意软件静态分析工具包,通过关键词检测、IOC提取和风险评分帮助安全人员快速甄别可疑PDF文档。
Stars: 0 | Forks: 0
# 🔍 PDF 恶意软件分析工具包




## 📌 项目概述
本工具包对 PDF 文件执行**静态分析**以检测恶意内容,
而无需执行该文件。它专为数字取证分析师和
网络安全专业人员设计,用于快速甄别可疑的 PDF 文档。
## 🎯 目标
- 检测 PDF 中可疑的 JavaScript、嵌入文件和漏洞利用触发器
- 提取攻击指标 (IOC) —— URL、IP、电子邮件
- 分配严重性评分:CLEAN / LOW / MEDIUM / HIGH / CRITICAL
- 自动生成结构化的恶意软件分析报告
## 🛠️ 工具与技术
| 工具 | 用途 |
|------|---------|
| Python 3.10+ | 核心编程语言 |
| PyMuPDF (fitz) | PDF 解析和元数据提取 |
| re (Regex) | IOC 模式匹配 |
| os / sys | 文件处理 |
## ⚙️ 工作流架构
```
START
↓
STEP 1 → Load PDF & Extract Metadata
↓
STEP 2 → Object Enumeration
↓
STEP 3 → Keyword-Based Detection (/JavaScript, /OpenAction, /EmbeddedFile...)
↓
STEP 4 → Deep Parsing (streams, encoded content)
↓
STEP 5 → IOC Extraction (URLs, IPs, Emails, Base64)
↓
STEP 6 → Risk Scoring Engine
↓
STEP 7 → Generate Final Report
↓
END
```
## 🚀 如何运行
### 1. 克隆仓库
```
git clone https://github.com/YOUR_USERNAME/pdf-malware-analysis-toolkit.git
cd pdf-malware-analysis-toolkit
```
### 2. 安装依赖
```
pip install pymupdf
```
### 3. 运行任意 PDF
```
python analyzer.py "yourfile.pdf"
```
### 4. 示例
```
python analyzer.py "HIGH_RISK_phishing.pdf"
```
## 📊 示例输出
```
============================================================
PDF MALWARE ANALYSIS TOOLKIT
Static Analysis | IOC Extraction | Risk Scoring
============================================================
File : HIGH_RISK_phishing.pdf
Time : 2025-05-15 10:30:00
[STEP 1] Load PDF File & Extract Metadata
----------------------------------------
Title : Urgent Notice
Author : Unknown
Pages : 1
File Size: 8.2 KB
[STEP 3] Keyword-Based Detection
----------------------------------------
[!] Suspicious keywords found (7):
-> /JavaScript
-> /OpenAction
-> /EmbeddedFile
-> /Launch
-> /RichMedia
[STEP 5] IOC Extraction
----------------------------------------
URLs found : 3
-> http://malicious-login.xyz/bank/verify?token=abc123
-> http://198.51.100.23/payload/drop.exe
IPs found : 2
-> 198.51.100.23
-> 203.0.113.45
[STEP 6] Risk Analysis
----------------------------------------
Risk Score : 95
Severity : CRITICAL
[##################################################]
```
## 📁 项目结构
```
pdf-malware-analysis-toolkit/
│
├── analyzer.py ← Main analysis script
├── README.md ← Project documentation
├── requirements.txt ← Python dependencies
├── sample_pdfs/
│ ├── CLEAN_sample.pdf ← Test PDF (safe)
│ ├── MEDIUM_RISK_invoice.pdf ← Test PDF (medium risk)
│ └── HIGH_RISK_phishing.pdf ← Test PDF (high risk)
└── screenshots/
├── clean_result.png
├── medium_result.png
└── high_result.png
```
## 🧪 包含的测试 PDF
| 文件 | 模拟内容 | 预期结果 |
|------|-----------|----------------|
| CLEAN_sample.pdf | 正常文档 | CLEAN |
| MEDIUM_RISK_invoice.pdf | 带有可疑链接的假发票 | MEDIUM |
| HIGH_RISK_phishing.pdf | 钓鱼攻击文档 | HIGH / CRITICAL |
## 📋 预期的工具包输出包括
- ✅ 可疑 JavaScript 检测
- ✅ 提取的 URL 和 IP 地址
- ✅ 嵌入文件列表
- ✅ 检测到的漏洞利用企图
- ✅ 严重性评分 (CLEAN → CRITICAL)
- ✅ 自动生成的文本报告
## 🔐 缓解建议
1. 不要在生产机器上打开可疑的 PDF 文件
2. 在防火墙处阻止所有提取出的 URL/IP
3. 在共享之前使用杀毒软件进行扫描
4. 在您的 PDF 阅读器设置中禁用 JavaScript
5. 如果严重性为 HIGH/CRITICAL,请向您的安全团队报告
## 📄 许可证
本项目基于 MIT 许可证授权。
标签:DAST, Exploit触发检测, Go语言工具, IOC提取, JavaScript检测, PDF恶意文件检测, PyMuPDF, Python, 云安全监控, 威胁情报, 安全分析脚本, 安全报告生成, 库, 应急响应, 开发者工具, 恶意软件分析, 搜索语句(dork), 数字取证, 无后门, 网络安全, 网络钓鱼分析, 自动化脚本, 逆向工具, 隐私保护, 静态分析, 风险评分