harshhhhh10/PDF-Malware-Analysis
GitHub: harshhhhh10/PDF-Malware-Analysis
一个基于Python内置库的PDF恶意软件静态分析工具,通过关键词检测、漏洞模式匹配和IOC提取为可疑PDF文件自动生成风险评分与分析报告。
Stars: 0 | Forks: 0
# PDF 恶意软件分析工具包
一个基于 Python 的静态分析工具,用于检测 PDF 文件内的恶意指标。
作为网络安全实习项目的一部分而开发。
## 此工具的功能
PDF 文件是用于传递恶意软件的最常见格式之一。
攻击者会在其中隐藏 JavaScript、漏洞利用代码和网络钓鱼链接。
此工具包可分析 PDF 文件并告知您:
- 其中包含哪些可疑关键词
- 是否包含 JavaScript(在普通 PDF 中很少见)
- 是否存在任何已知的漏洞利用特征
- 可能作为 C2 服务器的 URL 或 IP 地址
- 是否使用了任何混淆技术
- 最终的风险评分和风险等级
## 功能特性
### v3(最终版)- 最新版本
- **包含所有 v2 的功能,此外还有:**
- 元数据提取(作者、创建日期、生成者)
- 可疑关键词检测(`/JavaScript`、`/OpenAction`、`/EmbeddedFile` 等)
- 已知漏洞利用模式匹配(基于 CVE)
- URL 和 IP 地址提取(IOC)
- JavaScript 块提取和预览
- 混淆检测(eval、unescape、base64、hex 编码)
- **加密检测** - 检测 /Encrypt、RC4、AES 加密
- **压缩对象检测** - 查找 FlateDecode、ASCIIHexDecode 等
- **流解压** - 解压隐藏在流中的内容
- **嵌入文件提取** - 查找 PDF 中的嵌入文件
- **图像对象检测** - 统计图像对象的数量
- **链式过滤器检测** - 检测多层编码
- **VirusTotal 集成** - 提供直接的 VT 查询链接
- 自动风险评分(低 / 中 / 高 / 严重)
- 自动生成分析报告(`.txt` 和 `.pdf`)
### v2(旧版)
- 元数据提取
- 可疑关键词检测
- 漏洞利用模式匹配
- URL/IP 提取
- JavaScript 检测
- 混淆检测
- 风险评分
- 文本报告生成
## 工具与技术
- **编程语言:** Python 3
- **库:** os、re、sys、hashlib、datetime(均为内置,无需安装)
- **平台:** 适用于 Kali Linux、Ubuntu、Windows
- **分析类型:** 静态分析(不执行文件)
## 如何运行
### 步骤 1:克隆仓库
```
git clone https://github.com/yourusername/pdf-malware-analyzer.git
cd pdf-malware-analyzer
```
### 步骤 2:创建测试样本 PDF
```
python3 create_sample_pdf.py
```
### 步骤 3:运行分析器(v3 - 推荐)
```
python3 pdf_analyzer_v3.py sample_malicious.pdf
```
### 步骤 3b:运行 v2(旧版)
```
python3 pdf_analyzer_v2.py sample_malicious.pdf
```
### 步骤 4:查看报告
`.txt` 报告将自动保存在同一文件夹中。
## 示例输出
```
============================================================
PDF MALWARE ANALYSIS TOOLKIT
============================================================
[*] Loading file: sample_malicious.pdf
[+] File loaded. Size: 1594 bytes
[+] MD5: 7843e311116a40ee1d40471c93e34d35
[*] Scanning for suspicious keywords...
[!] Found: /JavaScript (appears 1 time(s))
[!] Found: /OpenAction (appears 1 time(s))
[!] Found: eval( (appears 1 time(s))
[*] Scanning for known exploit patterns...
[!!!] EXPLOIT PATTERN DETECTED: Collab.collectEmailInfo
[!!!] EXPLOIT PATTERN DETECTED: util.printf
[*] Extracting URLs...
[!] URL Found: http://malicious-site.xyz/payload/invoice.exe
[!] URL Found: http://192.168.1.105/malware.bin
RISK SCORE: 134 | RISK LEVEL: CRITICAL
============================================================
```
## 项目结构
```
pdf-malware-analyzer/
│
├── pdf_analyzer.py # Main analysis toolkit
├── create_sample_pdf.py # Creates a test PDF for demo
├── requirements.txt # Dependencies info
├── sample_malicious.pdf # Sample test file (safe, no real malware)
├── README.md # This file
└── report/
└── sample_analysis_report.txt # Auto-generated after analysis
```
## 风险评分系统
| 分数 | 风险等级 | 含义 |
|-------|-----------|---------|
| 0 - 20 | 低 | 可能安全 |
| 21 - 50 | 中 | 存在部分可疑元素 |
| 51 - 80 | 高 | 发现多个危险信号 |
| 81+ | 严重 | 极有可能是恶意的 |
## 重要提示
## 学习成果
在构建此项目后,我学到了:
- PDF 文件结构内部是如何运作的
- 攻击者如何在文档中嵌入 JavaScript 和 payload
- 如何从文件中提取失陷指标(IOC)
- SOC 分析师如何处理文档恶意软件分析
- 如何编写结构化的恶意软件分析报告
## 作者
网络安全实习生
领域:网络安全
实习:Unified Mentor 项目
标签:CVE特征匹配, DAST, DNS 反向解析, Go语言工具, IOC提取, JavaScript检测, PDF恶意代码检测, Python, VirusTotal集成, 云安全监控, 元数据提取, 后端开发, 命令与控制(C2)提取, 威胁情报, 安全工具开发, 开发者工具, 恶意软件分析, 文件流解压缩, 无后门, 混淆技术识别, 网络信息收集, 网络安全, 网络安全实习项目, 网络安全审计, 网络安全项目, 自动化风险评分, 进程保护, 隐私保护, 静态分析