取证分析volatility纪要

取证流程

1
2
3
4
5
首先确定镜像是何种操作系统的,命令imageinfo即可获取镜像信息。
需要获取的是计算机在这一时刻运行了哪些进程。
Volatility提供了众多的分析进程的命令,如pstree、pesscan、pslist……
filescan命令可以对打开的文件进行扫描。
命令dumpfile和memdump命令将相关数据导出,然后对导出的数据进行二进制分析。

简单说只要熟悉Volatility工具的常用命令,并能够对结合其他类型的知识(图片隐写、压缩包分析等)对提取出的文件进行分析,便可轻松解决。

volatility

简介

Volatility是一款开源内存取证框架,能够对导出的内存镜像进行分析,通过获取内核数据结构,使用插件获取内存的详细情况以及系统的运行状态。

Volatility是一款非常强大的内存取证工具,它是由来自全世界的数百位知名安全专家合作开发的一套工具, 可以用于windows,linux,mac osx,android等系统内存取证。Volatility是一款开源内存取证框架,能够对导出的内存镜像进行分析,通过获取内核数据结构,使用插件获取内存的详细情况以及系统的运行状态。

安装

Volatility开源在不同系统下都有不同的软件版本,官网地址:

1
https://www.volatilityfoundation.org/26

支持不同的操作系统:windows\linux 都支持,可以根据自己的需求来下载:

ps :Volatility官网提供了2和3两个版本,但是实际上是存在一些命令上的差别,后期插件上也存在一些区别,本文使用Volatility2。建议大家都使用vol2的python版本,拓展性好点。相对来说windows的体验效果比Linux差,因为类似distorm3之类的库,python2就没法在windows中安装,但是使用Linux就可以安装。

windows安装

可以将exe注册成环境变量,也可以每次在此处使用cmd打开

运行效果

Linux安装

建议直接法三

法一

直接使用官网上的可执行文件,然后放到/bin目录中

法二

Volatility2.6需要python2,pip安装模块也需要2版本,具体命令根据实际情况调整。

1
https://github.com/volatilityfoundation/volatility

下载源码,然后解压

1
unzip volatility-master.zip

安装依赖

  • crypto
1
2
3
4
5
6
pip2 install pycryptodome
#如果安装失败,可使用以下命令切换国内源
pip2 install pycryptodome -i https://pypi.tuna.tsinghua.edu.cn/simple

手动安装链接
http://www.voidspace.org.uk/python/modules.shtml#pycrypto
  • distorm3
1
2
https://github.com/vext01/distorm3
#下载解压后使用python2 setup.py install进行编译
  • 可选插件
1
2
3
4
5
6
Distorm3(反编译库):pip install distorm3
Yara(恶意软件分类工具):pip install yara
PyCrypto(加密工具集):pip install pycrypto
PIL(图片处理库):pip install pil
OpenPyxl(读写excel文件):pip install openpyxl
ujson(JSON解析):pip install ujson

安装Volatility,在解压后的Volatility目录下进行编译

1
python2 setup.py install

这里可能存在错误

重新链接即可,此处需要找到libyara.so的库,根据每个人的路径不一样,可以执行

1
2
3
4
└─$ pip2 install yara
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: yara in /home/t/.local/lib/python2.7/site-packages (1.7.7)

定位libyara.so的路径,然后执行命令

1
sudo ln -s /home/t/.local/lib/python2.7/site-packages/usr/lib/libyara.so /usr/lib/libyara.so

测试安装成功

1
vol.py --help

能看到版本就表示安装成功。

法三

下载解压离线包,直接放到合适的位置即可。

插件安装

安装mimikatz

将mimikatz.py复制到volatility-master/volatility/plugins/目录下,使用时需要添加参数--plugins=./volatility-master/volatility/plugins

1
2
3
4
5
https://github.com/ruokeqx/Virtual-machine-configuration-for-CTF
mimikatz.py下载路径
* mimikatz.py 获取密码
* lastpass.py Chrome记录的登录密码
* usbstor.py 扫描注册表查找插入系统的USB设备

运行时可能会出现如下错误,这是因为没有安装construct 模块:

1
2
3
Volatility Foundation Volatility Framework 2.6
*** Failed to import volatility.plugins.mimikatz (ImportError: No module named construct)
ERROR : volatility.debug : You must specify something to do (try -h)

安装construct模块。

1
pip install construct 

参数简介

英文

使用volatility_2.6 -h,具体命令跟配置的环境变量有关系,或者跟你是否重命名有关系

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
└─$ volatility_2.6 -h                                                               
Volatility Foundation Volatility Framework 2.6
Usage: Volatility - A memory forensics analysis platform.

Options:
-h, --help list all available options and their default values.
Default values may be set in the configuration file
(/etc/volatilityrc)
--conf-file=/home/t/.volatilityrc
User based configuration file
-d, --debug Debug volatility
--plugins=PLUGINS Additional plugin directories to use (colon separated)
--info Print information about all registered objects
--cache-directory=/home/t/.cache/volatility
Directory where cache files are stored
--cache Use caching
--tz=TZ Sets the (Olson) timezone for displaying timestamps
using pytz (if installed) or tzset
-f FILENAME, --filename=FILENAME
Filename to use when opening an image
--profile=WinXPSP2x86
Name of the profile to load (use --info to see a list
of supported profiles)
-l LOCATION, --location=LOCATION
A URN location from which to load an address space
-w, --write Enable write support
--dtb=DTB DTB Address
--shift=SHIFT Mac KASLR shift address
--output=text Output in this format (support is module specific, see
the Module Output Options below)
--output-file=OUTPUT_FILE
Write output in this file
-v, --verbose Verbose information
-g KDBG, --kdbg=KDBG Specify a KDBG virtual address (Note: for 64-bit
Windows 8 and above this is the address of
KdCopyDataBlock)
--force Force utilization of suspect profile
--cookie=COOKIE Specify the address of nt!ObHeaderCookie (valid for
Windows 10 only)
-k KPCR, --kpcr=KPCR Specify a specific KPCR address

Supported Plugin Commands:

amcache Print AmCache information
apihooks Detect API hooks in process and kernel memory
atoms Print session and window station atom tables
atomscan Pool scanner for atom tables
auditpol Prints out the Audit Policies from HKLM\SECURITY\Policy\PolAdtEv
bigpools Dump the big page pools using BigPagePoolScanner
bioskbd Reads the keyboard buffer from Real Mode memory
cachedump Dumps cached domain hashes from memory
callbacks Print system-wide notification routines
clipboard Extract the contents of the windows clipboard
cmdline Display process command-line arguments
cmdscan Extract command history by scanning for _COMMAND_HISTORY
connections Print list of open connections [Windows XP and 2003 Only]
connscan Pool scanner for tcp connections
consoles Extract command history by scanning for _CONSOLE_INFORMATION
crashinfo Dump crash-dump information
deskscan Poolscaner for tagDESKTOP (desktops)
devicetree Show device tree
dlldump Dump DLLs from a process address space
dlllist Print list of loaded dlls for each process
driverirp Driver IRP hook detection
drivermodule Associate driver objects to kernel modules
driverscan Pool scanner for driver objects
dumpcerts Dump RSA private and public SSL keys
dumpfiles Extract memory mapped and cached files
dumpregistry Dumps registry files out to disk
editbox Displays information about Edit controls. (Listbox experimental.)
envars Display process environment variables
eventhooks Print details on windows event hooks
evtlogs Extract Windows Event Logs (XP/2003 only)
filescan Pool scanner for file objects
gahti Dump the USER handle type information
gditimers Print installed GDI timers and callbacks
gdt Display Global Descriptor Table
getservicesids Get the names of services in the Registry and return Calculated SID
getsids Print the SIDs owning each process
handles Print list of open handles for each process
hashdump Dumps passwords hashes (LM/NTLM) from memory
hibinfo Dump hibernation file information
hivedump Prints out a hive
hivelist Print list of registry hives.
hivescan Pool scanner for registry hives
hpakextract Extract physical memory from an HPAK file
hpakinfo Info on an HPAK file
idt Display Interrupt Descriptor Table
iehistory Reconstruct Internet Explorer cache / history
imagecopy Copies a physical address space out as a raw DD image
imageinfo Identify information for the image
impscan Scan for calls to imported functions
joblinks Print process job link information
kdbgscan Search for and dump potential KDBG values
kpcrscan Search for and dump potential KPCR values
ldrmodules Detect unlinked DLLs
lsadump Dump (decrypted) LSA secrets from the registry
machoinfo Dump Mach-O file format information
malfind Find hidden and injected code
mbrparser Scans for and parses potential Master Boot Records (MBRs)
memdump Dump the addressable memory for a process
memmap Print the memory map
messagehooks List desktop and thread window message hooks
mftparser Scans for and parses potential MFT entries
moddump Dump a kernel driver to an executable file sample
modscan Pool scanner for kernel modules
modules Print list of loaded modules
multiscan Scan for various objects at once
mutantscan Pool scanner for mutex objects
notepad List currently displayed notepad text
objtypescan Scan for Windows object type objects
patcher Patches memory based on page scans
poolpeek Configurable pool scanner plugin
printkey Print a registry key, and its subkeys and values
privs Display process privileges
procdump Dump a process to an executable file sample
pslist Print all running processes by following the EPROCESS lists
psscan Pool scanner for process objects
pstree Print process list as a tree
psxview Find hidden processes with various process listings
qemuinfo Dump Qemu information
raw2dmp Converts a physical memory sample to a windbg crash dump
screenshot Save a pseudo-screenshot based on GDI windows
servicediff List Windows services (ala Plugx)
sessions List details on _MM_SESSION_SPACE (user logon sessions)
shellbags Prints ShellBags info
shimcache Parses the Application Compatibility Shim Cache registry key
shutdowntime Print ShutdownTime of machine from registry
sockets Print list of open sockets
sockscan Pool scanner for tcp socket objects
ssdt Display SSDT entries
strings Match physical offsets to virtual addresses (may take a while, VERY verbose)
svcscan Scan for Windows services
symlinkscan Pool scanner for symlink objects
thrdscan Pool scanner for thread objects
threads Investigate _ETHREAD and _KTHREADs
timeliner Creates a timeline from various artifacts in memory
timers Print kernel timers and associated module DPCs
truecryptmaster Recover TrueCrypt 7.1a Master Keys
truecryptpassphrase TrueCrypt Cached Passphrase Finder
truecryptsummary TrueCrypt Summary
unloadedmodules Print list of unloaded modules
userassist Print userassist registry keys and information
userhandles Dump the USER handle tables
vaddump Dumps out the vad sections to a file
vadinfo Dump the VAD info
vadtree Walk the VAD tree and display in tree format
vadwalk Walk the VAD tree
vboxinfo Dump virtualbox information
verinfo Prints out the version information from PE images
vmwareinfo Dump VMware VMSS/VMSN information
volshell Shell in the memory image
windows Print Desktop Windows (verbose details)
wintree Print Z-Order Desktop Windows Tree
wndscan Pool scanner for window stations
yarascan Scan process or kernel memory with Yara signatures
中文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
Volatility Foundation Volatility Framework 2.6
用法: Volatility - 内存取证分析平台

Options:
-h, --help 列出所有可用选项及其默认值
默认值可以在配置文件中设置
(/etc/volatilityrc)
--conf-file=/home/kali/.volatilityrc
基于用户的配置文件
-d, --debug 调试Volatility
--plugins=PLUGINS 要使用的其他插件目录(冒号分隔)
--info 打印所有注册对象的信息
--cache-directory=/home/kali/.cache/volatility
存放缓存文件的目录
--cache 使用缓存
--tz=TZ 设置 (Olson) 时区以使用 pytz(如果已安装)或 tzset 显示时间戳
-f FILENAME, --filename=FILENAME
打开图像时使用的文件名
--profile=WinXPSP2x86
要加载的配置文件的名称(使用 --info 查看支持的配置文件列表)
-l LOCATION, --location=LOCATION
从中加载地址空间的 URN 位置
-w, --write 启用写支持
--dtb=DTB DTB 地址
--shift=SHIFT Mac KASLR 移位地址
--output=text 以这种格式输出(支持特定于模块,请参阅下面的模块输出选项)
--output-file=OUTPUT_FILE
在此文件中写入输出
-v, --verbose 详细信息
-g KDBG, --kdbg=KDBG 指定一个 KDBG 虚拟地址(注意:对于 64 位 Windows 8 及更高版本,这是 KdCopyDataBlock 的地址)
--force 强制使用可疑配置文件
-k KPCR, --kpcr=KPCR 指定特定的 KPCR 地址
--cookie=COOKIE 指定 nt!ObHeaderCookie 的地址(仅适用于 Windows 10)

支持的插件命令:

amcache 查看AmCache应用程序痕迹信息
apihooks 检测内核及进程的内存空间中的API hook
atoms 列出会话及窗口站atom表
atomscan Atom表的池扫描(Pool scanner)
auditpol 列出注册表HKLMSECURITYPolicyPolAdtEv的审计策略信息
bigpools 使用BigPagePoolScanner转储大分页池(big page pools)
bioskbd 从实时模式内存中读取键盘缓冲数据(早期电脑可以读取出BIOS开机密码)
cachedump 获取内存中缓存的域帐号的密码哈希
callbacks 打印全系统通知例程
clipboard 提取Windows剪贴板中的内容
cmdline 显示进程命令行参数
cmdscan 提取执行的命令行历史记录(扫描_COMMAND_HISTORY信息)
connections 打印系统打开的网络连接(仅支持Windows XP 和2003)
connscan 打印TCP连接信息
consoles 提取执行的命令行历史记录(扫描_CONSOLE_INFORMATION信息)
crashinfo 提取崩溃转储信息
deskscan tagDESKTOP池扫描(Poolscaner)
devicetree 显示设备树信息
dlldump 从进程地址空间转储动态链接库
dlllist 打印每个进程加载的动态链接库列表
driverirp IRP hook驱动检测
drivermodule 关联驱动对象至内核模块
driverscan 驱动对象池扫描
dumpcerts 提取RAS私钥及SSL公钥
dumpfiles 提取内存中映射或缓存的文件
dumpregistry 转储内存中注册表信息至磁盘
editbox 查看Edit编辑控件信息 (Listbox正在实验中)
envars 显示进程的环境变量
eventhooks 打印Windows事件hook详细信息
evtlogs 提取Windows事件日志(仅支持XP/2003)
filescan 提取文件对象(file objects)池信息
gahti 转储用户句柄(handle)类型信息
gditimers 打印已安装的GDI计时器(timers)及回调(callbacks)
gdt 显示全局描述符表(Global Deor Table)
getservicesids 获取注册表中的服务名称并返回SID信息
getsids 打印每个进程的SID信息
handles 打印每个进程打开的句柄的列表
hashdump 转储内存中的Windows帐户密码哈希(LM/NTLM)
hibinfo 转储休眠文件信息
hivedump 打印注册表配置单元信息
hivelist 打印注册表配置单元列表
hivescan 注册表配置单元池扫描
hpakextract 从HPAK文件(Fast Dump格式)提取物理内存数据
hpakinfo 查看HPAK文件属性及相关信息
idt 显示中断描述符表(Interrupt Deor Table)
iehistory 重建IE缓存及访问历史记录
imagecopy 将物理地址空间导出原生DD镜像文件
imageinfo 查看/识别镜像信息
impscan 扫描对导入函数的调用
joblinks 打印进程任务链接信息
kdbgscan 搜索和转储潜在KDBG值
kpcrscan 搜索和转储潜在KPCR值
ldrmodules 检测未链接的动态链接DLL
lsadump 从注册表中提取LSA密钥信息(已解密)
machoinfo 转储Mach-O 文件格式信息
malfind 查找隐藏的和插入的代码
mbrparser 扫描并解析潜在的主引导记录(MBR)
memdump 转储进程的可寻址内存
memmap 打印内存映射
messagehooks 桌面和窗口消息钩子的线程列表
mftparser 扫描并解析潜在的MFT条目
moddump 转储内核驱动程序到可执行文件的示例
modscan 内核模块池扫描
modules 打印加载模块的列表
multiscan 批量扫描各种对象
mutantscan 对互斥对象池扫描
notepad 查看记事本当前显示的文本
objtypescan 扫描窗口对象类型对象
patcher 基于页面扫描的补丁程序内存
poolpeek 可配置的池扫描器插件
printkey 打印注册表项及其子项和值
privs 显示进程权限
procdump 进程转储到一个可执行文件示例
pslist 按照EPROCESS列表打印所有正在运行的进程
psscan 进程对象池扫描
pstree 以树型方式打印进程列表
psxview 查找带有隐藏进程的所有进程列表
qemuinfo 转储 Qemu 信息
raw2dmp 将物理内存原生数据转换为windbg崩溃转储格式
screenshot 基于GDI Windows的虚拟屏幕截图保存
servicediff Windows服务列表(ala Plugx)
sessions _MM_SESSION_SPACE的详细信息列表(用户登录会话)
shellbags 打印Shellbags信息
shimcache 解析应用程序兼容性Shim缓存注册表项
shutdowntime 从内存中的注册表信息获取机器关机时间
sockets 打印已打开套接字列表
sockscan TCP套接字对象池扫描
ssdt 显示SSDT条目
strings 物理到虚拟地址的偏移匹配(需要一些时间,带详细信息)
svcscan Windows服务列表扫描
symlinkscan 符号链接对象池扫描
thrdscan 线程对象池扫描
threads 调查_ETHREAD 和_KTHREADs
timeliner 创建内存中的各种痕迹信息的时间线
timers 打印内核计时器及关联模块的DPC
truecryptmaster Recover 恢复TrueCrypt 7.1a主密钥
truecryptpassphrase 查找并提取TrueCrypt密码
truecryptsummary TrueCrypt摘要信息
unloadedmodules 打印卸载的模块信息列表
userassist 打印注册表中UserAssist相关信息
userhandles 转储用户句柄表
vaddump 转储VAD数据为文件
vadinfo 转储VAD信息
vadtree 以树形方式显示VAD树信息
vadwalk 显示遍历VAD树
vboxinfo 转储Virtualbox信息(虚拟机)
verinfo 打印PE镜像中的版本信息
vmwareinfo 转储VMware VMSS/VMSN 信息
volshell 内存镜像中的shell
windows 打印桌面窗口(详细信息)
wintree Z顺序打印桌面窗口树
wndscan 池扫描窗口站
yarascan 以Yara签名扫描进程或内核内存

插件信息查询

输入 volatility_2.6 --info可查看插件。

英文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
└─$ volatility_2.6 --info
Volatility Foundation Volatility Framework 2.6


Profiles
--------
VistaSP0x64 - A Profile for Windows Vista SP0 x64
VistaSP0x86 - A Profile for Windows Vista SP0 x86
VistaSP1x64 - A Profile for Windows Vista SP1 x64
VistaSP1x86 - A Profile for Windows Vista SP1 x86
VistaSP2x64 - A Profile for Windows Vista SP2 x64
VistaSP2x86 - A Profile for Windows Vista SP2 x86
Win10x64 - A Profile for Windows 10 x64
Win10x64_10586 - A Profile for Windows 10 x64 (10.0.10586.306 / 2016-04-23)
Win10x64_14393 - A Profile for Windows 10 x64 (10.0.14393.0 / 2016-07-16)
Win10x86 - A Profile for Windows 10 x86
Win10x86_10586 - A Profile for Windows 10 x86 (10.0.10586.420 / 2016-05-28)
Win10x86_14393 - A Profile for Windows 10 x86 (10.0.14393.0 / 2016-07-16)
Win2003SP0x86 - A Profile for Windows 2003 SP0 x86
Win2003SP1x64 - A Profile for Windows 2003 SP1 x64
Win2003SP1x86 - A Profile for Windows 2003 SP1 x86
Win2003SP2x64 - A Profile for Windows 2003 SP2 x64
Win2003SP2x86 - A Profile for Windows 2003 SP2 x86
Win2008R2SP0x64 - A Profile for Windows 2008 R2 SP0 x64
Win2008R2SP1x64 - A Profile for Windows 2008 R2 SP1 x64
Win2008R2SP1x64_23418 - A Profile for Windows 2008 R2 SP1 x64 (6.1.7601.23418 / 2016-04-09)
Win2008SP1x64 - A Profile for Windows 2008 SP1 x64
Win2008SP1x86 - A Profile for Windows 2008 SP1 x86
Win2008SP2x64 - A Profile for Windows 2008 SP2 x64
Win2008SP2x86 - A Profile for Windows 2008 SP2 x86
Win2012R2x64 - A Profile for Windows Server 2012 R2 x64
Win2012R2x64_18340 - A Profile for Windows Server 2012 R2 x64 (6.3.9600.18340 / 2016-05-13)
Win2012x64 - A Profile for Windows Server 2012 x64
Win2016x64_14393 - A Profile for Windows Server 2016 x64 (10.0.14393.0 / 2016-07-16)
Win7SP0x64 - A Profile for Windows 7 SP0 x64
Win7SP0x86 - A Profile for Windows 7 SP0 x86
Win7SP1x64 - A Profile for Windows 7 SP1 x64
Win7SP1x64_23418 - A Profile for Windows 7 SP1 x64 (6.1.7601.23418 / 2016-04-09)
Win7SP1x86 - A Profile for Windows 7 SP1 x86
Win7SP1x86_23418 - A Profile for Windows 7 SP1 x86 (6.1.7601.23418 / 2016-04-09)
Win81U1x64 - A Profile for Windows 8.1 Update 1 x64
Win81U1x86 - A Profile for Windows 8.1 Update 1 x86
Win8SP0x64 - A Profile for Windows 8 x64
Win8SP0x86 - A Profile for Windows 8 x86
Win8SP1x64 - A Profile for Windows 8.1 x64
Win8SP1x64_18340 - A Profile for Windows 8.1 x64 (6.3.9600.18340 / 2016-05-13)
Win8SP1x86 - A Profile for Windows 8.1 x86
WinXPSP1x64 - A Profile for Windows XP SP1 x64
WinXPSP2x64 - A Profile for Windows XP SP2 x64
WinXPSP2x86 - A Profile for Windows XP SP2 x86
WinXPSP3x86 - A Profile for Windows XP SP3 x86


Address Spaces
--------------
AMD64PagedMemory - Standard AMD 64-bit address space.
ArmAddressSpace - Address space for ARM processors
FileAddressSpace - This is a direct file AS.
HPAKAddressSpace - This AS supports the HPAK format
IA32PagedMemory - Standard IA-32 paging address space.
IA32PagedMemoryPae - This class implements the IA-32 PAE paging address space. It is responsible
LimeAddressSpace - Address space for Lime
LinuxAMD64PagedMemory - Linux-specific AMD 64-bit address space.
MachOAddressSpace - Address space for mach-o files to support atc-ny memory reader
OSXPmemELF - This AS supports VirtualBox ELF64 coredump format
QemuCoreDumpElf - This AS supports Qemu ELF32 and ELF64 coredump format
VMWareAddressSpace - This AS supports VMware snapshot (VMSS) and saved state (VMSS) files
VMWareMetaAddressSpace - This AS supports the VMEM format with VMSN/VMSS metadata
VirtualBoxCoreDumpElf64 - This AS supports VirtualBox ELF64 coredump format
Win10AMD64PagedMemory - Windows 10-specific AMD 64-bit address space.
WindowsAMD64PagedMemory - Windows-specific AMD 64-bit address space.
WindowsCrashDumpSpace32 - This AS supports windows Crash Dump format
WindowsCrashDumpSpace64 - This AS supports windows Crash Dump format
WindowsCrashDumpSpace64BitMap - This AS supports Windows BitMap Crash Dump format
WindowsHiberFileSpace32 - This is a hibernate address space for windows hibernation files.


Plugins
-------
amcache - Print AmCache information
apihooks - Detect API hooks in process and kernel memory
atoms - Print session and window station atom tables
atomscan - Pool scanner for atom tables
auditpol - Prints out the Audit Policies from HKLM\SECURITY\Policy\PolAdtEv
bigpools - Dump the big page pools using BigPagePoolScanner
bioskbd - Reads the keyboard buffer from Real Mode memory
cachedump - Dumps cached domain hashes from memory
callbacks - Print system-wide notification routines
clipboard - Extract the contents of the windows clipboard
cmdline - Display process command-line arguments
cmdscan - Extract command history by scanning for _COMMAND_HISTORY
connections - Print list of open connections [Windows XP and 2003 Only]
connscan - Pool scanner for tcp connections
consoles - Extract command history by scanning for _CONSOLE_INFORMATION
crashinfo - Dump crash-dump information
deskscan - Poolscaner for tagDESKTOP (desktops)
devicetree - Show device tree
dlldump - Dump DLLs from a process address space
dlllist - Print list of loaded dlls for each process
driverirp - Driver IRP hook detection
drivermodule - Associate driver objects to kernel modules
driverscan - Pool scanner for driver objects
dumpcerts - Dump RSA private and public SSL keys
dumpfiles - Extract memory mapped and cached files
dumpregistry - Dumps registry files out to disk
editbox - Displays information about Edit controls. (Listbox experimental.)
envars - Display process environment variables
eventhooks - Print details on windows event hooks
evtlogs - Extract Windows Event Logs (XP/2003 only)
filescan - Pool scanner for file objects
gahti - Dump the USER handle type information
gditimers - Print installed GDI timers and callbacks
gdt - Display Global Descriptor Table
getservicesids - Get the names of services in the Registry and return Calculated SID
getsids - Print the SIDs owning each process
handles - Print list of open handles for each process
hashdump - Dumps passwords hashes (LM/NTLM) from memory
hibinfo - Dump hibernation file information
hivedump - Prints out a hive
hivelist - Print list of registry hives.
hivescan - Pool scanner for registry hives
hpakextract - Extract physical memory from an HPAK file
hpakinfo - Info on an HPAK file
idt - Display Interrupt Descriptor Table
iehistory - Reconstruct Internet Explorer cache / history
imagecopy - Copies a physical address space out as a raw DD image
imageinfo - Identify information for the image
impscan - Scan for calls to imported functions
joblinks - Print process job link information
kdbgscan - Search for and dump potential KDBG values
kpcrscan - Search for and dump potential KPCR values
ldrmodules - Detect unlinked DLLs
limeinfo - Dump Lime file format information
linux_apihooks - Checks for userland apihooks
linux_arp - Print the ARP table
linux_aslr_shift - Automatically detect the Linux ASLR shift
linux_banner - Prints the Linux banner information
linux_bash - Recover bash history from bash process memory
linux_bash_env - Recover a process' dynamic environment variables
linux_bash_hash - Recover bash hash table from bash process memory
linux_check_afinfo - Verifies the operation function pointers of network protocols
linux_check_creds - Checks if any processes are sharing credential structures
linux_check_evt_arm - Checks the Exception Vector Table to look for syscall table hooking
linux_check_fop - Check file operation structures for rootkit modifications
linux_check_idt - Checks if the IDT has been altered
linux_check_inline_kernel - Check for inline kernel hooks
linux_check_modules - Compares module list to sysfs info, if available
linux_check_syscall - Checks if the system call table has been altered
linux_check_syscall_arm - Checks if the system call table has been altered
linux_check_tty - Checks tty devices for hooks
linux_cpuinfo - Prints info about each active processor
linux_dentry_cache - Gather files from the dentry cache
linux_dmesg - Gather dmesg buffer
linux_dump_map - Writes selected memory mappings to disk
linux_dynamic_env - Recover a process' dynamic environment variables
linux_elfs - Find ELF binaries in process mappings
linux_enumerate_files - Lists files referenced by the filesystem cache
linux_find_file - Lists and recovers files from memory
linux_getcwd - Lists current working directory of each process
linux_hidden_modules - Carves memory to find hidden kernel modules
linux_ifconfig - Gathers active interfaces
linux_info_regs - It's like 'info registers' in GDB. It prints out all the
linux_iomem - Provides output similar to /proc/iomem
linux_kernel_opened_files - Lists files that are opened from within the kernel
linux_keyboard_notifiers - Parses the keyboard notifier call chain
linux_ldrmodules - Compares the output of proc maps with the list of libraries from libdl
linux_library_list - Lists libraries loaded into a process
linux_librarydump - Dumps shared libraries in process memory to disk
linux_list_raw - List applications with promiscuous sockets
linux_lsmod - Gather loaded kernel modules
linux_lsof - Lists file descriptors and their path
linux_malfind - Looks for suspicious process mappings
linux_memmap - Dumps the memory map for linux tasks
linux_moddump - Extract loaded kernel modules
linux_mount - Gather mounted fs/devices
linux_mount_cache - Gather mounted fs/devices from kmem_cache
linux_netfilter - Lists Netfilter hooks
linux_netscan - Carves for network connection structures
linux_netstat - Lists open sockets
linux_pidhashtable - Enumerates processes through the PID hash table
linux_pkt_queues - Writes per-process packet queues out to disk
linux_plthook - Scan ELF binaries' PLT for hooks to non-NEEDED images
linux_proc_maps - Gathers process memory maps
linux_proc_maps_rb - Gathers process maps for linux through the mappings red-black tree
linux_procdump - Dumps a process's executable image to disk
linux_process_hollow - Checks for signs of process hollowing
linux_psaux - Gathers processes along with full command line and start time
linux_psenv - Gathers processes along with their static environment variables
linux_pslist - Gather active tasks by walking the task_struct->task list
linux_pslist_cache - Gather tasks from the kmem_cache
linux_psscan - Scan physical memory for processes
linux_pstree - Shows the parent/child relationship between processes
linux_psxview - Find hidden processes with various process listings
linux_recover_filesystem - Recovers the entire cached file system from memory
linux_route_cache - Recovers the routing cache from memory
linux_sk_buff_cache - Recovers packets from the sk_buff kmem_cache
linux_slabinfo - Mimics /proc/slabinfo on a running machine
linux_strings - Match physical offsets to virtual addresses (may take a while, VERY verbose)
linux_threads - Prints threads of processes
linux_tmpfs - Recovers tmpfs filesystems from memory
linux_truecrypt_passphrase - Recovers cached Truecrypt passphrases
linux_vma_cache - Gather VMAs from the vm_area_struct cache
linux_volshell - Shell in the memory image
linux_yarascan - A shell in the Linux memory image
lsadump - Dump (decrypted) LSA secrets from the registry
mac_adium - Lists Adium messages
mac_apihooks - Checks for API hooks in processes
mac_apihooks_kernel - Checks to see if system call and kernel functions are hooked
mac_arp - Prints the arp table
mac_bash - Recover bash history from bash process memory
mac_bash_env - Recover bash's environment variables
mac_bash_hash - Recover bash hash table from bash process memory
mac_calendar - Gets calendar events from Calendar.app
mac_check_fop - Validate File Operation Pointers
mac_check_mig_table - Lists entires in the kernel's MIG table
mac_check_syscall_shadow - Looks for shadow system call tables
mac_check_syscalls - Checks to see if system call table entries are hooked
mac_check_sysctl - Checks for unknown sysctl handlers
mac_check_trap_table - Checks to see if mach trap table entries are hooked
mac_compressed_swap - Prints Mac OS X VM compressor stats and dumps all compressed pages
mac_contacts - Gets contact names from Contacts.app
mac_dead_procs - Prints terminated/de-allocated processes
mac_dead_sockets - Prints terminated/de-allocated network sockets
mac_dead_vnodes - Lists freed vnode structures
mac_devfs - Lists files in the file cache
mac_dmesg - Prints the kernel debug buffer
mac_dump_file - Dumps a specified file
mac_dump_maps - Dumps memory ranges of process(es), optionally including pages in compressed swap
mac_dyld_maps - Gets memory maps of processes from dyld data structures
mac_find_aslr_shift - Find the ASLR shift value for 10.8+ images
mac_get_profile - Automatically detect Mac profiles
mac_ifconfig - Lists network interface information for all devices
mac_interest_handlers - Lists IOKit Interest Handlers
mac_ip_filters - Reports any hooked IP filters
mac_kernel_classes - Lists loaded c++ classes in the kernel
mac_kevents - Show parent/child relationship of processes
mac_keychaindump - Recovers possbile keychain keys. Use chainbreaker to open related keychain files
mac_ldrmodules - Compares the output of proc maps with the list of libraries from libdl
mac_librarydump - Dumps the executable of a process
mac_list_files - Lists files in the file cache
mac_list_kauth_listeners - Lists Kauth Scope listeners
mac_list_kauth_scopes - Lists Kauth Scopes and their status
mac_list_raw - List applications with promiscuous sockets
mac_list_sessions - Enumerates sessions
mac_list_zones - Prints active zones
mac_lsmod - Lists loaded kernel modules
mac_lsmod_iokit - Lists loaded kernel modules through IOkit
mac_lsmod_kext_map - Lists loaded kernel modules
mac_lsof - Lists per-process opened files
mac_machine_info - Prints machine information about the sample
mac_malfind - Looks for suspicious process mappings
mac_memdump - Dump addressable memory pages to a file
mac_moddump - Writes the specified kernel extension to disk
mac_mount - Prints mounted device information
mac_netstat - Lists active per-process network connections
mac_network_conns - Lists network connections from kernel network structures
mac_notesapp - Finds contents of Notes messages
mac_notifiers - Detects rootkits that add hooks into I/O Kit (e.g. LogKext)
mac_orphan_threads - Lists threads that don't map back to known modules/processes
mac_pgrp_hash_table - Walks the process group hash table
mac_pid_hash_table - Walks the pid hash table
mac_print_boot_cmdline - Prints kernel boot arguments
mac_proc_maps - Gets memory maps of processes
mac_procdump - Dumps the executable of a process
mac_psaux - Prints processes with arguments in user land (**argv)
mac_psenv - Prints processes with environment in user land (**envp)
mac_pslist - List Running Processes
mac_pstree - Show parent/child relationship of processes
mac_psxview - Find hidden processes with various process listings
mac_recover_filesystem - Recover the cached filesystem
mac_route - Prints the routing table
mac_socket_filters - Reports socket filters
mac_strings - Match physical offsets to virtual addresses (may take a while, VERY verbose)
mac_tasks - List Active Tasks
mac_threads - List Process Threads
mac_threads_simple - Lists threads along with their start time and priority
mac_timers - Reports timers set by kernel drivers
mac_trustedbsd - Lists malicious trustedbsd policies
mac_version - Prints the Mac version
mac_vfsevents - Lists processes filtering file system events
mac_volshell - Shell in the memory image
mac_yarascan - Scan memory for yara signatures
machoinfo - Dump Mach-O file format information
malfind - Find hidden and injected code
mbrparser - Scans for and parses potential Master Boot Records (MBRs)
memdump - Dump the addressable memory for a process
memmap - Print the memory map
messagehooks - List desktop and thread window message hooks
mftparser - Scans for and parses potential MFT entries
moddump - Dump a kernel driver to an executable file sample
modscan - Pool scanner for kernel modules
modules - Print list of loaded modules
multiscan - Scan for various objects at once
mutantscan - Pool scanner for mutex objects
netscan - Scan a Vista (or later) image for connections and sockets
notepad - List currently displayed notepad text
objtypescan - Scan for Windows object type objects
patcher - Patches memory based on page scans
poolpeek - Configurable pool scanner plugin
pooltracker - Show a summary of pool tag usage
printkey - Print a registry key, and its subkeys and values
privs - Display process privileges
procdump - Dump a process to an executable file sample
pslist - Print all running processes by following the EPROCESS lists
psscan - Pool scanner for process objects
pstree - Print process list as a tree
psxview - Find hidden processes with various process listings
qemuinfo - Dump Qemu information
raw2dmp - Converts a physical memory sample to a windbg crash dump
screenshot - Save a pseudo-screenshot based on GDI windows
servicediff - List Windows services (ala Plugx)
sessions - List details on _MM_SESSION_SPACE (user logon sessions)
shellbags - Prints ShellBags info
shimcache - Parses the Application Compatibility Shim Cache registry key
shutdowntime - Print ShutdownTime of machine from registry
sockets - Print list of open sockets
sockscan - Pool scanner for tcp socket objects
ssdt - Display SSDT entries
strings - Match physical offsets to virtual addresses (may take a while, VERY verbose)
svcscan - Scan for Windows services
symlinkscan - Pool scanner for symlink objects
thrdscan - Pool scanner for thread objects
threads - Investigate _ETHREAD and _KTHREADs
timeliner - Creates a timeline from various artifacts in memory
timers - Print kernel timers and associated module DPCs
truecryptmaster - Recover TrueCrypt 7.1a Master Keys
truecryptpassphrase - TrueCrypt Cached Passphrase Finder
truecryptsummary - TrueCrypt Summary
unloadedmodules - Print list of unloaded modules
userassist - Print userassist registry keys and information
userhandles - Dump the USER handle tables
vaddump - Dumps out the vad sections to a file
vadinfo - Dump the VAD info
vadtree - Walk the VAD tree and display in tree format
vadwalk - Walk the VAD tree
vboxinfo - Dump virtualbox information
verinfo - Prints out the version information from PE images
vmwareinfo - Dump VMware VMSS/VMSN information
volshell - Shell in the memory image
win10cookie - Find the ObHeaderCookie value for Windows 10
windows - Print Desktop Windows (verbose details)
wintree - Print Z-Order Desktop Windows Tree
wndscan - Pool scanner for window stations
yarascan - Scan process or kernel memory with Yara signatures


Scanner Checks
--------------
CheckPoolSize - Check pool block size
CheckPoolType - Check the pool type
KPCRScannerCheck - Checks the self referential pointers to find KPCRs
MultiPrefixFinderCheck - Checks for multiple strings per page, finishing at the offset
MultiStringFinderCheck - Checks for multiple strings per page
PoolTagCheck - This scanner checks for the occurance of a pool tag
中文
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
Volatility Foundation Volatility Framework 2.6

Profiles
--------
VistaSP0x64 - Windows Vista SP0 x64 的配置文件
VistaSP0x86 - Windows Vista SP0 x86 的配置文件
VistaSP1x64 - Windows Vista SP1 x64 的配置文件
VistaSP1x86 - Windows Vista SP1 x86 的配置文件
VistaSP2x64 - Windows Vista SP1 x86 的配置文件
VistaSP2x86 - Windows Vista SP2 x64 的配置文件
Win10x64 - Windows 10 x64 的配置文件
Win10x64_10586 - Windows 10 x64 的配置文件 (10.0.10586.306 / 2016-04-23)
Win10x64_14393 - Windows 10 x64 的配置文件 (10.0.14393.0 / 2016-07-16)
Win10x86 - Windows 10 x86 的配置文件
Win10x86_10586 - Windows 10 x86 的配置文件 (10.0.10586.420 / 2016-05-28)
Win10x86_14393 - Windows 10 x86 的配置文件 (10.0.14393.0 / 2016-07-16)
Win2003SP0x86 - Windows 2003 SP0 x86 的配置文件
Win2003SP1x64 - Windows 2003 SP0 x86 的配置文件
Win2003SP1x86 - Windows 2003 SP1 x86 的配置文件
Win2003SP2x64 - Windows 2003 SP1 x86 的配置文件
Win2003SP2x86 - Windows 2003 SP2 x86 的配置文件
Win2008R2SP0x64 - Windows 2008 R2 SP0 x64 的配置文件
Win2008R2SP1x64 - Windows 2008 R2 SP1 x64 的配置文件
Win2008R2SP1x64_23418 - Windows 2008 R2 SP1 x64 的配置文件 (6.1.7601.23418 / 2016-04-09)
Win2008SP1x64 - Windows 2008 SP1 x64 的配置文件
Win2008SP1x86 - Windows 2008 SP1 x86 的配置文件
Win2008SP2x64 - Windows 2008 SP2 x64 的配置文件
Win2008SP2x86 - Windows 2008 SP2 x86 的配置文件
Win2012R2x64 - Windows Server 2012 R2 x64 的配置文件
Win2012R2x64_18340 - Windows Server 2012 R2 x64 的配置文件 (6.3.9600.18340 / 2016-05-13)
Win2012x64 - Windows Server 2012 x64 的配置文件
Win2016x64_14393 - Windows Server 2016 x64 的配置文件 (10.0.14393.0 / 2016-07-16)
Win7SP0x64 - Windows 7 SP0 x64 的配置文件
Win7SP0x86 - Windows 7 SP0 x86 的配置文件
Win7SP1x64 - Windows 7 SP1 x64 的配置文件
Win7SP1x64_23418 - Windows 7 SP1 x64 的配置文件 (6.1.7601.23418 / 2016-04-09)
Win7SP1x86 - Windows 7 SP1 x86 的配置文件
Win7SP1x86_23418 - Windows 7 SP1 x86 的配置文件 (6.1.7601.23418 / 2016-04-09)
Win81U1x64 - Windows 8.1 更新 1 x64 的配置文件
Win81U1x86 - Windows 8.1 更新 1 x86 的配置文件
Win8SP0x64 - Windows 8 x64 的配置文件
Win8SP0x86 - Windows 8 x86 的配置文件
Win8SP1x64 - Windows 8.1 x64 的配置文件
Win8SP1x64_18340 - Windows 8.1 x64 的配置文件 (6.3.9600.18340 / 2016-05-13)
Win8SP1x86 - Windows 8.1 x86 的配置文件
WinXPSP1x64 - Windows XP SP1 x64 的配置文件
WinXPSP2x64 - Windows XP SP2 x64 的配置文件
WinXPSP2x86 - Windows XP SP2 x86 的配置文件
WinXPSP3x86 - Windows XP SP3 x86 的配置文件


Address Spaces
--------------
AMD64PagedMemory - 标准 AMD 64 位地址空间
ArmAddressSpace - ARM 处理器的地址空间
FileAddressSpace - 这是一个直接文件 AS.
HPAKAddressSpace - 此 AS 支持 HPAK 格式
IA32PagedMemory - 标准 IA-32 分页地址空间
IA32PagedMemoryPae - 此类实现 IA-32 PAE 分页地址空间
LimeAddressSpace - Lime 的地址空间
LinuxAMD64PagedMemory - Linux 特定的 AMD 64 位地址空间
MachOAddressSpace - mach-o 文件的地址空间以支持 atc-ny 内存读取器
OSXPmemELF - 这个 AS 支持 VirtualBox ELF64 coredump 格式
QemuCoreDumpElf - 这个 AS 支持 Qemu ELF32 和 ELF64 核心转储格式
VMWareAddressSpace - 此 AS 支持 VMware 快照 (VMSS) 和保存状态 (VMSS) 文件
VMWareMetaAddressSpace - 此 AS 支持带有 VMSN/VMSS 元数据的 VMEM 格式
VirtualBoxCoreDumpElf64 - 这个 AS 支持 VirtualBox ELF64 coredump 格式
Win10AMD64PagedMemory - Windows 10 特定的 AMD 64 位地址空间
WindowsAMD64PagedMemory - Windows 特定的 AMD 64 位地址空间
WindowsCrashDumpSpace32 - 这个 AS 支持 windows 崩溃转储格式
WindowsCrashDumpSpace64 - 此 AS 支持 windows Crash Dump 格式
WindowsCrashDumpSpace64BitMap - 此 AS 支持 Windows BitMap Crash Dump 格式
WindowsHiberFileSpace32 - 这是 Windows 休眠文件的休眠地址空间


Plugins
-------
amcache - 打印 AmCache 信息
apihooks - 检测进程和内核内存中的 API 挂钩
atoms - 打印会话和窗口站原子表
atomscan - 原子表的池扫描器
auditpol - 从 HKLM\SECURITY\Policy\PolAdtEv 打印出审计策略
bigpools - 使用 BigPagePoolScanner 转储大页面池
bioskbd - 从实模式内存中读取键盘缓冲区
cachedump - 从内存中转储缓存的域哈希
callbacks - 打印系统范围的通知例程
clipboard - 提取 Windows 剪贴板的内容
cmdline - 显示进程命令行参数
cmdscan - 通过扫描 _COMMAND_HISTORY 来提取命令历史记录
connections - 打印打开的连接列表 [仅限 Windows XP 和 2003]
connscan - 用于 tcp 连接的池扫描器
consoles - 通过扫描 _CONSOLE_INFORMATION 提取命令历史记录
crashinfo - 转储崩溃转储信息
deskscan - tagDESKTOP(台式机)的 Poolscaner
devicetree - 显示设备树
dlldump - 从进程地址空间转储 DLL
dlllist - 打印每个进程加载的 dll 列表
driverirp - 驱动程序 IRP 挂钩检测
drivermodule - 将驱动程序对象关联到内核模块
driverscan - 驱动程序对象的池扫描器
dumpcerts - 转储 RSA 私有和公共 SSL 密钥
dumpfiles - 提取内存映射和缓存文件
dumpregistry - 将注册表文件转储到磁盘
editbox - 显示有关编辑控件的信息(列表框实验)
envars - 显示进程环境变量
eventhooks - 在 Windows 事件挂钩上打印详细信息
evtlogs - 提取 Windows 事件日志(仅限 XP/2003)
filescan - 文件对象的池扫描器
gahti - 转储 USER 句柄类型信息
gditimers - 打印已安装的 GDI 计时器和回调
gdt - 显示全局描述符表
getservicesids - 获取 Registry 中的服务名称并返回计算的 SID
getsids - 打印拥有每个进程的 SID
handles - 打印每个进程的打开句柄列表
hashdump - 从内存中转储密码哈希 (LM/NTLM)
hibinfo - 转储休眠文件信息
hivedump - 打印注册表
hivelist - 打印注册表配置单元列表
hivescan - 注册表配置单元的池扫描程序
hpakextract - 从 HPAK 文件中提取物理内存
hpakinfo - 有关 HPAK 文件的信息
idt - 显示中断描述符表
iehistory - 重建 Internet Explorer 缓存/历史
imagecopy - 将物理地址空间复制为原始 DD 映像
imageinfo - 识别图像的信息
impscan - 扫描对导入函数的调用
joblinks - 打印进程作业链接信息
kdbgscan - 搜索和转储潜在的 KDBG 值
kpcrscan - 搜索和转储潜在的 KPCR 值
ldrmodules - 检测未链接的 DLL
limeinfo - 转储 Lime 文件格式信息
linux_apihooks - 检查用户态 apihooks
linux_arp - 打印 ARP 表
linux_aslr_shift - 自动检测 Linux ASLR shift
linux_banner - 打印 Linux 横幅信息
linux_bash - 从 bash 进程内存中恢复 bash 历史记录
linux_bash_env - 恢复进程的动态环境变量
linux_bash_hash - 从 bash 进程内存中恢复 bash 哈希表
linux_check_afinfo - 验证网络协议的操作函数指针
linux_check_creds - 检查是否有进程共享凭证结构
linux_check_evt_arm - 检查异常向量表以查找系统调用表挂钩
linux_check_fop - 检查 rootkit 修改的文件操作结构
linux_check_idt - 检查 IDT 是否已被更改
linux_check_inline_kernel - 检查内联内核挂钩
linux_check_modules - 将模块列表与 sysfs 信息进行比较(如果可用)
linux_check_syscall - 检查系统调用表是否已更改
linux_check_syscall_arm - 检查系统调用表是否已更改
linux_check_tty - 检查 tty 设备的钩子
linux_cpuinfo - 打印每个活动处理器的信息
linux_dentry_cache - 从 dentry 缓存中收集文件
linux_dmesg - 收集 dmesg 缓冲区
linux_dump_map - 将选定的内存映射写入磁盘
linux_dynamic_env - 恢复进程的动态环境变量
linux_elfs - 在进程映射中查找 ELF 二进制文件
linux_enumerate_files - 列出文件系统缓存引用的文件
linux_find_file - 列出并从内存中恢复文件
linux_getcwd - 列出每个进程的当前工作目录
linux_hidden_modules - 雕刻内存以查找隐藏的内核模块
linux_ifconfig - 收集活动接口
linux_info_regs - 就像 GDB 中的“信息寄存器”。 它打印出所有
linux_iomem - 提供类似于 /proc/iomem 的输出
linux_kernel_opened_files - 列出从内核中打开的文件
linux_keyboard_notifiers - 解析键盘通知器调用链
linux_ldrmodules - 将 proc 映射的输出与 libdl 中的库列表进行比较
linux_library_list - 列出加载到进程中的库
linux_librarydump - 将进程内存中的共享库转储到磁盘
linux_list_raw - 列出具有混杂套接字的应用程序
linux_lsmod - 收集加载的内核模块
linux_lsof - 列出文件描述符及其路径
linux_malfind - 寻找可疑的进程映射
linux_memmap - 转储 linux 任务的内存映射
linux_moddump - 提取加载的内核模块
linux_mount - 收集挂载的 fs/devices
linux_mount_cache - 从 kmem_cache收集挂载的 fs/devices
linux_netfilter - 列出 Netfilter 钩子
linux_netscan - 雕刻网络连接结构
linux_netstat - 列出打开的套接字
linux_pidhashtable - 通过 PID 哈希表枚举进程
linux_pkt_queues - 将每个进程的数据包队列写入磁盘
linux_plthook - 扫描 ELF 二进制文件的 PLT 以获取非需要图像的挂钩
linux_proc_maps - 收集进程内存映射
linux_proc_maps_rb - 通过映射红黑树为 linux 收集进程映射
linux_procdump - 将进程的可执行映像转储到磁盘
linux_process_hollow - 检查进程空心的迹象
linux_psaux - 收集进程以及完整的命令行和开始时间
linux_psenv - 收集进程及其静态环境变量
linux_pslist - 通过遍历 task_struct->task 列表来收集活动任务
linux_pslist_cache - 从 kmem_cache 收集任务
linux_psscan - 扫描进程的物理内存
linux_pstree - 显示进程之间的父/子关系
linux_psxview - 使用各种进程列表查找隐藏进程
linux_recover_filesystem - 从内存中恢复整个缓存文件系统
linux_route_cache - 从内存中恢复路由缓存
linux_sk_buff_cache - 从 sk_buff kmem_cache 中恢复数据包
linux_slabinfo - 在运行的机器上模拟 /proc/slabinfo
linux_strings - 将物理偏移量与虚拟地址匹配(可能需要一段时间,非常冗长)
linux_threads - 打印进程的线程
linux_tmpfs - 从内存中恢复 tmpfs 文件系统
linux_truecrypt_passphrase - 恢复缓存的 Truecrypt 密码
linux_vma_cache - 从 vm_area_struct 缓存中收集 VMA
linux_volshell - 内存映像中的 Shell
linux_yarascan - Linux 内存映像中的 shell
lsadump - 从注册表中转储(解密的)LSA 机密
mac_adium - 列出 Adium 消息
mac_apihooks - 检查进程中的 API 挂钩
mac_apihooks_kernel - 检查系统调用和内核函数是否被挂钩
mac_arp - 打印 arp 表
mac_bash - 从 bash 进程内存中恢复 bash 历史记录
mac_bash_env - 恢复 bash 的环境变量
mac_bash_hash - 从 bash 进程内存中恢复 bash 哈希表
mac_calendar - 从 Calendar.app 获取日历事件
mac_check_fop - 验证文件操作指针
mac_check_mig_table - 列出内核 MIG 表中的整体
mac_check_syscall_shadow - 查找影子系统调用表
mac_check_syscalls - 检查系统调用表条目是否被挂钩
mac_check_sysctl - 检查未知的 sysctl 处理程序
mac_check_trap_table - 检查 mach 陷阱表条目是否被钩住
mac_compressed_swap - 打印 Mac OS X VM 压缩器统计数据并转储所有压缩页面
mac_contacts - 从 Contacts.app 获取联系人姓名
mac_dead_procs - 打印终止/取消分配的进程
mac_dead_sockets - 打印终止/取消分配的网络套接字
mac_dead_vnodes - 列出释放的 vnode 结构
mac_devfs - 列出文件缓存中的文件
mac_dmesg - 打印内核调试缓冲区
mac_dump_file - 转储指定文件
mac_dump_maps - 转储进程的内存范围,可选地包括压缩交换中的页面
mac_dyld_maps - 从 dyld 数据结构中获取进程的内存映射
mac_find_aslr_shift - 查找 10.8+ 图像的 ASLR 移位值
mac_get_profile - 自动检测 Mac 配置文件
mac_ifconfig - 列出所有设备的网络接口信息
mac_interest_handlers - 列出 IOKit 兴趣处理程序
mac_ip_filters - 报告任何挂钩的 IP 过滤器
mac_kernel_classes - 列出内核中加载的 c++ 类
mac_kevents - 显示进程的父/子关系
mac_keychaindump - 恢复可能的钥匙串密钥。 使用chainbreaker打开相关的keychain文件
mac_ldrmodules - 将 proc 映射的输出与 libdl 中的库列表进行比较
mac_librarydump - 转储进程的可执行文件
mac_list_files - 列出文件缓存中的文件
mac_list_kauth_listeners - 列出 Kauth Scope 监听器
mac_list_kauth_scopes - 列出 Kauth 范围及其状态
mac_list_raw - 列出具有混杂套接字的应用程序
mac_list_sessions - 枚举会话
mac_list_zones - 打印活动区域
mac_lsmod - 列出加载的内核模块
mac_lsmod_iokit - 列出通过 IOkit 加载的内核模块
mac_lsmod_kext_map - 列出加载的内核模块
mac_lsof - 列出每个进程打开的文件
mac_machine_info - 打印有关样本的机器信息
mac_malfind - 寻找可疑的进程映射
mac_memdump - 将可寻址内存页转储到文件中
mac_moddump - 将指定的内核扩展写入磁盘
mac_mount - 打印挂载的设备信息
mac_netstat - 列出每个进程的活动网络连接
mac_network_conns - 列出来自内核网络结构的网络连接
mac_notesapp - 查找 Notes 消息的内容
mac_notifiers - 检测将钩子添加到 I/O 工具包中的 rootkit(例如 LogKext)
mac_orphan_threads - 列出不映射回已知模块/进程的线程
mac_pgrp_hash_table - 遍历进程组哈希表
mac_pid_hash_table - 遍历 pid 哈希表
mac_print_boot_cmdline - 打印内核启动参数
mac_proc_maps - 获取进程的内存映射
mac_procdump - 转储进程的可执行文件
mac_psaux - 在用户区打印带有参数的进程 (**argv)
mac_psenv - 在用户空间打印带有环境的进程 (**envp)
mac_pslist - 列出正在运行的进程
mac_pstree - 显示进程的父/子关系
mac_psxview - 使用各种进程列表查找隐藏进程
mac_recover_filesystem - 恢复缓存的文件系统
mac_route - 打印路由表
mac_socket_filters - 报告套接字过滤器
mac_strings - 将物理偏移量与虚拟地址匹配(可能需要一段时间,非常冗长)
mac_tasks - 列出活动任务
mac_threads - 列出进程线程
mac_threads_simple - 列出线程及其开始时间和优先级
mac_timers - 报告内核驱动程序设置的定时器
mac_trustedbsd - 列出恶意的trustedbsd 策略
mac_version - 打印 Mac 版本
mac_vfsevents - 列出过滤文件系统事件的进程
mac_volshell - 内存映像中的外壳
mac_yarascan - 扫描内存中的 yara 签名
machoinfo - 转储 Mach-O 文件格式信息
malfind - 查找隐藏和注入的代码
mbrparser - 扫描并解析潜在的主引导记录 (MBR)
memdump - 转储进程的可寻址内存
memmap - 打印内存映射
messagehooks - 列出桌面和线程窗口消息挂钩
mftparser - 扫描并解析潜在的 MFT 条目
moddump - 将内核驱动程序转储到可执行文件示例
modscan - 内核模块的池扫描器
modules - 打印加载模块的列表
multiscan - 一次扫描各种对象
mutantscan - 互斥对象的池扫描器
netscan - 扫描 Vista(或更高版本)图像的连接和套接字
notepad - 列出当前显示的记事本文本
objtypescan - 扫描 Windows 对象类型对象
patcher - 基于页面扫描修补内存
poolpeek - 可配置的池扫描器插件
pooltracker - 显示池标签使用的摘要
printkey - 打印注册表项及其子项和值
privs - 显示进程权限
procdump - 将进程转储到可执行文件示例
pslist - 按照 EPROCESS 列表打印所有正在运行的进程
psscan - 进程对象的池扫描器
pstree - 将进程列表打印为树
psxview - 使用各种进程列表查找隐藏进程
qemuinfo - 转储 Qemu 信息
raw2dmp - 将物理内存样本转换为 windbg 故障转储
screenshot - 保存基于 GDI 窗口的伪截图
servicediff - 列出 Windows 服务(ala Plugx)
sessions - 列出 _MM_SESSION_SPACE 的详细信息(用户登录会话)
shellbags - 打印 ShellBags 信息
shimcache - 解析应用程序兼容性 Shim Cache 注册表项
shutdowntime - 从注册表打印机器的 ShutdownTime
sockets - 打印打开的套接字列表
sockscan - tcp 套接字对象的池扫描器
ssdt - 显示 SSDT 条目
strings - 将物理偏移量与虚拟地址匹配(可能需要一段时间,非常冗长)
svcscan - 扫描 Windows 服务
symlinkscan - 符号链接对象的池扫描器
thrdscan - 线程对象的池扫描器
threads - 调查 _ETHREAD 和 _KTHREADs
timeliner - 从内存中的各种工件创建时间线
timers - 打印内核定时器和相关的模块 DPC
truecryptmaster - 恢复 TrueCrypt 7.1a 主密钥
truecryptpassphrase - TrueCrypt 缓存密码短语查找器
truecryptsummary - TrueCrypt 总结
unloadedmodules - 打印已卸载模块的列表
userassist - 打印 userassist 注册表项和信息
userhandles - 转储 USER 句柄表
vaddump - 将 vad 部分转储到文件中
vadinfo - 转储 VAD 信息
vadtree - 遍历 VAD 树并以树格式显示
vadwalk - 走 VAD 树
vboxinfo - 转储 virtualbox 信息
verinfo - 从 PE 图像中打印出版本信息
vmwareinfo - 转储 VMware VMSS/VMSN 信息
volshell - 内存映像中的 Shell
win10cookie - 查找 Windows 10 的 ObHeaderCookie 值
windows - 打印桌面窗口(详细信息)
wintree - 打印Z顺序桌面Windows树
wndscan - 用于窗口站的池扫描仪
yarascan - 使用 Yara 签名扫描进程或内核内存


Scanner Checks
--------------
CheckPoolSize - 检查池块大小
CheckPoolType - 检查池类型
KPCRScannerCheck - 检查自引用指针以查找KPCR
MultiPrefixFinderCheck - 每页检查多个字符串,在偏移处完成
MultiStringFinderCheck - 每页检查多个字符串
PoolTagCheck - 此扫描程序检查池标记的出现

命令使用方法

1
2
volatility -f [image] --profile=[profile] [plugin]
volatility -f [对象] --profile=[操作系统] [插件参数]

ps:需要注意的在下面的操作开启之前需要分析系统信息,

镜像信息

命令imageinfo即可获取镜像信息。

1
Volatility -f xxx.vmem imageinfo

在查到操作系统后如果不确定可以使用以下命令查看

1
2
volatility -f xxx.vmem --profile= [操作系统] volshell
#volshell 内存镜像中的shel

如果能找到对应的系统类型,volshell会得到镜像中的shell信息,如果没有就进不去

确定操作系统就可以利用插件去分析

查看镜像所使用的系统版本信息。版本信息为x.x.x-xx-generic 系统XXXX

1
volatility -f 1.vmem banner

clipboard

提取Windows剪贴板中的内容,查看剪贴板信息clipboard

1
volatility -f 1.vmem --profile=Win7SP1x64 clipboard

cmdline

显示进程命令行参数

1
volatility -f 1.vmem --profile=Win7SP1x64 cmdline

cmdscan

提取执行的命令行历史记录(扫描_COMMAND_HISTORY信息),可用于查看终端记录

1
volatility -f 1.vmem --profile=Win7SP1x64 cmdscan

connections

打印系统打开的网络连接(仅支持Windows XP 和2003)

1
volatility -f 1.vmem --profile=Win7SP1x64 connections

connscan

打印TCP连接信息,查看网络连接connscan

1
volatility -f 1.vmem --profile=Win7SP1x64 connscan

consoles

提取执行的命令行历史记录(扫描_CONSOLE_INFORMATION信息)

1
volatility -f 1.vmem --profile=Win7SP1x64 consoles

dlllist

打印每个进程加载的动态链接库列表,列出某一进程加载的所有dll文件dlllist

列出某一进程加载的所有dll文件,需要指定进程-p [pid]

1
volatility -f 1.vmem --profile=Win7SP1x64 dlllist -p 2588

dumpfiles

提取内存中映射或缓存的文件,查看文件内容dumpfiles

需要指定偏移量-Q和输出目录-D,dumpfiles:导出某一文件(指定虚拟地址)

1
volatility -f 1.vmem --profile=Win7SP1x64 dumpfiles -Q 0xxxxxxxx -D ./

editbox

查看Edit编辑控件信息,显示有关编辑控件(曾经编辑过的内容)的信息,查看内存中记事本的内容

1
volatility -f 1.vmem --profile=Win7SP1x64 editbox

envars

显示进程的环境变量,查看环境变量envars

1
volatility -f 1.vmem --profile=Win7SP1x64 envars

filescan

提取文件对象(file objects)池信息

1
volatility -f 1.vmem --profile=Win7SP1x64 filescan

linux配合 grep 命令进行相关字符定向扫描,如:grep flag、grep -E ‘png|jpg|gif|zip|rar|7z|pdf|txt|doc’

1
2
volatility -f 1.vmem --profile=Win7SP1x64 filescan grep "flag.txt"
cat system.txt|grep -i computername

hashdump

转储内存中的Windows帐户密码哈希(LM/NTLM),查看用户名密码信息(密码是哈希值,需要john爆破)

1
volatility -f 1.vmem --profile=Win7SP1x64 hashdump

查看当前操作系统中的password hash,例如Windows的SAM文件内容(mimikatz插件可以获取系统明文密码)

hivedump

打印注册表配置单元信息,查看注册表键名hivedmp

1
volatility -f 1.vmem --profile=Win7SP1x64 hivedump -o 0xfffff8a001032410

hivelist

打印注册表配置单元列表,查看注册表配置单元hivelist

列出所有的注册表项及其虚拟地址和物理地址

1
volatility -f 1.vmem --profile=Win7SP1x64 hivelist

iehistory

重建IE缓存及访问历史记录,查看浏览器历史记录,获取当前系统浏览器搜索过的关键词

1
volatility -f 1.vmem --profile=Win7SP1x64 iehistory

imageinfo

查看/识别镜像信息

1
Volatility -f xxx.vmem imageinfo

memdump

转储进程的可寻址内存,提取出指定进程,常用foremost 来分离里面的文件

1
volatility -f 1.vmem --profile=Win7SP1x64 memdump -p xxx --dump-dir=./

需要指定进程-p [pid] 和输出目录 -D

1
memdump -p 332 -D XX/   

提取进程 -p 进程号 -D 当前输出路径(导出为332.dmp)

dump出来的进程文件,可以使用 foremost 来分离里面的文件,用 binwak -e 不推荐

1
strings -e l 2040.dmp | grep flag 查找flag

mftparser

扫描并解析潜在的MFT条目,恢复被删除的文件mftparser,恢复被删除的文件

1
volatility -f 1.vmem --profile=Win7SP1x64 mftparser

notepad

查看记事本当前显示的文本,查看当前展示的notepad内容 notepad

1
volatility -f 1.vmem --profile=Win7SP1x64 notepad

ps:查看当前展示的 notepad 文本(–profile=winxp啥的低版本可以,win7的不行,可以尝试使用editbox)

printkey

打印注册表项及其子项和值

1
volatility -f 1.vmem –profile=Win7SP1x64 printkey -K “SAM\Domains\Account\Users\Names”
  • 查看注册表键值
1
volatility -f 1.vmem --profile=Win7SP1x64 printkey -K "ControlSet001\Control\ComputerName\ComputerName"
  • 获取主机名
1
volatility -f 1.vmem --profile=Win7SP1x64 printkey -K "ControlSet001\Control\ComputerName\ComputerName"
  • 列出用户名
1
volatility -f 1.vmem --profile=Win7SP1x64 printkey -K "SAM\Domains\Account\Users\Names"

pslist

按照EPROCESS列表打印所有正在运行的进程

pslist:该插件列举出系统进程,但它不能检测到隐藏或者解链的进程,psscan可以

  • 查看进程
1
volatility -f 1.vmem --profile=Win7SP1x64 pslist
  • 查看已知进程
1
volatility -f 1.vmem --profile=Win7SP1x64 pslist -p 2588

psscan

进程对象池扫描,隐藏或解链的进程

1
volatility -f 1.vmem --profile=Win7SP1x64 psscan

psscan:可以找到先前已终止(不活动)的进程以及被rootkit隐藏或解链的进程

pstree

以树型方式打印进程列表,查看进程树,可以轻松了解各进程之间的关系:父进程与子进程 pstree

1
volatility -f 2008.raw –profile=Win2008R2SP1x64 pstree

在进程中PPID比PID还大,那就可能这个进程有异常程序

screenshot

基于GDI Windows的虚拟屏幕截图保存,保存基于GDI窗口的伪截屏,屏幕截图screenshot

1
volatility -f 1.vmem --profile=Win7SP1x64 screenshot --dump-dir=./

shimcache

解析应用程序兼容性Shim缓存注册表项,从内存文件中找到异常程序植入到系统的开机自启痕迹 shimcache

1
volatility -f 2008.raw –profile=Win2008R2SP1x64 shimcache

svcscan

Windows服务列表扫描,查看服务查询服务名称,扫描 Windows 的服务

1
volatility -f 1.vmem --profile=Win7SP1x64 svcscan

timeliner

创建内存中的各种痕迹信息的时间线,最大程序提取信息timeliner,将所有操作系统事件以时间线的方式展开

1
volatility -f 1.vmem --profile=Win7SP1x64 timeliner

userassist

打印注册表中UserAssist相关信息。查看运行程序相关的记录,比如最后一次更新时间,运行过的次数等。serassist

1
volatility -f 1.vmem --profile=Win7SP1x64 userassist

verinfo

打印PE镜像中的版本信息,程序版本信息 verinfo,列出PE|程序版本信息

1
volatility -f 1.vmem --profile=Win7SP1x64 verinfo

volshell

内存镜像中的shell

1
2
volatility -f xxx.vmem --profile= [操作系统] volshell
#volshell 内存镜像中的shel

如果能找到对应的系统类型,volshell会得到镜像中的shell信息,如果没有就进不去

没有的部分

lsadmp

查看用户名密码信息(密码是哈希值,需要john爆破) hashdump

1
volatility -f 1.vmem --profile=Win7SP1x64 hashdump

查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容(mimikatz插件可以获取系统明文密码)

如果john爆破不出来,就使用 lasdmp 查看强密码 lsadmp

1
volatility -f 1.vmem --profile=Win7SP1x64 lsadump

netscan

查看网络连接 获取当前系统 ip,有一些版本 这个命令是使用不了 这里我们就要使用(connscan,connections)

1
volatility -f 1.vmem --profile=Win7SP1x64 netscan

systeminfo

显示关于计算机及其操作系统的详细配置信息(插件)systeminfo

1
volatility -f 1.vmem --profile=Win7SP1x64 systeminfo

其他的速查表

参数 作用
apihooks 检测内核及进程的内存空间中的API hook
atoms 列出会话及窗口站atom表
atomscan Atom表的池扫描(Pool scanner)
auditpol 列出注册表HKLMSECURITYPolicyPolAdtEv的审计策略信息
bigpools 使用BigPagePoolScanner转储大分页池(big page pools)
bioskbd 从实时模式内存中读取键盘缓冲数据(早期电脑可以读取出BIOS开机密码)
cachedump 获取内存中缓存的域帐号的密码哈希
callbacks 打印全系统通知例程
crashinfo 提取崩溃转储信息
deskscan tagDESKTOP池扫描(Poolscaner)
devicetree 显示设备树信息
dlldump 从进程地址空间转储动态链接库
driverirp IRP hook驱动检测
drivermodule 关联驱动对象至内核模块
driverscan 驱动对象池扫描
dumpcerts 提取RAS私钥及SSL公钥
dumpregistry 转储内存中注册表信息至磁盘
eventhooks 打印Windows事件hook详细信息
evtlogs 提取Windows事件日志(仅支持XP/2003)
gahti 转储用户句柄(handle)类型信息
gditimers 打印已安装的GDI计时器(timers)及回调(callbacks)
gdt 显示全局描述符表(Global Deor Table)
getservicesids 获取注册表中的服务名称并返回SID信息
getsids 打印每个进程的SID信息
handles 打印每个进程打开的句柄的列表
hivescan 注册表配置单元池扫描
hpakextract 从HPAK文件(Fast Dump格式)提取物理内存数据
hpakinfo 查看HPAK文件属性及相关信息
idt 显示中断描述符表(Interrupt Deor Table)
hibinfo 转储休眠文件信息
imagecopy 将物理地址空间导出原生DD镜像文件
impscan 扫描对导入函数的调用
joblinks 打印进程任务链接信息
kdbgscan 搜索和转储潜在KDBG值
kpcrscan 搜索和转储潜在KPCR值
ldrmodules 检测未链接的动态链接DLL
lsadump 从注册表中提取LSA密钥信息(已解密)
machoinfo 转储Mach-O 文件格式信息
malfind 查找隐藏的和插入的代码
mbrparser 扫描并解析潜在的主引导记录(MBR)
memmap 打印内存映射
messagehooks 桌面和窗口消息钩子的线程列表
moddump 转储内核驱动程序到可执行文件的示例
modscan 内核模块池扫描
modules 打印加载模块的列表
multiscan 批量扫描各种对象
mutantscan 对互斥对象池扫描
objtypescan 扫描窗口对象类型对象
patcher 基于页面扫描的补丁程序内存
poolpeek 可配置的池扫描器插件
privs 显示进程权限
procdump 进程转储到一个可执行文件示例
psxview 查找带有隐藏进程的所有进程列表
qemuinfo 转储 Qemu 信息
raw2dmp 将物理内存原生数据转换为windbg崩溃转储格式
servicediff Windows服务列表(ala Plugx)
sessions _MM_SESSION_SPACE的详细信息列表(用户登录会话)
shellbags 打印Shellbags信息
shutdowntime 从内存中的注册表信息获取机器关机时间
sockets 打印已打开套接字列表
sockscan TCP套接字对象池扫描
ssdt 显示SSDT条目
strings 物理到虚拟地址的偏移匹配(需要一些时间,带详细信息)
timers 打印内核计时器及关联模块的DPC
truecryptmaster Recover 恢复TrueCrypt 7.1a主密钥
truecryptpassphrase 查找并提取TrueCrypt密码
truecryptsummary TrueCrypt摘要信息
unloadedmodules 打印卸载的模块信息列表
userhandles 转储用户句柄表
vaddump 转储VAD数据为文件
vadinfo 转储VAD信息
vadtree 以树形方式显示VAD树信息
vadwalk 显示遍历VAD树
vboxinfo 转储Virtualbox信息(虚拟机)
windows 打印桌面窗口(详细信息)
wintree 顺序打印桌面窗口树
wndscan 池扫描窗口站
yarascan 以Yara签名扫描进程或内核内存
vmwareinfo 转储VMware VMSS/VMSN 信息
symlinkscan 符号链接对象池扫描
thrdscan 线程对象池扫描
threads 调查_ETHREAD 和_KTHREADs

volatility制作profile

https://mp.weixin.qq.com/s/dbHGBzjcMoF8aPqIkCN_Fg

2022祥云杯

首先使用Linux命令提取出系统的内核版本信息

1
strings 1.mem|grep Linux |grep generic

得到结果

1
Linux 5.4.0-84-generic Ubuntu 18.04.6 LTS

内核版本信息:Linux 5.4.0-84-generic,系统版本信息:Ubuntu 18.04.6 LTS。

如果不知道系统版本只能靠猜测和经验。

1
2
3
4
5
└─$ docker pull ubuntu
└─$ docker images
└─$ docker run -itd -P rocm/dev-ubuntu-18.04:latest
└─$ docker ps
└─$ docker exec -it f7 /bin/bash

此处需要注意的是:如果发现docker里面的内核版本太高了,可能需要用iso构建基础镜像

ps查看有没有合适的内核版本可以使用命令:

1
apt search linux |grep generic |grep headers

此处发现docker搭建的版本普遍比虚拟机里的高一截,所以换成了iso构建的基础镜像

下载指定版本的内核

可以进入到Ubuntu的系统中然后可以看到/boot没有东西

1
2
3
ls /boot/
apt search linux |grep generic |grep headers
apt install -y linux-headers-5.4.0-84-generic linux-image-5.4.0-84-generic dwarfdump build-essential

命令执行等待一段时间之后可以发现在/boot目录中多了几个文件:System.map-5.4.0-84-generic

然后把volatility2下载到该机器中

1
2
3
git clone https://github.com/volatilityfoundation/volatility.git
cd volatility/tools/linux #此处ls可以看到Makefile
make

此处可以发现可能存在错误,导致make失败

需要替换module,c文件中的信息

1
2
3
sed -i 's/$(shell uname -r)/5.4.0-84-generic/g' Makefile
echo 'MODULE_LICENSE("GPL");' >> module.c
make

可以看到生成了一个module.dwarf文件

此时我们可以把上述的两个文件:/boot/volatility/tools/linuxmodule.dwarf和/boot/System.map-5.4.0-84-generic打包

1
zip ubuntu.zip /boot/volatility/tools/linux/module.dwarf /boot/System.map-5.4.0-84-generic

使用自定义profile

  • 复制之前查看已有的profile信息
1
vol.py  --info | grep Linux

可以看到只有一个pronfile信息

在复制之前可以查看镜像的imageinfo信息,但是可以看到需要等待很久

  • 复制之后

将压缩包复制到需要取证的机器的volatility目录下

可以将文件复制到XXX/volatility-python/volatility/plugins/overlays/linux目录下

此处有坑,如果使用了volatility提供的setup.py将vol.py注册成系统命令后就会发现出入信息

可以发现此处可以使用命令执行取证操作了

查看进程信息和文件:

1
2
python2 vol.py -f 1.mem --profile=LinuxUbuntu_5_4_0-84-generic_profilex64 linux_enumerate_files | grep 'Desktop'
python2 vol.py -f 1.mem --profile=LinuxUbuntu_5_4_0-84-generic_profilex64 linux_pslist

查看历史执行的命令,历史记录

1
python2 vol.py -f 1.mem --profile=LinuxUbuntu_5_4_0-84-generic_profilex64 linux_bash

进程和完整的命令行和开始时间:

1
2
python2 vol.py -f 1.mem --profile=LinuxUbuntu_5_4_0-84-generic_profilex64 linux_psaux 
python2 vol.py -f 1.mem --profile=LinuxUbuntu_5_4_0-84-generic_profilex64 linux_psaux |grep zip

列出文件位置,ps:有点慢

1
python2 vol.py -f 1.mem --profile=LinuxUbuntu_5_4_0-84-generic_profilex64 linux_find_file  -F "/home/bob/Desktop/secret.zip"

尝试恢复文件

1
python2 vol.py -f 1.mem --profile=LinuxUbuntu_5_4_0-84-generic_profilex64 linux_find_file -i 0xffff97ce37a94568 -O /home/t/secret.zip

同理提取指定文件

1
2
python2 vol.py -f 1.mem --profile=LinuxUbuntu_5_4_0-84-generic_profilex64 linux_find_file  -F "/etc/shadow"
python2 vol.py -f 1.mem --profile=LinuxUbuntu_5_4_0-84-generic_profilex64 linux_find_file -i 上一步16进制 -O 输出保存的位置

上面的命令可能需要使用windows执行。

veracryto

使用veracryto挂载镜像文件,选择盘符,选择文件点击加载,在弹出的框中输入密码

1
2
此处镜像文件可以是vmdk\bin\tar\mem等,需要密码信息
注意的是同一个加密磁盘文件可以使用不同的密码挂载,挂载后的文件不一样

挂载成功之后可以看到本地多了一个盘符,可以看到里面的文件信息

FTK

使用FTK挂载文件,镜像路径不要出现中文,将Mount Method 设置为Writable,点击Mount,就可以看到多余的盘符信息。