内存取证神器volalitity学习资源指南

admin 2024年12月11日00:41:29评论38 views字数 21469阅读71分33秒阅读模式
 在学习volalitity的过程中,发现国内相关资源还是很有限的,并且没有一个综合的使用教程,一般都是指令不全或者没有其他的使用介绍(如添加插件,手动制作profile等),所以我在学习的过程中把用到的资源整理了一下,方便大家学习,如果有问题,欢迎各位师傅一起讨论。相关工具已经放入每日一练的工具箱里

对于使用volalitity的建议和常见问题:

    建议1.在进行内存取证的时候将vol2和vol3进行结合使用,vol2能弥补3插件不足,3能弥补2的速度慢,但在做题的过程中,需要两个结合使用。

    建议2.在搭建环境的时候,最好将linux和windows的环境都配置好,如果能有一台linux机器配置的话更好,但是更建议使用wsl来实现双系统的vol使用,尤其将Linux的一些管道指令用在输出结果中,有奇效。

常见问题1.在配置linux的python2的时候可以看这个:kali linux 中python2不带pip的解决方法python2没有pip程序员届的小白菜的博客-CSDN博客

常见问题2.没有Python.h库,要安装相应的python环境,可以看这个:解决fatal error: Python.h: No such file or directory报错_呆萌的代Ma的博客-CSDN博客

常见问题3.没有Crypto.Hash库文件,在python中,Crypto库是pycrypto,使用方法可以看:今日排错---开发者平台加签pthon报错修复 - 骁珺在努力 - 博客园

vol官方的插件

  • GitHub - volatilityfoundation/volatility: An advanced memory forensics framework

vol的下载地址

  • Release Downloads | Volatility Foundation

vol2和vol3各种指令对比

  • https://book.hacktricks.xyz/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet

vol2的常用指令

  • 内存取证-volatility工具的使用 (史上更全教程,更全命令)_路baby的博客-CSDN博客

vol2的各种外置插件

  • volatility2各类外部插件使用简介volatility插件Blus.King的博客-CSDN博客

手动添加profile

  • Linux内存取证制作Volatility的专属profile - 简书

可以解析mac和linux内存的插件

vol2:

  • https://github.com/volatilityfoundation/profiles

vol3:

  • https://downloads.volatilityfoundation.org/volatility3/symbols/windows.zip

  • https://downloads.volatilityfoundation.org/volatility3/symbols/mac.zip

  • https://downloads.volatilityfoundation.org/volatility3/symbols/linux.zip

本文对上面网站内容进行翻译和整理,整合出了下面的Volalitity的使用指南

Volalitity的使用指南

1.操作系统信息查看

vol2:

./vol.py -f file.dmp imageinfo

vol3:

./vol.py -f file.dmp windows.info.Info

在 vol3 中可以使用插件 banners.Banners 尝试在转储文件中找到 Linux 系统的标识信息。

2.哈希值/密码提取: SAM 哈希、域缓存凭据和 LSA 密码

vol2:

./vol.py --profile=Win7SP1x86_23418 hashdump -f file.dmp #获取常见的 Windows 哈希(SAM+SYSTEM)./vol.py --profile=Win7SP1x86_23418 cachedump -f file.dmp #提取注册表中的域缓存哈希./vol.py --profile=Win7SP1x86_23418 lsadump -f file.dmp #提取 LSA 密码

vol3:

./vol.py -f file.dmp windows.hashdump.Hashdump #获取常见的 Windows 哈希(SAM+SYSTEM)./vol.py -f file.dmp windows.cachedump.Cachedump #提取注册表中的域缓存哈希./vol.py -f file.dmp windows.lsadump.Lsadump #提取 LSA 密码

3.内存转储

vol2:

./vol.py -f file.dmp --profile=Win7SP1x86 memdump -p 2168 -D conhost/

进程的内存转储将提取进程当前状态的所有内容。而 procdump 模块只会提取代码。

4.进程信息

列出进程

尝试查找可疑进程(通过名称)或意外的子进程(例如,cmd.exe 作为 iexplorer.exe 的子进程)。将 pslist 的结果与 psscan 的结果进行比较,以识别隐藏的进程。

vol2:

volatility --profile=PROFILE pstree -f file.dmp # 获取进程树(非隐藏)volatility --profile=PROFILE pslist -f file.dmp # 获取进程列表(EPROCESS)volatility --profile=PROFILE psscan -f file.dmp # 获取隐藏进程列表(恶意软件)volatility --profile=PROFILE psxview -f file.dmp # 获取隐藏进程列表

vol3:

python3 vol.py -f file.dmp windows.pstree.PsTree # 获取进程树(非隐藏)python3 vol.py -f file.dmp windows.pslist.PsList # 获取进程列表(EPROCESS)python3 vol.py -f file.dmp windows.psscan.PsScan # 获取隐藏进程列表(恶意软件)
转储进程

vol2:

volatility --profile=Win7SP1x86_23418 procdump --pid=3152 -n --dump-dir=. -f file.dmp

vol3:

./vol.py -f file.dmp windows.dumpfiles.DumpFiles --pid <pid> #Dump the .exe and dlls of the process in the current directory
命令行

vol2:

volatility --profile=PROFILE cmdline -f file.dmp # 显示进程命令行参数volatility --profile=PROFILE consoles -f file.dmp # 通过扫描 _CONSOLE_INFORMATION 获取命令历史

vol3:

python3 vol.py -f file.dmp windows.cmdline.CmdLine # 显示进程命令行参数

cmd.exe 中执行的命令由 **conhost.exe**(或者在 Windows 7 之前的系统中是 csrss.exe)管理。这意味着,如果 **cmd.exe** 被攻击者在获取内存转储之前终止,仍然可以从 **conhost.exe** 的内存中恢复该会话的命令历史。为此,如果检测到控制台模块中的异常活动,应转储与之关联的 **conhost.exe** 进程的内存。然后,通过在此转储中搜索字符串,可以提取会话中使用的命令行。

环境变量

获取每个正在运行的进程的环境变量。

vol2:

volatility --profile=PROFILE envars -f file.dmp [--pid <pid>] # 显示进程的环境变量volatility --profile=PROFILE -f file.dmp linux_psenv [-p <pid>] # 获取进程的环境变量。runlevel 变量表示进程启动时的运行级别

vol3:

python3 vol.py -f file.dmp windows.envars.Envars [--pid <pid>] # 显示进程的环境变量
Token privileges

检查意外服务中的权限令牌。列出使用某些权限令牌的进程。

vol2:

# 获取某些进程的启用权限volatility --profile=Win7SP1x86_23418 privs --pid=3152 -f file.dmp | grep Enabled# 获取所有具有权限的进程volatility --profile=Win7SP1x86_23418 privs -f file.dmp | grep "SeImpersonatePrivilege|SeAssignPrimaryPrivilege|SeTcbPrivilege|SeBackupPrivilege|SeRestorePrivilege|SeCreateTokenPrivilege|SeLoadDriverPrivilege|SeTakeOwnershipPrivilege|SeDebugPrivilege"

vol3:

# 获取某些进程的启用权限python3 vol.py -f file.dmp windows.privileges.Privs [--pid <pid>]# 获取所有具有权限的进程python3 vol.py -f file.dmp windows.privileges.Privs | grep "SeImpersonatePrivilege|SeAssignPrimaryPrivilege|SeTcbPrivilege|SeBackupPrivilege|SeRestorePrivilege|SeCreateTokenPrivilege|SeLoadDriverPrivilege|SeTakeOwnershipPrivilege|SeDebugPrivilege"
SIDs

检查每个进程拥有的 SSID。列出使用权限 SID(或使用某些服务 SID)的进程。

vol2:

volatility --profile=Win7SP1x86_23418 getsids -f file.dmp # 获取每个进程拥有的 SIDvolatility --profile=Win7SP1x86_23418 getservicesids -f file.dmp # 获取每个服务的 SID

vol3:

./vol.py -f file.dmp windows.getsids.GetSIDs [--pid <pid>] # 获取进程的 SID./vol.py -f file.dmp windows.getservicesids.GetServiceSIDs # 获取服务的 SID
句柄

了解进程拥有的句柄(已打开的文件、注册表项、线程、进程等)。

vol2:

volatility --profile=Win7SP1x86_23418 -f file.dmp handles [--pid=<pid>]

vol3:

vol.py -f file.dmp windows.handles.Handles [--pid <pid>]
DLLs

vol2:

volatility --profile=Win7SP1x86_23418 dlllist --pid=3152 -f file.dmp # 获取进程使用的 dllsvolatility --profile=Win7SP1x86_23418 dlldump --pid=3152 --dump-dir=. -f file.dmp # 转储进程使用的 dlls

vol3:

./vol.py -f file.dmp windows.dlllist.DllList [--pid <pid>] # 列出每个进程使用的 dlls./vol.py -f file.dmp windows.dumpfiles.DumpFiles --pid <pid> # 转储进程的 .exe 和 dll 文件到当前目录
按进程查看字符串

Volatility 可以检查字符串属于哪个进程。

vol2:

strings file.dmp > /tmp/strings.txtvolatility -f /tmp/file.dmp windows.strings.Strings --string-file /tmp/strings.txtvolatility -f /tmp/file.dmp --profile=Win81U1x64 memdump -p 3532 --dump-dir .strings 3532.dmp > strings_file

vol3:

strings file.dmp > /tmp/strings.txt./vol.py -f /tmp/file.dmp windows.strings.Strings --strings-file /tmp/strings.txt

它还允许使用 yarascan 模块在进程中搜索字符串:

vol2:

volatility --profile=Win7SP1x86_23418 yarascan -Y "https://" -p 3692,3840,3976,3312,3084,2784

vol3:

./vol.py -f file.dmp windows.vadyarascan.VadYaraScan --yara-rules "https://" --pid 3692 3840 3976 3312 3084 2784./vol.py -f file.dmp yarascan.YaraScan --yara-rules "https://"
UserAssist

Windows 使用注册表中的 UserAssist 键 追踪你运行过的程序。这些键记录每个程序执行的次数以及最后一次运行的时间。

vol2:

volatility --profile=Win7SP1x86_23418 -f file.dmp userassist

vol3:

./vol.py -f file.dmp windows.registry.userassist.UserAssist

5.服务

vol2:

# 获取服务和二进制路径volatility --profile=Win7SP1x86_23418 svcscan -f file.dmp# 获取服务的名称和SID(较慢)volatility --profile=Win7SP1x86_23418 getservicesids -f file.dmp

vol3:

./vol.py -f file.dmp windows.svcscan.SvcScan # 列出服务./vol.py -f file.dmp windows.getservicesids.GetServiceSIDs # 获取服务的SID

6.网络

vol2:

volatility --profile=Win7SP1x86_23418 netscan -f file.dmpvolatility --profile=Win7SP1x86_23418 connections -f file.dmp # XP 和 2003 仅适用volatility --profile=Win7SP1x86_23418 connscan -f file.dmp # TCP 连接volatility --profile=Win7SP1x86_23418 sockscan -f file.dmp # 打开的套接字volatility --profile=Win7SP1x86_23418 sockets -f file.dmp # 扫描 TCP 套接字对象volatility --profile=SomeLinux -f file.dmp linux_ifconfigvolatility --profile=SomeLinux -f file.dmp linux_netstatvolatility --profile=SomeLinux -f file.dmp linux_netfiltervolatility --profile=SomeLinux -f file.dmp linux_arp # ARP 表volatility --profile=SomeLinux -f file.dmp linux_list_raw # 使用混杂模式原始套接字的进程(进程间通信)volatility --profile=SomeLinux -f file.dmp linux_route_cache

vol3:

./vol.py -f file.dmp windows.netscan.NetScan

7. 注册表

打印可用的注册表 Hive

vol2:

volatility --profile=Win7SP1x86_23418 -f file.dmp hivelist # 列出根项volatility --profile=Win7SP1x86_23418 -f file.dmp printkey # 列出根项并获取初始子项

vol3:

./vol.py -f file.dmp windows.registry.hivelist.HiveList # 列出根项./vol.py -f file.dmp windows.registry.printkey.PrintKey # 列出根项并获取初始子项
获取一个注册表值

vol2:

volatility --profile=Win7SP1x86_23418 printkey -K "SoftwareMicrosoftWindows NTCurrentVersion" -f file.dmp# 获取“运行”二进制注册表值volatility -f file.dmp --profile=Win7SP1x86 printkey -o 0x9670e9d0 -K 'SoftwareMicrosoftWindowsCurrentVersionRun'

vol3:

./vol.py -f file.dmp windows.registry.printkey.PrintKey --key "SoftwareMicrosoftWindows NTCurrentVersion"
转储注册表

vol2:

# 转储一个 Hivevolatility --profile=Win7SP1x86_23418 hivedump -o 0x9aad6148 -f file.dmp # 从 hivelist 获取偏移量# 转储所有的 Hivevolatility --profile=Win7SP1x86_23418 hivedump -f file.dmp

vol3:

暂无

8. 文件系统

挂载

vol2:

volatility --profile=SomeLinux -f file.dmp linux_mountvolatility --profile=SomeLinux -f file.dmp linux_recover_filesystem # 如果可能,转储整个文件系统

vol3:

扫描/转储文件

vol2:

volatility --profile=Win7SP1x86_23418 filescan -f file.dmp # 扫描转储中的文件volatility --profile=Win7SP1x86_23418 dumpfiles -n --dump-dir=/tmp -f file.dmp # 转储所有文件volatility --profile=Win7SP1x86_23418 dumpfiles -n --dump-dir=/tmp -Q 0x000000007dcaa620 -f file.dmpvolatility --profile=SomeLinux -f file.dmp linux_enumerate_filesvolatility --profile=SomeLinux -f file.dmp linux_find_file -F /path/to/filevolatility --profile=SomeLinux -f file.dmp linux_find_file -i 0xINODENUMBER -O /path/to/dump/file

vol3:

./vol.py -f file.dmp windows.filescan.FileScan # 扫描转储中的文件./vol.py -f file.dmp windows.dumpfiles.DumpFiles --physaddr <0xAAAAA> # 从上一个命令获取的偏移地址
主文件表

vol2:

volatility --profile=Win7SP1x86_23418 mftparser -f file.dmp

vol3:

暂无

NTFS 文件系统使用一个关键组件,称为主文件表(MFT)。该表至少为每个文件提供一个条目,也包括 MFT 本身。每个文件的关键信息,如大小、时间戳、权限以及实际数据,通常会在 MFT 条目中或通过 MFT 条目引用的外部区域中封装。有关更多细节,可以参考官方文档

SSL 密钥/证书

vol2:

# vol2 允许从内存中搜索和转储证书# 此模块的选项包括:--pid, --name, --sslvolatility --profile=Win7SP1x86_23418 dumpcerts --dump-dir=. -f file.dmp

vol3:

# vol3 允许从注册表中搜索证书./vol.py -f file.dmp windows.registry.certificates.Certificates

下面内容来自:盘古石虎贲小队文章:https://mp.weixin.qq.com/s/Nzo0CnsbWVOiw1Nr8swpfg

9.加密容器解密

tc内存解密

使用volatility分析内存镜像来识别加密容器文件

Volatility是专门用于分析内存镜像的工具,在Volatility中,用于分析TrueCrypt的插件主要有三个:truecryptmaster、truecryptpassphrase、truecryptsummary。

Truecryptmaster:用于从内存镜像中恢复TrueCrypt 7.1a主密钥;

Truecryptpassphrase:用于从内存镜像中查找缓存密码;

Truecryptsummary:TrueCrypt摘要。

执行命令“volatility -f DESKTOP-D7AP30M-20200605-082800.raw --profile Win10x64_14393 truecryptsummary”如下图所示:

在上图中,不仅分析到了TrueCrypt的进程PID和加密容器文件路径、文件名,还可以分析出加密容器挂载的盘符和容器内的文件。

bitlocker解密

1)下载安装bitlocker.py

下载链接:https://github.com/tribalchicken/volatility-bitlocker

下载后将bitlocker.py放入kali虚拟机的/usr/lib/python2.7/dist-packages/volatility/plugins目录下。

2)下载安装bdemount

在kali里执行sudo add-apt-repository universe和sudo apt install libbde-utils即可自动完成bdemount的安装,安装后在命令行输入bdemount后会有返回。Bdemount的具体用法如下:

bdemount [-k keys] [-o offset] [-p password] [-r password] -s filename [-hvV] source

参数:

-k  密钥,例如:FVEK:TWEAK

-o  以字节为单位指定卷偏移

-p  指定密码

-r  指定恢复密码

-s  指定包含启动密钥的文件,该文件扩展名为.BEK

3)在kali里通过volatility与bitlocker.py插件提取内存镜像内的FVEK和TWEAK,执行命令 “volatility -f memdump.mem --profile=Win7SP1x64  bitlocker”,执行完成后科技获取到FVEK为:0d393d80bf512f5e501a8bfad3272965,TWEAK为:cf71859b45775123fcc1dad3007d1c41,如下图所示:

提取FVEK和TWEAK

4)使用bdemount命令挂载Bitlocker加密分区,执行命令“bdemount -k 0d393d80bf512f5e501a8bfad3272965:cf71859b45775123fcc1dad3007d1c41  D.dd ./crypt-1”,如下图所示:

挂载Bitlocker加密容器

5)通过bdemount挂载后,可在挂载点crypt-1下得到的文件bde1,这个文件是一个整体文件,需要二次挂载,执行命令“sudo mount.ntfs-3g -o loop,ro crypt-1/bde1  crypt-2/”即可挂载,因为Bitlocker是Windows自带加密容器,文件系统格式为NTFS,因此需要使用“mount.ntfs-3g”挂载,二次挂载后,在挂载点crypt2下就可以得到Bitlocker加密容器内的文件,如下图所示:

手动解密后的Bitlocker加密分区

6)至此,Bitlocker手动解密全部完成。

综上所示,我们在进行Bitlocker取证时,可以通过查看系统分区图标、签名标识“-FVE-FS-”和取证工具来识别Bitlocker加密容器。Bitlocker的取证主要可以通过密码解密、恢复密钥解密和内存镜像解密。

10.恶意软件分析

vol2:

volatility --profile=Win7SP1x86_23418 -f file.dmp malfind [-D /tmp] # 查找隐藏和注入的代码 [转储每个可疑部分]volatility --profile=Win7SP1x86_23418 -f file.dmp apihooks # 检测进程和内核内存中的 API 挂钩volatility --profile=Win7SP1x86_23418 -f file.dmp driverirp # 驱动 IRP 挂钩检测volatility --profile=Win7SP1x86_23418 -f file.dmp ssdt # 检查系统调用地址是否来自意外地址volatility --profile=SomeLinux -f file.dmp linux_check_afinfovolatility --profile=SomeLinux -f file.dmp linux_check_credsvolatility --profile=SomeLinux -f file.dmp linux_check_fopvolatility --profile=SomeLinux -f file.dmp linux_check_idtvolatility --profile=SomeLinux -f file.dmp linux_check_syscallvolatility --profile=SomeLinux -f file.dmp linux_check_modulesvolatility --profile=SomeLinux -f file.dmp linux_check_ttyvolatility --profile=SomeLinux -f file.dmp linux_keyboard_notifiers # 键盘记录器

vol3:

./vol.py -f file.dmp windows.malfind.Malfind [--dump] # 查找隐藏和注入的代码,[转储每个可疑部分]# Malfind 会搜索与恶意软件相关的可疑结构./vol.py -f file.dmp windows.driverirp.DriverIrp # 驱动 IRP 挂钩检测./vol.py -f file.dmp windows.ssdt.SSDT # 检查系统调用地址是否来自意外地址./vol.py -f file.dmp linux.check_afinfo.Check_afinfo # 验证网络协议的操作函数指针./vol.py -f file.dmp linux.check_creds.Check_creds # 检查是否有进程共享凭据结构./vol.py -f file.dmp linux.check_idt.Check_idt # 检查 IDT 是否已被修改./vol.py -f file.dmp linux.check_syscall.Check_syscall # 检查系统调用表是否有挂钩./vol.py -f file.dmp linux.check_modules.Check_modules # 比较模块列表与 sysfs 信息(如果可用)./vol.py -f file.dmp linux.tty_check.tty_check # 检查 tty 设备是否有挂钩
使用 YARA 扫描

使用此脚本从 GitHub 下载并合并所有 YARA 恶意软件规则:https://gist.github.com/andreafortuna/29c6ea48adf下面是安装方法

vol2:

wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.pymkdir rulespython malware_yara_rules.pyvolatility --profile=Win7SP1x86_23418 yarascan -y malware_rules.yar -f ch2.dmp | grep "Rule:" | grep -v "Str_Win32" | sort | uniq

vol3:

wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.pymkdir rulespython malware_yara_rules.py#Only Windows./vol.py -f file.dmp windows.vadyarascan.VadYaraScan --yara-file /tmp/malware_rules.yar#All./vol.py -f file.dmp yarascan.YaraScan --yara-file /tmp/malware_rules.yar

11. 其他工具

外部插件

如果您想使用外部插件,请确保插件文件夹是第一个参数。

vol2:

 volatilitye --plugins="/tmp/plugins/" [...]

vol3:

./vol.py --plugin-dirs "/tmp/plugins/" [...]

自动运行(Autoruns)

Download it from https://github.com/tomchop/volatility-autoruns

 volatility --plugins=volatility-autoruns/ --profile=WinXPSP2x86 -f file.dmp autoruns
互斥锁(Mutexes)

vol2:

volatility --profile=Win7SP1x86_23418 mutantscan -f file.dmpvolatility --profile=Win7SP1x86_23418 -f file.dmp handles -p <PID> -t mutant

vol3:

./vol.py -f file.dmp windows.mutantscan.MutantScan
符号链接(Symlinks)

vol2:

volatility --profile=Win7SP1x86_23418 -f file.dmp symlinkscan

vol3:

./vol.py -f file.dmp windows.symlinkscan.SymlinkScan
Bash 历史

可以 从内存中读取 Bash 历史。虽然您也可以转储 .bash_history 文件,但由于它被禁用,您可以使用此 Volatility 模块。

vol2:

volatility --profile=Win7SP1x86_23418 -f file.dmp linux_bash

vol3:

./vol.py -f file.dmp linux.bash.Bash
时间线(TimeLine)

vol2:

volatility --profile=Win7SP1x86_23418 -f timeliner

vol3:

./vol.py -f file.dmp timeLiner.TimeLiner
驱动程序(Drivers)

vol2:

volatility --profile=Win7SP1x86_23418 -f file.dmp driverscan

vol3:

./vol.py -f file.dmp windows.driverscan.DriverScan
获取剪贴板内容

vol2:

#Just vol2volatility --profile=Win7SP1x86_23418 clipboard -f file.dmp

vol3:

暂无
获取 Internet Explorer 历史

vol2:

#Just vol2volatility --profile=Win7SP1x86_23418 iehistory -f file.dmp

vol3:

暂无
获取记事本文本

vol2:

#Just vol2volatility --profile=Win7SP1x86_23418 notepad -f file.dmp

vol3:

暂无
截屏(Screenshot)

vol2:

#Just vol2volatility --profile=Win7SP1x86_23418 screenshot -f file.dmp

vol3:

暂无
主引导记录(MBR)

vol2:

volatility --profile=Win7SP1x86_23418 mbrparser -f file.dmp

vol3:

暂无

主引导记录(MBR) 在管理存储介质的逻辑分区中扮演着至关重要的角色。它不仅包含分区布局信息,还包含作为引导加载程序的可执行代码。该引导加载程序要么直接启动操作系统的二阶段加载过程(参见 二阶段引导加载程序),要么与每个分区的 卷引导记录(VBR)协同工作。如需深入了解,请参阅 MBR 维基页面

vol2默认插件一览

    amcache:输出 AmCache 信息    apihooks:检测进程和内核内存中的 API 钩子    atoms:打印会话和窗口工作站的原子表    atomscan:扫描原子表的内存池    auditpol:输出 HKLMSECURITYPolicyPolAdtEv 中的审计策略    bigpools:使用 BigPagePoolScanner 转储大页面池    bioskbd:从实模式内存读取键盘缓冲区    cachedump:从内存中转储域缓存哈希    callbacks:输出系统范围的通知例程    clipboard:提取 Windows 剪贴板内容    cmdline:显示进程的命令行参数    cmdscan:通过扫描 _COMMAND_HISTORY 提取命令历史    connections:输出开放连接列表(仅适用于 Windows XP 和 2003)    connscan:扫描 TCP 连接的内存池    consoles:通过扫描 _CONSOLE_INFORMATION 提取命令历史    crashinfo:转储崩溃转储信息    deskscan:扫描 tagDESKTOP(桌面)的内存池    devicetree:显示设备树    dlldump:从进程地址空间转储 DLL    dlllist:输出每个进程加载的 DLL 列表    driverirp:检测驱动 IRP 钩子    drivermodule:将驱动对象与内核模块关联    driverscan:扫描驱动对象的内存池    dumpcerts:转储 RSA 私钥和公钥 SSL 密钥    dumpfiles:提取内存映射和缓存文件    dumpregistry:将注册表文件转储到磁盘    editbox:显示编辑控件的信息(Listbox 实验性)    envars:显示进程的环境变量    eventhooks:输出 Windows 事件钩子的详细信息    evtlogs:提取 Windows 事件日志(仅限 XP/2003)    filescan:扫描文件对象的内存池    gahti:转储 USER 句柄类型信息    gditimers:输出已安装的 GDI 定时器和回调    gdt:显示全局描述符表    getservicesids:获取注册表中的服务名称并返回计算的 SID    getsids:输出拥有每个进程的 SID    handles:输出每个进程的开放句柄列表    hashdump:从内存中转储密码哈希(LM/NTLM)    hibinfo:转储休眠文件信息    hivedump:输出注册表 hive 信息    hivelist:输出注册表 hive 列表    hivescan:扫描注册表 hive 的内存池    hpakextract:从 HPAK 文件中提取物理内存    hpakinfo:输出 HPAK 文件的信息    idt:显示中断描述符表    iehistory:重建 Internet Explorer 缓存/历史记录    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:扫描 Windows 对象类型对象    patcher:基于页面扫描修补内存    poolpeek:可配置的内存池扫描插件    printkey:输出注册表键及其子键和值    privs:显示进程权限    procdump:转储进程到可执行文件样本    pslist:通过 EPROCESS 列表输出所有正在运行的进程    psscan:扫描进程对象的内存池    pstree:以树状显示进程列表    psxview:使用多种进程列表查找隐藏进程    qemuinfo:转储 Qemu 信息    raw2dmp:将物理内存样本转换为 windbg 崩溃转储    screenshot:根据 GDI 窗口保存伪截图    servicediff:列出 Windows 服务(类似 Plugx)    sessions:列出 _MM_SESSION_SPACE(用户登录会话)的详细信息    shellbags:输出 ShellBags 信息    shimcache:解析应用兼容性 Shim 缓存注册表键    shutdowntime:从注册表输出机器的关机时间    sockets:输出开放的套接字列表    sockscan:扫描 TCP 套接字对象的内存池    ssdt:显示 SSDT 条目    strings:将物理偏移与虚拟地址匹配(可能耗时,信息量大)    svcscan:扫描 Windows 服务    symlinkscan:扫描符号链接对象的内存池    thrdscan:扫描线程对象的内存池    threads:调查 _ETHREAD 和 _KTHREAD    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    windows:输出桌面窗口(详细信息)    wintree:输出 Z-Order 桌面窗口树    wndscan:扫描窗口工作站的内存池    yarascan:使用 Yara 签名扫描进程或内核内存

vol3默认插件一览

    banners.Banners:尝试在图像中识别潜在的 Linux 标识。    configwriter.ConfigWriter:运行自动化操作,并在输出目录中打印和输出配置。    frameworkinfo.FrameworkInfo:列出 Volatility 中各种模块组件的插件。    isfinfo.IsfInfo:确定当前可用的 ISF 文件的信息,或特定的文件信息。    layerwriter.LayerWriter:运行自动化操作并写出堆栈器产生的主层。    linux.bash.Bash:从内存中恢复 bash 命令历史记录。    linux.capabilities.Capabilities:列出进程的能力。    linux.check_afinfo.Check_afinfo:验证网络协议的操作函数指针。    linux.check_creds.Check_creds:检查是否有进程共享凭证结构。    linux.check_idt.Check_idt:检查 IDT(中断描述符表)是否被修改。    linux.check_modules.Check_modules:将模块列表与 sysfs 信息进行比较(如果可用)。    linux.check_syscall.Check_syscall:检查系统调用表中的挂钩。    linux.elfs.Elfs:列出所有进程的内存映射 ELF 文件。    linux.envars.Envars:列出进程及其环境变量。    linux.iomem.IOMem:生成类似于正在运行的系统中 /proc/iomem 的输出。    linux.keyboard_notifiers.Keyboard_notifiers:解析键盘通知回调链。    linux.kmsg.Kmsg:内核日志缓冲区读取器。    linux.library_list.LibraryList:枚举加载到进程中的库。    linux.lsmod.Lsmod:列出已加载的内核模块。    linux.lsof.Lsof:列出所有进程的内存映射。    linux.malfind.Malfind:列出可能包含注入代码的进程内存范围。    linux.mountinfo.MountInfo:列出进程的挂载命名空间中的挂载点。    linux.netfilter.Netfilter:列出 Netfilter 钩子。    linux.proc.Maps:列出所有进程的内存映射。    linux.psaux.PsAux:列出进程及其命令行参数。    linux.pslist.PsList:列出特定 Linux 内存映像中存在的进程。    linux.psscan.PsScan:扫描特定 Linux 映像中存在的进程。    linux.pstree.PsTree:基于父进程 ID 列出进程树的插件。    linux.sockstat.Sockstat:列出所有进程的网络连接。    linux.tty_check.tty_check:检查 tty 设备是否有钩子。    linux.vmayarascan.VmaYaraScan:扫描所有虚拟内存区域,使用 YARA 扫描任务。    mac.bash.Bash:从内存中恢复 bash 命令历史记录。    mac.check_syscall.Check_syscall:检查系统调用表中的挂钩。    mac.check_sysctl.Check_sysctl:检查 sysctl 处理程序中的挂钩。    mac.check_trap_table.Check_trap_table:检查 Mach trap 表中的挂钩。    mac.dmesg.Dmesg:打印内核日志缓冲区。    mac.ifconfig.Ifconfig:列出所有设备的网络接口信息。    mac.kauth_listeners.Kauth_listeners:列出 kauth 监听器及其状态。    mac.kauth_scopes.Kauth_scopes:列出 kauth 范围及其状态。    mac.kevents.Kevents:列出进程注册的事件处理程序。    mac.list_files.List_Files:列出所有进程的打开文件描述符。    mac.lsmod.Lsmod:列出已加载的内核模块。    mac.lsof.Lsof:列出所有进程的打开文件描述符。    mac.malfind.Malfind:列出可能包含注入代码的进程内存范围。    mac.mount.Mount:一个包含多个插件的模块,通常用于列出 Mac 的挂载命令数据。    mac.netstat.Netstat:列出所有进程的网络连接。    mac.proc_maps.Maps:列出进程内存范围,可能包含注入代码。    mac.psaux.Psaux:恢复程序命令行参数。    mac.pslist.PsList:列出特定 Mac 内存映像中存在的进程。    mac.pstree.PsTree:基于父进程 ID 列出进程树的插件。    mac.socket_filters.Socket_filters:枚举内核套接字过滤器。    mac.timers.Timers:检查恶意的内核定时器。    mac.trustedbsd.Trustedbsd:检查恶意的 trustedbsd 模块。    mac.vfsevents.VFSevents:列出过滤文件系统事件的进程。    timeliner.Timeliner:运行所有相关插件,提供按时间排序的时间相关信息。    vmscan.Vmscan:扫描 Intel VT-d 结构并为其生成虚拟机 Volatility 配置。    windows.bigpools.BigPools:列出大页池。    windows.cachedump.Cachedump:从内存中转储 LSA 密码。    windows.callbacks.Callbacks:列出内核回调和通知例程。    windows.cmdline.CmdLine:列出进程的命令行参数。    windows.crashinfo.Crashinfo:列出 Windows 崩溃转储中的信息。    windows.devicetree.DeviceTree:根据驱动程序和附加设备列出 Windows 内存映像中的树形结构。    windows.dlllist.DllList:列出 Windows 内存映像中加载的模块。    windows.driverirp.DriverIrp:列出 Windows 内存映像中驱动程序的 IRP。    windows.drivermodule.DriverModule:确定是否有加载的驱动程序被 rootkit 隐藏。    windows.driverscan.DriverScan:扫描特定 Windows 内存映像中的驱动程序。    windows.dumpfiles.DumpFiles:转储 Windows 内存样本中的缓存文件内容。    windows.envars.Envars:显示进程环境变量。    windows.filescan.FileScan:扫描特定 Windows 内存映像中的文件对象。    windows.getservicesids.GetServiceSIDs:列出进程令牌的 SID。    windows.getsids.GetSIDs:打印拥有每个进程的 SID。    windows.handles.Handles:列出进程的打开句柄。    windows.hashdump.Hashdump:从内存中转储用户哈希。    windows.hollowprocesses.HollowProcesses:列出空洞化的进程。    windows.iat.IAT:提取导入地址表(IAT),列出程序所使用的外部库中的 API(函数)。    windows.info.Info:显示内存样本的操作系统和内核详细信息。    windows.joblinks.JobLinks:打印进程的作业链接信息。       windows.kernelcallbacks.KernelCallbacks:列出 Windows 内核回调。    windows.kdbgscan.KDBGScan:扫描 Windows 内存映像中的 KDBG(内核调试符号)。    windows.malfind.Malfind:列出可能包含注入代码的进程内存范围。    windows.memmap.MemMap:显示进程的内存映射。    windows.mimikatz.Mimikatz:提取内存中存储的凭证。    windows.modules.Modules:列出 Windows 内存映像中加载的模块。    windows.netstat.Netstat:列出 Windows 网络连接。    windows.netscan.NetScan:扫描 Windows 网络连接。    windows.osinfo.OSInfo:显示操作系统的详细信息。    windows.pagedpool.PagedPool:列出 Windows 内存中的分页池。    windows.patches.Patches:列出 Windows 系统的补丁和更新信息。    windows.pefile.PEFile:解析 Windows 可执行文件(PE 文件)头信息。    windows.printspool.PrintSpool:列出 Windows 打印队列的详细信息。    windows.processinfo.ProcessInfo:列出 Windows 系统中所有进程的信息。    windows.procdump.ProcDump:转储 Windows 进程的内存。    windows.pslist.PsList:列出 Windows 内存映像中的进程。    windows.registry.Registry:列出 Windows 注册表的内容。    windows.regripper.RegRipper:使用注册表转储信息提取 Windows 配置。    windows.sockets.Sockets:列出 Windows 内存映像中的套接字。    windows.suspend.Suspend:暂停指定的进程。    windows.syscalls.Syscalls:列出 Windows 系统调用。    windows.tasks.Tasks:列出 Windows 内存映像中的任务。    windows.timers.Timers:列出 Windows 系统中的定时器。    windows.userhandles.UserHandles:列出 Windows 内存中的用户模式句柄。    windows.usbscan.UsbScan:扫描 Windows 系统中的 USB 设备。    windows.vadinfo.VADInfo:列出 Windows 内存映像中的虚拟地址区域(VAD)。    windows.volshell.VolShell:通过命令行与 Volatility 进行交互。    windows.win32k.Win32k:列出 Windows 图形和输入子系统的信息。

原文始发于微信公众号(金星路406取证人):内存取证神器volalitity学习资源指南

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月11日00:41:29
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   内存取证神器volalitity学习资源指南https://cn-sec.com/archives/3492281.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息