惡意PDF文檔分析記錄


0x1 PDF是什么

PDF(便攜式文件格式,Portable Document Format)是由Adobe Systems在1993年用於文件交換所發展出的文件格式。
因為PDF的文件格式性質廣泛用於商業辦公,引起眾多攻擊者對其開展技術研究,在一些APT(Advanced Persistent Threat)攻擊中。針對特定目標投遞含有惡意代碼的PDF文檔,安全意識薄弱的用戶只要打開PDF文檔就會中招。

0x2 PDF解析工具

PdfStreamDumper : 這是一款可以對惡意的PDF文檔進行分析的免費工具

以下是利用漏洞【CVE-2010-0188】的惡意PDF文檔樣本,文檔中的Payload為異或加密。


圖1

pdfid.py : 這個工具不是PDF解析器,但是它會掃描一個文件來尋找特定的PDF關鍵字,讓我們識別包含JavaScript的PDF文件。

pdfid.py xxx.pdf


圖2

0x3 PDF格式解析

使用pdfid.py解析之后會列出PDF當前的格式字段。

C:\>python pdfid.py xx.pdf

PDFiD 0.2.1 93c803.pdf

 PDF Header: %PDF-1.7
 obj                   60
 endobj                60
 stream                30
 endstream             30
 xref                   1
 trailer                1
 startxref              1
 /Page                  3
 /Encrypt               0
 /ObjStm                0
 /JS                    0
 /JavaScript            0
 /AA                    0
 /OpenAction            0
 /AcroForm              0
 /JBIG2Decode           3
 /RichMedia             0
 /Launch                0
 /EmbeddedFile          0
 /XFA                   0
 /Colors > 2^24         0

每一個PDF文件都包含有前7個字段,也有可能不包含strea和endstream。據說有一些ODF文件沒有xref或則trailer,但是這種情況比較少見。如果一個PDF文件沒有xref或者trailer關鍵字段,那么可以確定它不是惡意的PDF文件。

/xref 交叉引用表,描述每個間接對象的編號、版本和絕對的文件位置。PDF文檔中的第一個索引必須從版本65535的0號對象開始,標識符/xref后面的第一個數字是第一個間接對象(即0號對象)的編號,第二個數字是/xref(交叉引用表)的大小。

/Page指明PDF文件的頁數,大多數惡意PDF文件僅僅只有一頁

/Encrypt指明PDF文件有數字水印或者是被加密過的。

/ObjStm是object streams的數量。object streams是一個可以包含其他Object對象的數據流對象。

/JS與/JavaScript指明PDF文件中含嵌有JavaScript代碼。通常惡意的PDF文件都嵌套有JavaScript代碼,這里一般都是利用JavaScript的解析漏洞或者使用JavaScript來實現堆噴射(heap spray),也有很多正常的PDF文件里會含有JavaScript代碼

/AA、/OpenAction和/AcroForm指明當查看PDF文件或者PDF的某頁時會有動作隨其執行,幾乎所有嵌有JavaScript代碼的惡意PDF文件都有自動執行JavaScript代碼的動作(action)。如果一個PDF文件包含有/AA或/OpenAction自動執行動作的關鍵字段,而且含有JavaScript代碼,那么這個PDF文件就極有可能是惡意的PDF文件

/URI 如果你要在PDF文件中執行打開網頁的動作就需要這個關鍵字段

/Filter 一般為FlateDecode則是使用了Zlib壓縮解壓縮算法。

/JBIG2Decode指明PDF文件使用了JBIG2壓縮。雖然JBIG2壓縮本身可能會有漏洞(CVE-2010-1297)。但/JBIG2Decode關鍵字段並不能說明PDF文件是否可疑

/RichMedia Flash文件

/Launch執行動作(action)數量

0x4 參考

PDF格式詳解
http://blog.csdn.net/bobob/article/details/751381
PDF Tools
https://blog.didierstevens.com/programs/pdf-tools/
惡意PDF文件解析思路
https://wenku.baidu.com/view/0c05dd996529647d27285224.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM