`

[译]5步分析pdf文件

 
阅读更多
原文:http://countuponsecurity.com/2014/09/22/malicious-documents-pdf-analysis-in-5-steps/
大多数企业网络边界都被保护。然而恶意pdf文件或MS office 软件可以成功通过防火墙,IPS,Anti-spam,杀毒软件以及其它保护措施。当到达受害邮箱后,通过使用社会工程技巧诱惑用户点击/打开文档。例如,如果用户打开一个恶意pdf文件,当Adobe处理一个精心制作的文件时它通常会执行含有漏洞的Javascript代码。它会破坏堆/栈内存导致它执行一个从网络下载的恶意程序。根据Didier Stevens的描述(http://blog.didierstevens.com/),在一些场合下,可以不用点击文件,只需下载文件就可以利用漏洞执行恶意程序。
整体来看,PDF有header,body,reference table以及trailer组成。其中最重要的是body,body可能含有各种content type object,所以漏洞研究者对于parser十分感兴趣。语言丰富复杂的意思是同样的信息可以使用很多种方法编码以及模糊处理。例如object中可以有存储任意类型,任意大小的流。这些流被压缩,PDF标准支持多种算法包括ASCIIHexDecode,ASCI85Decode,ASCI85Decode,FlateDecode, RunLengthDecode, CCITTFaxDecode, DCTCDecode,它们被称为filter。PDF文件可以支持多媒体内容以及通过Flash object支持Javascript和ActionScript。使用JavaScript是一个很流行的攻击向量,因为可以使用不同的技术把它藏到流中,从而很难被发现。当PDF文件含JavaScript代码时,恶意代码通过触发一个漏洞然后执行shellcode。所有这些特点和能力都将成为攻击目标。

本文通过REMnux来分析步骤:
1. 找到提取JavaScript
2. 去模糊JavaScript
3. 提取shellcode
4. 创建一个可执行的shellcode
5. 分析shellcode,确定功能

使用REMnux小抄:http://zeltser.com/reverse-malware/analyzing-malicious-document-files.pdf
1. 找到提取JavaScript
一种方法是使用Didier Stevens的工具集(http://blog.didierstevens.com/programs/pdf-tools/)分析内容寻找可以代码。其中的一个工具是pdfid,可以显示一些pdf中可以被漏洞利用的关键字。通过工具集找到6个object和两个stream。没有JavaScript,但是有/AcroForm以及/XFA。这意味着pdf中的XFA可能包含恶意内容。

然后深入调查,使用pdf-parser.py来显示6个object是的内容。输出为了方便起见被简化了。但是object2使用了/XFA,它引用了Object 1,并且包含了一个压缩的stream,非常可疑。

通过–filter选项,pdf-parser.py允许我们显示一个object的内容,以及传递stream到一个支持的filter(FlateDecode, ASCIIHexDecode, ASCII85Decode, LZWDecode and RunLengthDecode)。–raw使输出更易读。查看这个文件的内容,我们可以获得解压的stream。然后调查这个文件可以发现一些原PDF文件中没有的JavaScript代码。如果这个文件被受害者打开,那么/XFA将会执行恶意代码。

另一种快速查找pdf是否含有恶意代码以及其他恶意元素的方法是使用peepdf.py,peepdf可以用来分析pdf文件,显示objects/streams,编码/解码streams,修改它们,获得不同版本,显示修改元数据,执行JavaScript代码以及shellcode。当使用最新版本的工具运行pdf文件,可以显示pdf的文件结构,它的内容,甚至检查它触发的是哪个漏洞(如果有签名)。


2. 去模糊JavaScript
JavaScript代码可能被模糊了多次。本例中object.raw在<script xxxx contentType=”application/x-javascript”> 和一个 base64格式的<image> 标签间包含4个JavaScript元素。这些JavaScript需要提取,放到一个文件中。使用js-didier.pl 来分析代码。它本质上上是一个可以从命令行运行的没有插件的JavaScript解释器。

3. 提取shellcode
eval.005.log包含去模糊的JavaScript代码,它里面包含两个Unicode编码的变量。通过他们隐藏/模糊shellcode。通常JavaScript代码编码如下:

这些Unicode编码的字符串需要解码为二进制文件。需要使用Remnux中一个叫做unicode2hex-escaped的脚步来实现转换。

4. 创建一个可执行的shellcode
使用shellcode2exe.py来把shellcode转换成Windows可执行的二进制文件

5. 分析shellcode,确定功能
加载调试器,分析二进制文件


  • 大小: 61.2 KB
  • 大小: 174.3 KB
  • 大小: 123.1 KB
  • 大小: 139.1 KB
  • 大小: 222.7 KB
  • 大小: 172.2 KB
  • 大小: 345.4 KB
  • 大小: 56.4 KB
  • 大小: 59.2 KB
分享到:
评论

相关推荐

    数学分析原理第1卷第9版 [T.M.菲赫金哥尔茨著;吴亲仁,陆秀丽,丁寿田译] 2013年版.rar

    读者可以通过这个PDF文件学习到数学分析的基本概念、定理和证明方法,为后续的高级数学课程打下坚实的基础。 总的来说,《数学分析原理》第1卷第9版是一本不可或缺的数学学习资料,无论是对于初学者还是对数学有...

    带目录 实用多元分析 陆璇 译

    文件中【部分内容】并未提供任何实质性的信息,而仅包含重复的、与PDF创建和OCR扫描相关的文字,这些内容与多元统计或多元分析的具体知识点无关。 不过,根据标题和描述,我们可以合理推测《实用多元分析》这本书很...

    ELF文件格式分析.pdf-cdeKey_T6AII5KBAOOQAHXK5YFNNSEQU36YU76U.pdf

    本文 是作者在探索系统软件构件的复用技术的过程中生成的技术笔记,重点分析了 UNIX 类操作系统... 本文首先介绍 ELF 文件格式规范,然后结合一个简单的 C 语言程序,分析编 译、链接后生成的可重定位、可执行格式实例

    GNU Make 使用手册(中译版).pdf

    5. 使用变量:在Makefile文件中使用变量可以简化和优化构建过程。手册介绍了变量引用基础、变量的高级引用技术,以及如何设置变量和为变量值追加文本。override指令、定义多行变量、环境变量、特定目标变量的值和...

    算法设计与分析基础(Anany Levitin著,潘彦译)第三版课后答案

    压缩包内的文件名为“solu1.pdf”至“solu12.pdf”,很可能是按照章节顺序排列的课后习题解答。每一份PDF可能包含了某个或某几个章节的习题解析,覆盖了书中讲解的各种算法及其应用场景。通过这些解答,学习者可以...

    英语翻译技巧英译汉步骤.pdf

    在探讨英译汉的翻译技巧时,我们应当了解的是,英汉两种语言在句式结构、表达习惯以及文化背景等方面存在差异,因此翻译不仅涉及文字的转换,更需要对源语言中的含义进行准确的把握和恰当的表述。 首先,英译汉的...

    PSpiceUsersGuide手册(译).pdf

    在第一章“你需要知道的事情”中,详细讲述了PSpice A/D的主要用途,包括电路文件、激励编辑器、模型编辑器的使用,以及模拟过程中需要的各种文件类型,如网表文件、电路文件、模型库、激励文件和配置文件等。...

    新世纪研究生公共英语答案汉译英参考.pdf

    【新世纪研究生公共英语答案汉译英参考.pdf】这个文件是一个针对研究生英语学习的参考资料,包含多个单元的内容,涉及英语翻译练习,尤其是汉语到英语的翻译。这些练习旨在帮助学生提高在学术环境中运用英语的能力,...

    国防白皮书中本源概念的英译研究.pdf

    研究者通过分析大量的实例,结合翻译理论,为军事领域的本源概念英译及语言安全研究提供了宝贵的参考。这些参考不仅有助于改善翻译质量,也能够提升我国的国际形象。 关键词中的“国防白皮书”指中国发布的有关国防...

    the little scheme (示例代码,windows运行环境, pdf文件 和 [The Seasoned Schemer pdf])

    5. **示例代码(demo.rkt)**:这个文件可能包含了《The Little Schemer》或《The Seasoned Schemer》中的某个习题的解决方案,或者是作者为了演示Scheme编程而编写的示例。通过运行和分析这些代码,读者可以更好地...

    凸优化_Boyd_王书宁译.pdf

    该书首先介绍了凸分析的基础知识,包括凸集、凸函数的定义、性质及其相互关系。读者将了解到如何判断一个函数是否为凸函数,以及如何利用这些性质来简化优化问题。接着,书中详细讨论了线性规划、二次规划以及更广泛...

    Power Designer教程完整版pdf

    3. 部分术语参考了飞思科技产品研发中心监制电子工业出版社的《PowerDesigner 数据库系统分析设计与 应用》。 4. 暂时没有包含OOM,XML,BPM,ILM 等模型内容,我将会在后期陆续更新。 版本说明:我使用的是...

    顺应论视角下跨境电商产品标题英译策略研究.pdf

    根据给定文件信息,我们可以从中提取以下知识点: 1. 研究背景与意义: 当前中国跨境电商市场正在迅猛发展,跨境出口占外贸出口比重持续上升。然而,对于跨境电商而言,产品标题的翻译质量是影响其在平台上搜索排名...

    GNU+Make+使用手册(中译版).pdf

    #### 5. 在规则中使用命令 - **命令回显**:解释了如何显示命令而不执行它们。 - **执行命令**:介绍了make如何执行shell命令,并处理命令执行时可能出现的问题。 - **并行执行**:探讨了如何利用多核处理器并行执行...

    算法设计与分析基础 第三版 课后答案 (Anany.Levitin 潘彦)

    《算法设计与分析基础》是计算机科学领域的一本经典教材,由Anany Levitin撰写,潘彦翻译的第三版提供了一套系统而深入的算法学习框架。这本书旨在帮助读者理解和掌握设计高效算法的方法,并能够对算法进行严谨的...

    ECMi报告2023年H1(英译中).pdf

    ECMi报告的数据基于官方交易文档,如招股说明书、准入文件、通知、账户和RIS通知,并且所有数据均可通过ECMi的数据库进行即时验证。这确保了报告的准确性和可靠性。 **结论** ECMi报告2023年H1为读者提供了深入的...

    中国重要时政术语英译报告2019精品报告2020.pdf

    很抱歉,由于提供的文件信息中【部分内容】的链接指向同一重复的网址,并没有提供可读取或理解的内容。...如果您能提供实际的文本内容,我将能进行详细的知识点分析和阐述。请更新您的请求,附上可以阅读的文件内容。

Global site tag (gtag.js) - Google Analytics