ercihan/CVE-2026-34621_PDF_SAMPLE
GitHub: ercihan/CVE-2026-34621_PDF_SAMPLE
一份针对嵌入分阶段 JavaScript 的恶意 PDF 样本进行多阶段攻击链逆向与防御性文档化的技术分析。
Stars: 1 | Forks: 0
# 多阶段 Adobe Acrobat PDF JavaScript 样本的技术分析
## 概述
本仓库发布了一份以代码为中心的逆向工程分析报告,内容涉及一个嵌入了分阶段 Adobe Acrobat JavaScript 的恶意 PDF 样本。
所分析的样本使用一个隐藏表单字段作为初始加载器,通过 Acrobat 流解码重建第二阶段 JavaScript 代码,进行环境三分类和针对 Acrobat 特有接口的滥用,建立基于网络的后台 staging 机制,最终解密、解压并执行延迟加载的第三阶段载荷。
本仓库的目标是防御性分析与文档记录。重点在于可观测行为、恢复出的代码结构以及攻击链的重建。
## 关键发现
- PDF 包含一个存储在隐藏表单字段(`Btn1`)中的嵌入式 **Stage-1 启动器**。
- 恢复的 **Stage-2 JavaScript** 会禁用可选内容组(OCG),以减少视觉指示器。
- 样本构建了针对 Acrobat API(如 `app.beginPriv()` 和 `app.endPriv()`)的特权执行包装器。
- 它执行 **目标三分类**,包括:
- `viewerVersion`
- `viewerType`
- `platform`
- 基于文件系统的操作系统推断
- PE 头解析以检测 x64 Reader
- 它设置了面向利用的原语,包括精心构造的 getter 以及 Acrobat 原生接口,例如 `ANShareFile(...)` 和 `ANFancyAlertImpl(...)`。
- 它构建了富含遥测信息的 **信标 URL**,用于指向一个硬编码的远程端点,并使用 **RSS JavaScript 馈送** 作为 staging 流程的一部分。
- 最终可见的加载路径明确如下:
- 对 `bird1` 进行十六进制解码
- 使用 AES-CTR 解密
- 使用 DEFLATE 解压
- 存储为 `global.final_js`
- 通过延迟的 `eval(...)` 执行
## 攻击链总结
1. PDF JavaScript 读取隐藏字段 `Btn1`
2. Stage-1 解码并调度 Stage-2
3. Stage-2 初始化混淆逻辑并隐藏 OCG 图层
4. 指纹化目标环境
5. 尝试使用 Acrobat 原生面向利用的设置
6. 准备遥测与 staging 通道
7. 脚本轮询运行时填充的有效载荷材料
8. 加密内容在内存中解密并解压
9. 通过 `setTimeOut` 执行第三阶段 JavaScript 载荷
## 本样本的重要性
该样本具有重要意义,因为它并非一个仅包含嵌入脚本片段的静态 PDF。它的行为像一个结构化的多阶段加载器,能够:
* 识别目标环境
* 滥用 Acrobat 特有特权功能
* 准备后续载荷投递
* 完全在内存中重建后续代码
这种组合使其既适用于 PDF 恶意软件分析,也适用于研究 Acrobat JavaScript 的信任机制与 staging 行为。
## 分析与文档
完整分析与文档可参考 [此处](adobe_0day_analysis_malware_sample.pdf)。
标签:0day分析, Adobe Acrobat JavaScript, AES-CTR解密, APT攻击链, beacon通信, DEFLATE解压, eval执行, PDF恶意软件, RSS订阅, 云资产清单, 代码分析, 凭证管理, 多阶段载荷, 威胁情报, 开发者工具, 数据可视化, 流解码, 特权API滥用, 环境指纹, 目标定位, 逆向工程, 隐藏表单域