当前位置: 首页 > article >正文

volatility2工具的使用vol2工具篇

vol2工具

命令格式:vol.py -f [image] --profile=[profile] [plugin]

1、查看系统的操作版本,系统镜像信息

2.查看用户名密码信息,当前操作系统中的password hash,例如SAM文件内容

3.从注册表提取LSA密钥信息(已解密)

这里没有,有的镜像可疑从这里直接提取到密码,flag等

4.列出系统进程,但它不能检测到隐藏或者解链的进程

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

命令没错,只是镜像中没有这个隐藏的进程

6.以树的形式查看进程列表,和pslist一样,也无法检测到隐藏或解链的进程

7.提取进程,-p是进程号,-D存储的文件夹,提取指定进程

这里是dump下来2096的进程

vol.py -f Target.mem --profile=Win7SP0x64 memdump -p xxx --dump-dir=./   //这个一样

8.查看服务,里面有内存地址,有服务名(进程名)

9.查看ie浏览器记录,这里没有浏览器记录,所以为空

10.查看网络连接,排查挖矿进程,恶意进程

11.查看历史命令记录

12.查看并过滤txt或者jpg的文件

13.提取文件

14.查看当前notepad的内容

vol.py -f Target.mem --profile=Win7SP0x64 notepad

15.查看屏幕截图

16.查看注册表单元

17.导出注册表

18.获取注册表,-K“键值” -o是索引值

19.查看运行程序相关记录

20.查看时间栈信息

21.查看剪切板信息

这里剪切板信息为空

22.恢复或被删除的文件

23.查看环境变量

24.程序版本信息

25.从内存文件中找到异常程序植入到系统的开机自启痕迹-恶意开机自启

26.使用mimikatz来查看系统密码,这里缺少插件

27.看命令行参数看它是如何启动的

28.下载内存进程exe程序,用来逆向分析,也可直接运行

29.查看数据库元数据信息

这里是提示镜像中无信息

30.检测和分析windows系统中存在API钩子

36.查看转储原子表文件内容,识别恶意窗口

37.发现潜在的恶意活动,隐藏窗口或篡改窗口资源

38.查找可能被注入或隐藏的恶意代码,看恶意进程和内存地址

39.进程虚拟地址空间的数据结构

40.如果如下则操作系统版本没错,否则会报错并提示

命令详细使用和插件解释等

操作系统查看

./vol.py -f file.dmp imageinfo

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

./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 密码

内存转储

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

进程信息

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

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 # 获取隐藏进程列表

转储进程

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

命令行

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

环境变量

volatility --profile=PROFILE envars -f file.dmp [--pid <pid>] # 显示进程的环境变量
volatility --profile=PROFILE -f file.dmp linux_psenv [-p <pid>] # 获取进程的环境变量。runlevel 变量表示进程启动时的运行级别
Token privileges检查意外服务中的权限令牌。列出使用某些权限令牌的进程
# 获取某些进程的启用权限
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"

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

volatility --profile=Win7SP1x86_23418 getsids -f file.dmp # 获取每个进程拥有的 SID
volatility --profile=Win7SP1x86_23418 getservicesids -f file.dmp # 获取每个服务的 SID
句柄,了解进程拥有的句柄(已打开的文件、注册表项、线程、进程等)。
volatility --profile=Win7SP1x86_23418 -f file.dmp handles [--pid=<pid>]

DLLs

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

按进程查看字符串-检查字符串属于哪个进程

strings file.dmp > /tmp/strings.txt
volatility -f /tmp/file.dmp windows.strings.Strings --string-file /tmp/strings.txt

volatility -f /tmp/file.dmp --profile=Win81U1x64 memdump -p 3532 --dump-dir .
strings 3532.dmp > strings_file

使用yarascan模块在进程中搜索字符串

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

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

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

服务

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

网络

volatility --profile=Win7SP1x86_23418 netscan -f file.dmp
volatility --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_ifconfig
volatility --profile=SomeLinux -f file.dmp linux_netstat
volatility --profile=SomeLinux -f file.dmp linux_netfilter
volatility --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

注册表

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

获取一个注册表值

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

转储注册表

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

文件系统

volatility --profile=SomeLinux -f file.dmp linux_mount
volatility --profile=SomeLinux -f file.dmp linux_recover_filesystem # 如果可能,转储整个文件系统
扫描/转储文件
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.dmp

volatility --profile=SomeLinux -f file.dmp linux_enumerate_files
volatility --profile=SomeLinux -f file.dmp linux_find_file -F /path/to/file
volatility --profile=SomeLinux -f file.dmp linux_find_file -i 0xINODENUMBER -O /path/to/dump/file
主文件表
volatility --profile=Win7SP1x86_23418 mftparser -f file.dmp
SSL 密钥/证书
# vol2 允许从内存中搜索和转储证书
# 此模块的选项包括:--pid, --name, --ssl
volatility --profile=Win7SP1x86_23418 dumpcerts --dump-dir=. -f file.dmp

恶意软件分析

##########windows的命令########3
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 # 检查系统调用地址是否来自意外地址

########Linux的命令#########
volatility --profile=SomeLinux -f file.dmp linux_check_afinfo
volatility --profile=SomeLinux -f file.dmp linux_check_creds
volatility --profile=SomeLinux -f file.dmp linux_check_fop
volatility --profile=SomeLinux -f file.dmp linux_check_idt
volatility --profile=SomeLinux -f file.dmp linux_check_syscall
volatility --profile=SomeLinux -f file.dmp linux_check_modules
volatility --profile=SomeLinux -f file.dmp linux_check_tty
volatility --profile=SomeLinux -f file.dmp linux_keyboard_notifiers # 键盘记录器3

使用YARA扫描

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

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

其他工具

自动运行

volatility --plugins=volatility-autoruns/ --profile=WinXPSP2x86 -f file.dmp autoruns

互斥锁

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

符号链接

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

Bash历史  用于linux

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

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

时间线

volatility --profile=Win7SP1x86_23418 -f timeliner

驱动程序

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

获取剪切板内容

#Just vol2
volatility --profile=Win7SP1x86_23418 clipboard -f file.dmp

获取Internet Explorer历史

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

获取记事本文本

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

截屏

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

主引导记录

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

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 签名扫描进程或内核内存


http://www.kler.cn/a/447452.html

相关文章:

  • 任务三数据库加固
  • 【IoTDB 线上小课 10】为什么选择 IoTDB 管理时序数据?
  • Tekscan压力分布测量系统:电池安全与质量提升的保障
  • 基于字节大模型的论文翻译(含免费源码)
  • JavaScript 中常见内置对象的知识点及示例总结
  • 基于 Python 解决 X 轴上点距离最小值问题
  • 青少年编程与数学 02-004 Go语言Web编程 09课题、访问数据库
  • define ATL_NO_VTABLE __declspec(novtable)
  • 时间序列预测论文阅读和相关代码库
  • 基于Spring Boot的找律师系统
  • spring事件机制笔记、发布和监听
  • Keil MDK下载程序后MCU自动重启设置
  • ElasticSearch 数据同步
  • 如何重新设置VSCode的密钥环密码?
  • P10425 [蓝桥杯 2024 省 B] R 格式
  • CSGHub开源版本v1.2.0更新
  • 【hackmyvm】p4l4nc4靶场
  • 【前端面试】list转树、拍平, 指标,
  • 堆排序【东北大学oj数据结构9-4】C++
  • ELK系列-(六)Redis也能作为消息队列?(下)
  • 用Python设置Excel工作表的页眉和页脚
  • Python解决安装包报错4.0.0-unsupported
  • 使用支持向量机(SVM)实现二分类
  • 数据倾斜的原因以及解决方法
  • SQL注入(SQL lnjection Base)21
  • 数据结构_平衡二叉树