内存取证-volatility工具的使用 (史上更全教程,更全命令)_volatility内存取证

收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
img
img

如果你需要这些资料,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人

都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

	vaddump        	转储VAD数据为文件
	vadinfo        	转储VAD信息
	vadtree        	以树形方式显示VAD树信息
	vadwalk        	显示遍历VAD树
	vboxinfo       	转储Virtualbox信息(虚拟机)
	verinfo        	打印PE镜像中的版本信息
	vmwareinfo     	转储VMware VMSS/VMSN 信息
	volshell       	内存镜像中的shell
	windows        	打印桌面窗口(详细信息)
	wintree        	Z顺序打印桌面窗口树
	wndscan        	池扫描窗口站
	yarascan       	以Yara签名扫描进程或内核内存

输入**`vol.py --info`**可查看插件。


![](https://img-blog.csdnimg.cn/138d3cb32d3a4757bbc64ee5be3dc626.png)


翻译如下



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 - 此扫描程序检查池标记的出现


## ******五,命令格式******


****volatility -f [image] --profile=[profile] [plugin]****


****volatility -f [********对象********] --profil********e********=[********操作系统********] [********插件参数********]****


在分析之前,需要先判断当前的镜像信息,分析出是哪个操作系统 命令imageinfo即可获取镜像信息。


**Volatility -f xxx.vmem imageinfo** 


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


**volatility - f xxx.vmem --profile=** ****[********操作系统********]********volshell**** 


****举个例子 像这种什么都找不到 什么都****


![](https://img-blog.csdnimg.cn/a943713a6d084b5fa02310c4125a35eb.png)


 像这种就是合格的


## 


**当我们确定操作系统就可以利用插件去做题了**


## ****六,常用命令插件****


#### **❤******可以先查看当前内存镜像中的用户********printkey -K********“SAM\Domains\Account\Users\Names”****



> 
> ****v********olatility -f**** ****1.vmem********–profile=Win7SP1x64********printkey -K**** ****“SAM\Domains\Account\Users\Names”****
> 
> 
> 


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



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


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


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



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


#### **❤**查看进程****pslist****



> 
> ****volatility -f 1.vmem --profile=Win7SP1x64********pslist****
> 
> 
> 


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


#### **❤**查看已知********进程********pslist****



> 
> ****volatility -f**** ****1********.vmem --profile=Win7SP1x64********pslist -p 2588****
> 
> 
> 


#### **❤**隐藏或解链的进程****psscan****



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


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


#### **❤**查看服务********查询服务名称********svcscan****



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


****svcscan:扫描 Windows 的服务****


#### **❤**查看浏览器历史记录,********获取当前系统浏览器搜索过的关键词********iehistory****



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


#### **❤查看网络连接****获取当前系统 ip******netscan****



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


****有一些版本 这个命令是使用不了 这里我们就要使用(connscan,connections)****


#### **❤**查看网络连接****connscan****



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


****connscan:查看网络连接****


#### **❤**查看网络连接****conn********ections****



> 
> ****volatility -f 1.vmem --profile=Win7SP1x64********conn********ections****
> 
> 
> 


****conn********ections********:查看网络连接****


#### **❤**查看命令行操作,********显示cmd历史命令********cmdscan****



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


****cmdscan:可用于查看终端记录****


#### **❤**查看进程命令行参数(具体一些可疑进程的参数指令)cmdline



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


#### **❤**扫描所有的文件列表********filescan****



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


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


****例****


****volatility -f 1.vmem --profile=Win7SP1x64 filescan grep "flag.txt"****


****cat system.txt|grep**** ****-i computername****


#### **❤**查看文件内容****dmpfiles****



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


****需要指定偏移量 -Q 和输出目录 -D****


****dumpfiles:导出某一文件(指定虚拟地址)****


#### **❤**查看当前展示的notepad内容********notepad****



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


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


#### **❤**显示有关编辑控件(曾经编辑过的内容)的信息********editbox****



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


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


#### **❤**提取进程****memdump****



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


****memdump:提取出指定进程,常用foremost 来分离里面的文件**** 


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


memdump -p 332 -D XX/   


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


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


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



#### **❤**屏幕截图****screenshot****



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


****screenshot:保存基于GDI窗口的伪截屏**** 


#### **❤**查看注册表配置单元****hivelist****



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


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


#### **❤**查看注册表键名****hivedmp****



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


#### **❤**查看注册表键值****printkey****



> 
> ****volatility -f 1.vmem --profile=Win7SP1x64********printkey********-K********"ControlSet001\Control\ComputerName\ComputerName"****
> 
> 
> 


#### **❤ 获取主机名 printkey**



> 
> ****volatility -f 1.vmem --profile=Win7SP1x64**** ****printkey********-K********"ControlSet001\Control\ComputerName\ComputerName"****
> 
> 
> 


#### **❤列出用户名 pringkey**



> 
> ****volatility -f 1.vmem --profile=Win7SP1x64**** ****printkey********-K********"SAM\Domains\Account\Users\Names"****
> 
> 
> 


#### **❤**查看运行程序相关的记录,比如最后一次更新时间,运行过的次数等。****serassist****



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


#### **❤**最大程序提取信息****timeliner****



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


****timeliner: 将所有操作系统事件以时间线的方式展开****


#### **❤**查看剪贴板信息****clipboard****



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


****clipboard:查看剪贴板信息****


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



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


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


#### **❤**恢复被删除的文件****mftparser****



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


****mftparser:恢复被删除的文件****


#### **❤**查看环境变量****envars****



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


****envars:查看环境变量****


#### **❤**列出某一进程加载的所有dll文件****dlllist****



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


****dlllist: 列出某一进程加载的所有dll文件****


****需要指定进程-p [pid]****


#### **❤程序版本信息**verinfo****



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


****列出PE|程序版本信息**** 


#### **❤产看进程树,可以轻松了解各进程之间的关系:父进程与子进程******pstree****



> 
> ****volatility -f 2008.raw –profile=Win2008R2SP1x64**** ****pstree****
> 
> 
> 


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


#### **❤从内存文件中找到异常程序植入到系统的开机自启痕迹******shimcache****



> 
> ****volatility -f 2008.raw –profile=Win2008R2SP1x64**** ****shimcache****
> 
> 
> 


## 七,内存取证的大致思路



> 
> **首先确定镜像是何种操作系统的,命令imageinfo即可获取镜像信息。**
> 
> 
> **需要获取的是计算机在这一时刻运行了哪些进程。**
> 
> 
> **Volatility提供了众多的分析进程的命令,如pstree、pesscan、pslist……**
> 
> 
> **filescan命令可以对打开的文件进行扫描。**
> 
> 
> **命令dumpfile和memdump命令将相关数据导出,然后对导出的数据进行二进制分析。**
> 
> 
> **简单说只要熟悉Volatility工具的常用命令,并能够对结合其他类型的知识(图片隐写、压缩包分析等)对提取出的文件进行分析,便可轻松解决。**
> 
> 
> 
> **但当然具体问题具体分析吗  但插件就上面的**
> 
> 
> 


## 八,例题讲解


这里我们就找两个典型例题 讲解一下哦


## **题目一**


**是****46届世界技能大赛湖北省选拔赛 也是今年金砖比赛的样题**



> 
> **链接:https://pan.baidu.com/s/1tYgIicCqJExmaMLYa3YeSA   
>  提取码:lulu**
> 
> 
> 


****你作为 A 公司的应急响应人员,请分析提供的内存文件按照下面的要求找到 相关关键信息,完成应急响应事件。****



> 
> ****1、从内存中获取到用户admin的密码并且破解密码,以Flag{admin,password} 形式提交(密码为 6 位);****
> 
> 
> ****2、获取当前系统 ip 地址及主机名,以 Flag{ip:主机名}形式提交;****
> 
> 
> ****3、获取当前系统浏览器搜索过的关键词,作为 Flag 提交;****
> 
> 
> ****4、当前系统中存在挖矿进程,请获取指向的矿池地址,以 Flag{ip:端口}形式 提交;****
> 
> 
> ****5、恶意进程在系统中注册了服务,请将服务名以 Flag{服务名}形式提交。****
> 
> 
> ****上题已经看到进程****
> 
> 
> 


#### ******解析******


#### ****1.从内存中获取到用户admin的密码并且破解密码,以Flag{admin,password} 形式提交(密码为 6 位);****


     不管什么题内存取证的第一步肯定是去判断当前的镜像信息,分析出是哪个操作系统   使用参数  imageinfo 查看系统信息


      volatility -f 1.vmem imageinfo


![](https://img-blog.csdnimg.cn/f72d52bd6c304ab1932fa87c87e2adc9.png)


操作系统我们一般取第一个就可以了


接下来就可以输入参数


可以先查看当前内存镜像中的用户


volatility -f 1.vmem –profile=Win7SP1x64 printkey -K “SAM\Domains\Account\Users\Names”


![](https://img-blog.csdnimg.cn/621f642127b6415c94f3da972aaf17e4.png) 使用hashdump获取sam


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



**收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。**
![img](https://img-blog.csdnimg.cn/img_convert/5177e3b45c45ab56c10a8ff81d255ae5.png)
![img](https://img-blog.csdnimg.cn/img_convert/1a589deea71c1f406ce2f3ef8002ca4a.png)

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

;****
> 
> 
> ****5、恶意进程在系统中注册了服务,请将服务名以 Flag{服务名}形式提交。****
> 
> 
> ****上题已经看到进程****
> 
> 
> 


#### ******解析******


#### ****1.从内存中获取到用户admin的密码并且破解密码,以Flag{admin,password} 形式提交(密码为 6 位);****


     不管什么题内存取证的第一步肯定是去判断当前的镜像信息,分析出是哪个操作系统   使用参数  imageinfo 查看系统信息


      volatility -f 1.vmem imageinfo


![](https://img-blog.csdnimg.cn/f72d52bd6c304ab1932fa87c87e2adc9.png)


操作系统我们一般取第一个就可以了


接下来就可以输入参数


可以先查看当前内存镜像中的用户


volatility -f 1.vmem –profile=Win7SP1x64 printkey -K “SAM\Domains\Account\Users\Names”


![](https://img-blog.csdnimg.cn/621f642127b6415c94f3da972aaf17e4.png) 使用hashdump获取sam


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



**收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。**
[外链图片转存中...(img-xE2hV8TR-1715711239311)]
[外链图片转存中...(img-xdETxRVc-1715711239312)]

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人**

**都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 13
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值