計算機內存取證技術(shù)
原文作者:徐志強?? 日期:2018年6月10日
?一、?計算機物理內存簡(jiǎn)介
計算機的物理內存一般我們指的就是隨機存取存儲器(Random?Access?Memory,簡(jiǎn)稱(chēng)RAM)。內存是一種易失性存儲載體,它保存處理器主動(dòng)訪(fǎng)問(wèn)和存儲的代碼和數據,是一個(gè)臨時(shí)的數據交換空間。大多數的PC的內存屬于一種動(dòng)態(tài)RAM(DRAM)。 它是動(dòng)態(tài)變化的,因其利用了電容器在充電和放電狀態(tài)間的差異來(lái)存儲數據的比特位。 為了維持電容器的狀態(tài),動(dòng)態(tài)內存必須周期性刷新- 這也是內存控制器最典型的任務(wù)。
由于計算機的內存(DRAM)需要持續供電才能保持數據可持續訪(fǎng)問(wèn),因此也稱(chēng)為易失性存儲。美國普林斯頓大學(xué)曾做過(guò)關(guān)于計算機冷啟動(dòng)攻擊的研究,計算機在斷電后,在很短的時(shí)間內內存的數據就會(huì )消失,然而通過(guò)液態(tài)氮冷卻,可以將內存中的數據進(jìn)行凍結,再通過(guò)一些技術(shù)方法來(lái)解凍并獲取原來(lái)的內存數據。以下我們先了解一下與內存相關(guān)的基本概念。
地址空間(Address Space)
CPU處理器要在執行指令并訪(fǎng)問(wèn)存儲與內中的數據,它必須為要訪(fǎng)問(wèn)的數制定一個(gè)唯一性地址。地址空間指的就是一組大量的有效地址,可用于去識別存儲與有限的內存分配空間中的數據。一個(gè)正在運行的程序可以訪(fǎng)問(wèn)的單個(gè)連續的地址空間一般稱(chēng)為線(xiàn)性地址空間?;趦却婺P图安捎玫姆猪?yè)模式,我們有時(shí)將其稱(chēng)為線(xiàn)性地址,有時(shí)稱(chēng)為虛擬地址。通常我們使用物理地址空間來(lái)特指處理器請求訪(fǎng)問(wèn)物理內存的地址。這些地址是通過(guò)將線(xiàn)性地址轉化為物理地址來(lái)獲得。
內存分頁(yè)(Paging)
從抽象意義上來(lái)講頁(yè)是一個(gè)具有固定尺寸的窗口,從邏輯意義上來(lái)講頁(yè)是具有固定大小的一組連續線(xiàn)性地址的集合。
分頁(yè)可以將線(xiàn)性地址空間進(jìn)行虛擬化。它創(chuàng )建了一個(gè)執行環(huán)境,大量線(xiàn)性地址空間通過(guò)用適量的物理內存和磁盤(pán)存儲進(jìn)行模擬。每一個(gè)32位的線(xiàn)性地址空間被分為固定長(cháng)度的片段,稱(chēng)為頁(yè)(Page),頁(yè)可以任何順序將線(xiàn)性地址空間映射為物理內存。 當程序嘗試訪(fǎng)問(wèn)線(xiàn)性地址時(shí),這樣的映射使用了駐留內存的頁(yè)目錄(Page Directory)及頁(yè)表(Page Table)來(lái)實(shí)現。
一個(gè)頁(yè)的大小可以指定為4KB(212=4KB)的任意倍數,這根據不同的體系結構或操作系統的設置而定,而x86架構下的Windows/Linux均采用4KB大小的分頁(yè)方式,這就說(shuō)明32位線(xiàn)性地址中必定存在一個(gè)12位的指示頁(yè)內偏移量的域。
物理地址擴展
Intel公司的32位架構的內存分頁(yè)機制支持物理地址擴展(Physical Address Extension?,簡(jiǎn)稱(chēng)PAE),該擴展支持允許處理器支持超過(guò)4GB的物理地址空間。
程序雖然仍只能擁有最高4GB的線(xiàn)性地址空間,但是內存管理單元可以將那些地址映射為擴展后的64GB物理地址空間。對于支持PAE功能的系統,線(xiàn)性地址分為四個(gè)索引:
- 頁(yè)目錄指針表(Page directory pointer table,簡(jiǎn)稱(chēng)PDPT)
- 頁(yè)目錄(Page directory,簡(jiǎn)稱(chēng)PD)
- 頁(yè)表(Page table,簡(jiǎn)稱(chēng)PT)
- 頁(yè)偏移(Page offset)
二、?物理內存中數據的價(jià)值
計算機終端及移動(dòng)終端均使用了RAM易失性存儲,主要用于數據交換、臨時(shí)存儲等用途。操作系統及各種應用軟件均經(jīng)常需要與物理內存進(jìn)行數據交互,此外由于內存空間有限,因此計算機系統還可能將內存中的數據緩存到磁盤(pán)中,如pagefile.sys(頁(yè)交換文件)及hiberfil.sys(休眠文件)。
內存中有大量的各類(lèi)數據,結構化及非結構化數據。通過(guò)對物理內存鏡像可以提取出有價(jià)值的數據。 常見(jiàn)有價(jià)值的數據,包含以下內容:
- 進(jìn)程列表(包括惡意程序進(jìn)程、Rootkit隱藏進(jìn)程等)
- 動(dòng)態(tài)鏈接庫(當前系統或程序加載的動(dòng)態(tài)鏈接庫)
- 打開(kāi)文件列表(當前系統打開(kāi)的文件列表)
- 網(wǎng)絡(luò )連接(當前活動(dòng)的網(wǎng)絡(luò )連接)
- $MFT記錄(常駐文件均可以直接提取恢復)
- 注冊表(部分注冊表信息,包括系統注冊表和用戶(hù)注冊表文件)
- 加密密鑰或密碼(如Windows賬戶(hù)密碼Hash、BitLocker/SafeBoot/PGP/ TrueCrypt/VeraCrypt等全盤(pán)加密或加密容器的恢復密鑰等)
- 聊天記錄(如QQ聊天記錄片段)
- 互聯(lián)網(wǎng)訪(fǎng)問(wèn)(上網(wǎng)記錄URL地址、網(wǎng)頁(yè)緩存及InPrivate隱私模式訪(fǎng)問(wèn)數據等)
- 電子郵件(如網(wǎng)頁(yè)郵件緩存頁(yè)面)
- 圖片及文檔等(尚未保存到磁盤(pán)中的圖片、文檔等文件)
頁(yè)交換文件(Pagefile.sys)
除了使用物理內存RAM用于數據交換,Windows為了能正常工作還使用了各種各樣的文件。從Windows 95開(kāi)始,Windows開(kāi)始引入了頁(yè)交換文件(Pagefile.sys)來(lái)協(xié)助內存數據的交換。 Pagefile.sys是磁盤(pán)中的一個(gè)文件,它用于將操作系統中的活動(dòng)數據臨時(shí)性地進(jìn)行存儲,在必要的情況下,Windows可將Pagefile.sys文件的中數據移動(dòng)到物理內存中或從內存中將數據移到該文件中,實(shí)現數據的臨時(shí)交換或緩存。從Pagefile.sys中獲得的數據通常是當前活動(dòng)的相關(guān)信息,也通常與調查相關(guān)性較高。
Windows操作系統最多支持16個(gè)頁(yè)交換文件。啟用物理地址擴展功能(PAE)的Windows 32位和64位系統的最大頁(yè)交換文件大小為16TB。64位的安騰架構(Itanium)的系統的頁(yè)交換文件可以支持高達32TB。 頁(yè)交換文件大小的默認值為計算機物理內存大小的1.5至3倍。
Pagefile.sys用于存儲從物理內存中轉移過(guò)來(lái)的數據。 要獲得一個(gè)正在運行的系統的活動(dòng)全貌或快照,我們通常除了分析物理內存,還需要分析pagefile.sys。 部分工具支持同時(shí)將物理內存和pagefile.sys進(jìn)行檢查分析。通常pagefile.sys文件放置于操作系統所在分區,當然用戶(hù)也完全可能修改高級設置或注冊表調整pagefile.sys的存儲位置。
從Windows?7操作系統版本開(kāi)始,Windows系統開(kāi)始支持頁(yè)交換文件pagefile.sys的加密。
?
休眠文件(HiberFil.sys)
Hiberfil.sys是當系統休眠時(shí),Windows將物理內存的數據寫(xiě)入到磁盤(pán)生成的一個(gè)文件。當系統進(jìn)入休眠狀態(tài)后,網(wǎng)絡(luò )連接將會(huì )中斷。 當系統重新加電時(shí),hiberfil.sys文件中的數據重新回寫(xiě)到物理內存中,這也使得從休眠狀態(tài)恢復到原始狀態(tài)變得相當快。
休眠文件包含了標準的頭部(PO_MEMORY_IMAGE),包含了內核上下文與寄存器的相關(guān)信息及壓縮的數據塊。該文件采用了Xpress算法(帶霍夫曼Huffman及LZ編碼)。 文件頭部通常包含了“hibr”、“HIBR”、“wake”或“WAKE”等特征。 操作系統從休眠狀態(tài)恢復后,頭部就被清零了。清零后的文件頭可能導致一些取證軟件無(wú)法分析該文件。
通過(guò)分析hiberfil.sys文件的修改時(shí)間戳信息,我們可以了解到該系統最后一次休眠的時(shí)間。系統中的休眠文件hiberfil.sys只有一個(gè)。當系統重新休眠時(shí),當前物理內存中的內容將會(huì )覆蓋原有文件的數據。 要對hiberfil.sys進(jìn)行分析,要求取證工具可以將休眠文件中的數據進(jìn)行解壓為原生數據并進(jìn)行數據解析。Mattieu Suiche的Windows Memory Toolkit工具hibr2bin.exe支持將休眠文件轉為原生轉儲文件。
當取證人員在現場(chǎng)要制作Windows操作系統的物理內存鏡像時(shí),可能由于內存鏡像工具不兼容操作系統導致無(wú)法獲取物理內存數據。當無(wú)法成功制作物理內存鏡像時(shí),還可以讓系統進(jìn)入休眠模式,從而用變通的方式獲得物理內存中的數據。
要進(jìn)入休眠模式,首先要讓系統啟用休眠模式支持。Windows 8及以上版本的操作系統,默認啟用休眠模式支持。取證人員也可以管理員權限進(jìn)入命令行模式,并輸入powercfg.exe /hibernate ON 來(lái)啟用休眠模式支持。要讓操作系統進(jìn)入休眠模式,需要輸入shutdown /h .
Vista以上操作系統在原有支持休眠模式(Hibernate Mode)的基礎上增加了睡眠模式(Sleep Mode)。睡眠模式狀態(tài)下,操作系統使用極少的電量保證內存可以繼續工作,一旦系統電量不足,系統將保存所有內存數據到磁盤(pán)并關(guān)閉計算機。而休眠模式狀態(tài)下,系統關(guān)閉,將內存中的數據寫(xiě)入休眠文件hiberfil.sys中。
在默認的Windows開(kāi)始菜單中的“電源”找不到“休眠”,可以通過(guò)按Win+X鍵,選擇“控制面板”,找到“硬件和聲音”->“電源選項”->“選擇電源按鈕的功能”,選擇“更改當前不可用的設置”,在“關(guān)機設置”下將“休眠”選項勾選。后續在開(kāi)始菜單選擇“電源”即可直接看到“休眠”選項。
三、?Windows 內存取證方法和分析技術(shù)
內存取證(Memory Forensics)通常指對計算機及相關(guān)智能設備運行時(shí)的物理內存中存儲的臨時(shí)數據進(jìn)行獲取與分析,提取有價(jià)值的數據。內存是操作系統及各種軟件交換數據的區域,數據易丟失(Volatile),通常在關(guān)機后數據很快就消失。
常見(jiàn)物理內存獲取方法:冷啟動(dòng)攻擊(Cool Boot Attack)、基于火線(xiàn)(1394)或雷電 (ThunderBolt)接口的直接內存訪(fǎng)問(wèn)(DMA)獲取及內存獲取軟件工具。
不同的操作系統需要用到不同的物理內存獲取工具。
Windows操作系統平臺支持內存獲取的常見(jiàn)工具有:
- DumpIt (早期版本名為Win32dd)
- Belkasoft RAMCapturer
- Magnet RAM Capture
- WinEn
- Winpmem
- EnCase Imager
- FTK Imager
- 取證大師
- 取證神探
Linux操作系統常見(jiàn)的內存獲取工具:
- dd (適合Linux早期版本)
- LiME ?http://code.google.com/p/lime-forensics/
- linpmem
- Draugr ?http://code.google.com/p/draugr/
- Volatilitux ?http://code.google.com/p/volatilitux/
- Memfetch ?http://lcamtuf.coredump.cx/
- Memdump
Mac?OSX操作系統內存獲取工具有:
- MacMemoryReader
- osxpmem
- Recon?for Mac OSX
- Blackbag MacQuisition
Windows操作系統平臺下的DumpIt是一個(gè)簡(jiǎn)單易用的計算機內存鏡像獲取工具。通常直接將該工具存放在大容量移動(dòng)硬盤(pán)或優(yōu)盤(pán)中??芍苯釉谡谶\行Windows系統的平臺直接運行,根據提示操作即可。
?
在獲取物理內存數據時(shí)還需盡量減少對原有內存數據的覆蓋,最大程度提取處內存數據。
內存分析技術(shù)
Windows操作系統獲取出的物理內存鏡像需要使用專(zhuān)門(mén)的內存分析工具。常見(jiàn)的內存分析工具有Volatility、Rekall、Forensic Toolkit(FTK)、取證大師及取證神探等,可以解析出常見(jiàn)的基本信息,包括進(jìn)程信息、網(wǎng)絡(luò )連接、加載的DLL文件及注冊表加載信息等。
Volatility?Framework?
Volatility Framework是一個(gè)完全開(kāi)放的內存分析工具集,基于GNU GPL2許可,以python語(yǔ)言進(jìn)行編寫(xiě)。由于Volatility是一款開(kāi)源免費的工具,無(wú)需花任何錢(qián)即可進(jìn)行內存數據的高級分析,此外代碼開(kāi)源的特點(diǎn),遇到一些無(wú)法解決的問(wèn)題時(shí),還可以對源代碼進(jìn)行修改或擴展功能。
在開(kāi)始使用Volatility之前,我們需要先了解它具有哪些特色功能。
- 即獨立又整體統一的框架
支持32位和64位操作系統的內存分析(如Windows、Linux、Mac系統及32位的Android系統)。Volatility的模塊化設計允許快速對未來(lái)新發(fā)布的操作系統進(jìn)行支持。
- 開(kāi)放源代碼(GPL v2)
意味著(zhù)可以自行閱讀源代碼,對源代碼進(jìn)行學(xué)習及功能擴充。 通過(guò)了解和學(xué)習Volatility的工作機制,你也可以成為一名更有效的分析專(zhuān)家。
- 基于Python語(yǔ)言編寫(xiě)
Python是一個(gè)公認的取證及逆向工程語(yǔ)言,帶有豐富的庫文件,也容易集成到Volatility。
- 跨平臺運行支持
Volatility只要系統平臺有Python運行環(huán)境即可運行,因此在Windows、Linux或Mac系統中都可以方便地運行。
- 程序接口擴展性強、腳本編程支持
Volatility讓取證人員可以不斷創(chuàng )新,自行擴展新功能,例如新增支持惡意程序沙盒分析、虛擬機檢測、自動(dòng)瀏覽內核內存等功能。
- 豐富的文件格式支持
支持原始數據轉儲(Raw Dump)、崩潰轉儲(Crash Dump)、休眠文件及各種其它格式,甚至可以支持多個(gè)格式之間的轉換。
- 快速高效的算法支持
與其它工具相比,Volatility具備快速高效的分析內存轉儲文件分析能力,無(wú)需消耗多余的內存。
- 社區支持
Volatility的共享者來(lái)自各行各業(yè),商業(yè)公司、執法部門(mén)、學(xué)術(shù)機構及全球各行業(yè)人士。
Volatility支持的操作系統版本
- 64-bit Windows Server 2016
- 64-bit Windows Server 2012 及2012 R2
- 32- and 64-bit Windows 10
- 32- and 64-bit Windows 8, 8.1, and 8.1 Update 1
- 32- and 64-bit Windows 7 (支持所有Service?Pack)
- 32- and 64-bit Windows Server 2008 (支持所有Service?Pack)
- 64-bit Windows Server 2008 R2 (支持所有Service?Pack)
- 32- and 64-bit Windows Vista (支持所有Service?Pack)
- 32- and 64-bit Windows Server 2003 (支持所有Service?Pack)
- 32- and 64-bit Windows XP (SP2 和?SP3)
- 32- and 64-bit Linux kernels (2.6.11 ~ 4.2.3)
- 32-bit 10.5.x Leopard (64-bit 10.5 Server尚未支持)
- 32- and 64-bit 10.6.x Snow Leopard
- 32- and 64-bit 10.7.x Lion
- 64-bit 10.8.x Mountain Lion
- 64-bit 10.9.x Mavericks
- 64-bit 10.10.x Yosemite
- 64-bit 10.11.x El Capitan
- 64-bit 10.12.x Sierra
Volatility支持的內存鏡像格式
- 原始物理內存鏡像格式
- 火線(xiàn)獲取內存格式(IEEE 1394)
- EWF格式(Expert Witness)
- 32- and 64-bit Windows 崩潰轉儲文件(Crash Dump)
- 32- and 64-bit Windows 休眠文件?(Windows 7及早期版本)
- 32- and 64-bit MachO 文件
- Virtualbox Core Dumps
- VMware 保存狀態(tài)文件?(.vmss) 及快照文件(.vmsn)
- HPAK 格式 (FastDump)
- QEMU 內存轉儲文件
在Windows系統平臺下,有兩種方式可以運行Volatility工具。第一種是獨立安裝Python運行環(huán)境,再下載Volatility源代碼執行命令行。第二種為下載Volatility獨立Windows程序(無(wú)需另外安裝和配置Python環(huán)境)。最新Volatility版本為v2.6,可以通過(guò)官方網(wǎng)站進(jìn)行下載。
在Windows?64位平臺,最便捷的方式就是直接使用獨立Windows程序的Volatility版本。進(jìn)入管理員命令行模式,運行volatility_2.6_win64_standalone.exe 程序即可。
Volatility常用命令行參數
- -h 查看相關(guān)參數及幫助說(shuō)明
- –info 查看相關(guān)模塊名稱(chēng)及支持的Windows版本
- -f?指定要打開(kāi)的內存鏡像文件及路徑
- -d?開(kāi)啟調試模式
- -v?開(kāi)啟顯示詳細信息模式(verbose)
由于幫助說(shuō)明內容太多,通??梢詫热葺敵鰹槲谋疚募?,方便隨時(shí)打開(kāi)參數及模塊支持列表。
- volatility_2.6_win64_standalone.exe -h?> help.txt
- volatility_2.6_win64_standalone.exe –info > modules_list.txt
表格 1?Volatility支持的插件列表
插件名稱(chēng) | 功能 |
amcache | 查看AmCache應用程序痕跡信息 |
apihooks | 檢測內核及進(jìn)程的內存空間中的API?hook |
atoms | 列出會(huì )話(huà)及窗口站atom表 |
atomscan | Atom表的池掃描(Pool scanner) |
auditpol | 列出注冊表HKLM\SECURITY\Policy\PolAdtEv的審計策略信息 |
bigpools | 使用BigPagePoolScanner轉儲大分頁(yè)池(big page pools) |
bioskbd | 從實(shí)時(shí)模式內存中讀取鍵盤(pán)緩沖數據(早期電腦可以讀取出BIOS開(kāi)機密碼) |
cachedump | 獲取內存中緩存的域帳號的密碼哈希 |
callbacks | 打印全系統通知例程 |
clipboard | 提取Windows剪貼板中的內容 |
cmdline | 顯示進(jìn)程命令行參數 |
cmdscan | 提取執行的命令行歷史記錄(掃描_COMMAND_HISTORY信息) |
connections | 打印系統打開(kāi)的網(wǎng)絡(luò )連接(僅支持Windows XP 和2003) |
connscan | 打印TCP連接信息 |
consoles | 提取執行的命令行歷史記錄(掃描_CONSOLE_INFORMATION信息) |
crashinfo | 提取崩潰轉儲信息 |
deskscan | tagDESKTOP池掃描(Poolscaner) |
devicetree | 顯示設備樹(shù)信息 |
dlldump | 從進(jìn)程地址空間轉儲動(dòng)態(tài)鏈接庫 |
dlllist | 打印每個(gè)進(jìn)程加載的動(dòng)態(tài)鏈接庫列表 |
driverirp | IRP hook驅動(dòng)檢測 |
drivermodule | 關(guān)聯(lián)驅動(dòng)對象至內核模塊 |
driverscan | 驅動(dòng)對象池掃描 |
dumpcerts | 提取RAS私鑰及SSL公鑰 |
dumpfiles | 提取內存中映射或緩存的文件 |
dumpregistry | 轉儲內存中注冊表信息至磁盤(pán) |
editbox | 查看Edit編輯控件信息?(Listbox正在實(shí)驗中) |
envars | 顯示進(jìn)程的環(huán)境變量 |
eventhooks | 打印Windows事件hook詳細信息 |
evtlogs | 提取Windows事件日志(僅支持XP/2003) |
filescan | 提取文件對象(file objects)池信息 |
gahti | 轉儲用戶(hù)句柄(handle)類(lèi)型信息 |
gditimers | 打印已安裝的GDI計時(shí)器(timers)及回調(callbacks) |
gdt | 顯示全局描述符表(Global Descriptor Table) |
getservicesids | 獲取注冊表中的服務(wù)名稱(chēng)并返回SID信息 |
getsids | 打印每個(gè)進(jìn)程的SID信息 |
handles | 打印每個(gè)進(jìn)程打開(kāi)的句柄的列表 |
hashdump | 轉儲內存中的Windows帳戶(hù)密碼哈希(LM/NTLM) |
hibinfo | 轉儲休眠文件信息 |
hivedump | 打印注冊表配置單元信息 |
hivelist | 打印注冊表配置單元列表 |
hivescan | 注冊表配置單元池掃描 |
hpakextract | 從HPAK文件(Fast Dump格式)提取物理內存數據 |
hpakinfo | 查看HPAK文件屬性及相關(guān)信息 |
idt | 顯示中斷描述符表(Interrupt Descriptor Table) |
iehistory | 重建IE緩存及訪(fǎng)問(wèn)歷史記錄 |
imagecopy | 將物理地址空間導出原生DD鏡像文件 |
imageinfo | 查看/識別鏡像信息 |
impscan | 掃描對導入函數的調用 |
joblinks | 打印進(jìn)程任務(wù)鏈接信息 |
kdbgscan | 搜索和轉儲潛在KDBG值 |
kpcrscan | 搜索和轉儲潛在KPCR值 |
ldrmodules | 檢測未鏈接的動(dòng)態(tài)鏈接DLL |
lsadump | 從注冊表中提取LSA密鑰信息(已解密) |
machoinfo | 轉儲Mach-O 文件格式信息 |
malfind | 查找隱藏的和插入的代碼 |
mbrparser | 掃描并解析潛在的主引導記錄(MBR) |
memdump | 轉儲進(jìn)程的可尋址內存 |
memmap | 打印內存映射 |
messagehooks | 桌面和窗口消息鉤子的線(xiàn)程列表 |
mftparser | 掃描并解析潛在的MFT條目 |
moddump | 轉儲內核驅動(dòng)程序到可執行文件的示例 |
modscan | 內核模塊池掃描 |
modules | 打印加載模塊的列表 |
multiscan | 批量掃描各種對象 |
mutantscan | 對互斥對象池掃描 |
notepad | 查看記事本當前顯示的文本 |
objtypescan | 掃描窗口對象類(lèi)型對象 |
patcher | 基于頁(yè)面掃描的補丁程序內存 |
poolpeek | 可配置的池掃描器插件 |
printkey | 打印注冊表項及其子項和值 |
privs | 顯示進(jìn)程權限 |
procdump | 進(jìn)程轉儲到一個(gè)可執行文件示例 |
pslist | 按照EPROCESS列表打印所有正在運行的進(jìn)程 |
psscan | 進(jìn)程對象池掃描 |
pstree | 以樹(shù)型方式打印進(jìn)程列表 |
psxview | 查找帶有隱藏進(jìn)程的所有進(jìn)程列表 |
qemuinfo | 轉儲Qemu 信息 |
raw2dmp | 將物理內存原生數據轉換為windbg崩潰轉儲格式 |
screenshot | 基于GDI Windows的虛擬屏幕截圖保存 |
servicediff | Windows服務(wù)列表(ala Plugx) |
sessions | _MM_SESSION_SPACE的詳細信息列表(用戶(hù)登錄會(huì )話(huà)) |
shellbags | 打印Shellbags信息 |
shimcache | 解析應用程序兼容性Shim緩存注冊表項 |
shutdowntime | 從內存中的注冊表信息獲取機器關(guān)機時(shí)間 |
sockets | 打印已打開(kāi)套接字列表 |
sockscan | TCP套接字對象池掃描 |
ssdt | 顯示SSDT條目 |
strings | 物理到虛擬地址的偏移匹配(需要一些時(shí)間,帶詳細信息) |
svcscan | Windows服務(wù)列表掃描 |
symlinkscan | 符號鏈接對象池掃描 |
thrdscan | 線(xiàn)程對象池掃描 |
threads | 調查_(kāi)ETHREAD 和_KTHREADs |
timeliner | 創(chuàng )建內存中的各種痕跡信息的時(shí)間線(xiàn) |
timers | 打印內核計時(shí)器及關(guān)聯(lián)模塊的DPC |
truecryptmaster | 恢復TrueCrypt 7.1a主密鑰 |
truecryptpassphrase | 查找并提取TrueCrypt密碼 |
truecryptsummary | TrueCrypt摘要信息 |
unloadedmodules | 打印卸載的模塊信息列表 |
userassist | 打印注冊表中UserAssist相關(guān)信息 |
userhandles | 轉儲用戶(hù)句柄表 |
vaddump | 轉儲VAD數據為文件 |
vadinfo | 轉儲VAD信息 |
vadtree | 以樹(shù)形方式顯示VAD樹(shù)信息 |
vadwalk | 顯示遍歷VAD樹(shù) |
vboxinfo | 轉儲Virtualbox信息(虛擬機) |
verinfo | 打印PE鏡像中的版本信息 |
vmwareinfo | 轉儲VMware VMSS/VMSN 信息 |
volshell | 內存鏡像中的shell |
windows | 打印桌面窗口(詳細信息) |
wintree | Z順序打印桌面窗口樹(shù) |
wndscan | 池掃描窗口站 |
yarascan | 以Yara簽名掃描進(jìn)程或內核內存 |
查看系統進(jìn)程列表
volatility_2.6_win64_standalone.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 pslist
將進(jìn)程列表導出為txt文件
volatility_2.6_win64_standalone.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 pslist?> Win7_SP1_x86_pslist.txt
查看網(wǎng)絡(luò )通訊連接信息
volatility_2.6_win64_standalone -f Win7_SP1_x86.vmem –profile=Win7SP1x86 netscan
提取內存中的注冊表信息
volatility_2.6_win64_standalone -f Win7_SP1_x86.vmem –profile=Win7SP1x86 dumpregistry
提取內存中的MFT記錄信息
volatility_2.6_win64_standalone -f Win7_SP1_x86.vmem –profile=Win7SP1x86 mftparser
導出內存中的MFT記錄數據
volatility_2.6_win64_standalone -f Win7_SP1_x86.vmem –profile=Win7SP1x86 mftparser –output-file=mftverbose.txt -D mftoutput
表格 2?Volatility常用命名參數及功能對照表
注:以下表格中用vol.exe替代volatility_2.6_win64_standalone.exe
功能 | 命令行及參數 |
查看進(jìn)程列表 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 pslist |
查看進(jìn)程列表(樹(shù)形) | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 pstree |
查看進(jìn)程列表(psx視圖) | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 psxview |
查看網(wǎng)絡(luò )通訊連接 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 netscan |
查看加載的動(dòng)態(tài)鏈接庫 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 dlllist |
查看SSDT表 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 ssdt |
查看UserAssist痕跡 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 userassist |
查看ShimCache痕跡 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 shimcache |
查看ShellBags | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 shellbags |
查看服務(wù)列表 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 svcscan |
查看Windows帳戶(hù)hash | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 hashdump |
查看最后關(guān)機時(shí)間 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 shutdowntime |
查看IE歷史記錄 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 iehistory |
提取注冊表數據 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 dumpregistry |
解析MFT記錄 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 mftparser |
導出MFT記錄 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 mftparser –output-file=mftverbose.txt -D mftoutput |
獲取TrueCrypt密鑰信息 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 truecryptmaster |
獲取TrueCrypt密碼信息 | Vol.exe -f Win7_SP1_x86.vmem –profile=Win7SP1x86 truecryptpassphrase |