humerapatel/PDF-Malware-Analysis-Toolkit
GitHub: humerapatel/PDF-Malware-Analysis-Toolkit
一款基于 Python 的自动化 PDF 静态恶意软件分析工具包,通过结构扫描、IOC 提取和风险评分帮助安全团队快速研判可疑 PDF 文档的威胁等级。
Stars: 0 | Forks: 0
# 🛡️ 自动化 PDF 恶意软件分析工具包
一个自动化、基于 Python 的静态分析工具包,旨在检测 PDF 文档内的恶意工件、武器化流、混淆的 JavaScript 以及网络入侵指标 (IOC)。
专为 **Kali Linux** 上的安全运营中心 (SOC) 分析师、事件响应人员和威胁狩猎者开发。
## 📐 架构与工作流图表
```
+-------------------------------------------------------+
| START ANALYSIS |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| STEP 1: Load PDF File |
| - Validate %PDF Header & Parse Raw Bytes |
| - Extract Metadata (/Author, /Producer, /ModDate) |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| STEP 2: Structural Keyword Scanning |
| - Search for: /JavaScript, /JS, /OpenAction, /AA, |
| /Launch, /EmbeddedFile |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| STEP 3: Object Enumeration |
| - Enumerate object structures with pdf-parser |
| - Target suspicious objects (e.g., Object 3) |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| STEP 4: IOC & JS Payload Extraction |
| - Extract URLs & IP Addresses (Filter XML Schemas) |
| - Scan for Obfuscation (eval, unescape, base64) |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| STEP 5: Risk Scoring Engine |
| - Keyword presence: +10 to +30 pts |
| - Malicious IOC presence: +15 to +20 pts |
| - Map Score -> LOW / MEDIUM / HIGH / CRITICAL |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| STEP 6: Generate Structured Report |
| - Output summary report to reports/ directory |
| - Provide Blue Team mitigation recommendations |
+-------------------------------------------------------+
|
v
+-------------------------------------------------------+
| END PROCESS |
+-------------------------------------------------------+
```
```
## 📁 Repository 目录结构
PDF_Malware_Analysis_Project/
│
├── samples/ # PDF Test Artifacts
│ ├── clean_sample.pdf # Safe baseline document
│ └── suspicious_sample.pdf # Synthetic weaponized PDF sample
│
├── reports/ # Automated Security Reports
│ ├── Report_clean_sample.pdf.txt
│ └── Report_suspicious_sample.pdf.txt
│
├── screenshots/ # Analysis Verification Artifacts
│ ├── 01_environment_setup.png
│ ├── 02_pdfid_manual_scan.png
│ ├── 03_pdf_parser_object_extraction.png
│ └── 04_automated_toolkit_execution.png
│
├── tools/ # Static Analysis Frameworks
│ └── DidierStevensSuite/ # pdfid.py & pdf-parser.py
│
├── pdf_analyzer.py # Core Custom Automation Engine
└── README.md # Project Documentation & Guide
```
## ✨ 功能与特性
- **头部与元数据提取**:识别 `%PDF` 头部合规性、软件制作者、创建/修改日期,以及混淆/缺失的元数据异常。
- **结构性攻击向量检测**:扫描原始流对象以查找高风险 PDF 关键字:
- `/JavaScript` & `/JS`(嵌入式脚本引擎)
- `/OpenAction` & `/AA`(打开时自动触发执行)
- `/Launch` & `/EmbeddedFile`(Payload 投递/执行机制)
- **网络 IOC 提取引擎**:提取原始 URL 和 IP 地址,同时过滤无害的标准 XML schema 命名空间(`adobe.com`、`w3.org`)。
- **动态威胁评分矩阵**:
- `0 - 14`:**低** 危险等级(良性 / 标准 PDF)
- `15 - 29`:**中** 危险等级(包含外部链接或嵌入式结构标签)
- `30 - 49`:**高** 危险等级(包含自动触发器或嵌入式代码)
- `50+`:**严重** 危险等级(结合了自动触发器、JS Payload 和网络 IOC)
- **自动化 SOC 事件报告输出**:输出结构化的 `.txt` 威胁情报报告,并为 SOC 团队提供建议。
## 🛠️ 使用的工具与技术
- **操作系统**:Kali Linux
- **编程语言**:Python 3
- **解析实用工具**:
- `pdfid`(关键字异常检测)
- `pdf-parser`(深度对象流解析)
- `qpdf`(内容解压缩)
标签:DAST, DNS 反向解析, Go语言工具, PDF分析, Python, 云安全监控, 威胁情报, 开发者工具, 恶意软件分析, 无后门, 网络信息收集, 网络调试, 自动化, 静态分析