吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 117|回复: 0
上一主题 下一主题
收起左侧

[讨论] CTF当中Volatility内存取证常用命令

[复制链接]
跳转到指定楼层
楼主
Ty1er 发表于 2024-11-24 18:49 回帖奖励

查看镜像信息(imageinfo)

首先使用-f选项来选择镜像文件
输入命令,以下命令用来查看镜像的系统信息

volatility -f xxx.dmp imageinfo

输出

Volatility Foundation Volatility Framework 2.6
INFO    : volatility.debug    : Determining profile based on KDBG search...
          Suggested Profile(s) : Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_23418
                     AS Layer1 : WindowsAMD64PagedMemory (Kernel AS)
                     AS Layer2 : FileAddressSpace (/home/kali/Desktop/计算机取证/1.dmp)
                      PAE type : No PAE
                           DTB : 0x187000L
                          KDBG : 0xf80003ffa0a0L
          Number of Processors : 1
     Image Type (Service Pack) : 1
                KPCR for CPU 0 : 0xfffff80003ffbd00L
             KUSER_SHARED_DATA : 0xfffff78000000000L
           Image date and time : 2022-04-28 05:54:55 UTC+0000
     Image local date and time : 2022-04-28 13:54:55 +0800

我们查看到了Win7SP1x64,这个信息在后面的操作都会用到

确定系统(–profile=)

看到了系统信息,接下来就可以确定了

volatility -f xxx.dmp --profile=Win7SP1x64 imageinfo

想要进行进一步操作,需要指定profile参数

查看密码的MD5值(hashdump)

volatility -f xxx.dmp --profile=Win7SP1x64 hashdump

使用此命令可以查看到windows的用户名明文和密码的md5值

**分析进程

分析explorer.exe的进程号:

命令:pslist/pstree/psscan:非常有用的插件,列出转储时运行的进程的详细信息,显示过程ID,该父进程ID(PPID),线程的数目,把手的数目,日期的时间,过程开始和退出;

pslist(无法显示隐藏/终止进程,解决这个问题可以使用psscan)

pstree同样是扫描进程的,但是是以进程树的形式出现的;

当显示的内容比较多的时候,导出文本进一步分析查看;

查看IE记录(iehistory)

volatility -f xxx.raw --profile=WinXPSP2x86 iehistory

查找文件(fliescan)

volatility -f xxx.raw --profile=WinXPSP2x86 fliescan

加上管道符可以精确查找目标文件

volatility -f xxx.raw --profile=WinXPSP2x86 fliescan | grep ssh.txt

mftparser(命令)
MFTParser 插件通常用于解析和分析 NTFS 文件系统的 MFT(Master File Table)。它能够提取关于文件和目录的信息,包括文件名、创建时间、修改时间、访问时间、文件大小等元数据。

Shellbags 插件用于分析 Windows 系统中的 Shellbags 数据,这些数据记录了用户在 Windows 资源管理器中浏览的文件夹和窗口位置等信息。通过分析 Shellbags,用户可以获取有关文件访问历史的有用线索。

文件下载(dumpfiles)

volatility -f xxx.raw --profile=WinXPSP2x86 dumpfiles -Q 0x00000000020bf6a0 -D ./

根据文件查找到的-Q参数才能进行文件下载

历史命令(cmdscan)

volatility -f xxx.raw --profile=WinXPSP2x86 cmdscan

PowerShell历史命令文件路径为:%USERPROFILE%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt ,所以我们直接去filescanConsoleHost_history.txt

网络连接信息(netscan)

volatility -f 1.raw --profile=WinXPSP2x86 netscan

使用此命令可以查看本机ip地址以及进程的网络连接

导出进程内存数据(memdump)

volatility -f OtterCTF.vmem --profile=Win7SP1x64 memdump --pid='708' --dump-dir=./

导出后可用strings指令来查看数据,并使用grep指令来筛选,添加-C的选项用来显示匹配内容的后N行内容,例如:

strings 708.dmp | grep 'Lunar-3' -C 10

或者使用xxd指令打印文件的hexdump信息,例如:

xxd 708.dmp | grep '5a0c 0000'

注册表信息(hivelist)

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

主机名

主机名会出储存在\REGISTRY\MACHINE\SYSTEM中的ControlSet001\Control\ComputerName\ComputerName条目中,可以直接读取

先使用hivelist查看\REGISTRY\MACHINE\SYSTEMVirtual值,再使用如下名称即可查看主机名

volatility -f OtterCTF.vmem --profile=Win7SP1x64 -o 0xfffff8a000024010 printkey -K "ControlSet001\Control\ComputerName\ComputerName"

粘贴板(clipboard)

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

查找用户SID

vol.py -f xxx.mem --profile=Win7SP1x86_23418 getsids

查找计算机windows安装时间

Microsoft路径下寻找系统信息

vol.py -f xxx.mem --profile=Win7SP1x86_23418 -o 0x8bd898e8 printkey -K "WOW6432Node\Microsoft"

先使用hivelist查看\SystemRoot\System32\Config\SOFTWAREVirtual值,再使用如下名称即可查看主机名
可以通过Last updated进行大致判断。正常的系统信息会记录在如下路径:(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\InstallDate

关于计算机连接USB装置

使用命令volatility -h | grep service查找与设备相关的命令。
(可以看到相关的命令与功能)

使用设备扫描命令查询是否有USB使用痕迹
vol.py -f memdump.mem --profile=Win7SP1x86_23418 svcsan | grep usb

发现确实存在USB的使用记录,在注册表中查询USB设备使用情况
(注册表中与USB设备相关的路径为:ControlSet001\Enum\USBSTOR
(先使用hivelist查看\REGISTRY\MACHINE\SYSTEMVirtual值)

vol.py -f memdump.mem --profile=Win7SP1x86_23418 -o 0x8bc1a1c0 printkey -K "ControlSet001\Enum\USBSTOR"
例:查看到设备(Disk&Ven_Seagate&Prod_Expansion&Rev_0710)

vol.py -f memdump.mem --profile=Win7SP1x86_23418 -o 0x8bc1a1c0 printkey -K "ControlSet001\Enum\USBSTOR\Disk&Ven_Seagate&Prod_Expansion&Rev_0710" 进一步查看该设备 vol.py -f memdump.mem --profile=Win7SP1x86_23418 -o 0x8bc1a1c0 printkey -K "ControlSet001\Enum\USBSTOR\Disk&Ven_Seagate&Prod_Expansion&Rev_0710\NAA6DT2Z&0"
即可查询到该usb设备的详细信息,例,GUID,containerID等

总结(调整)

命令1:

pslist/pstree/psscan:非常有用的插件,列出转储时运行的进程的详细信息,显示过程ID,该父进程ID(PPID),线程的数目,把手的数目,日期的时间,过程开始和退出;

pslist(无法显示隐藏/终止进程,解决这个问题可以使用psscan)

pstree同样是扫描进程的,但是是以进程树的形式出现的;

命令2:

cmdscan:用来查看受害者系统上攻击OS的最强大的命令之一,无论是否打开cmd.exe。简单说,可以看到攻击者在命令提示符中键入的内容;提取内存中保留的cmd命令使用情况

命令3:

filescan:扫描当前打开的文件

使用正则表达式一起使用:volatility -f 路径 --profile=... filescan | grep Downloads

找下载的文件夹了,一般windows下载的内容都放在Downloads文件夹中

命令4:

dlllist:能够显示一个进程装载的动态链接库的信息,其显示列表主要包括加载的动态链接库文件的基地址、文件大小以及文件的所在路径

命令5:

hivelist:查看缓存在内存的注册表

命令6:

hashdump:获取内存中的系统密码

命令7:

userassist:提取出内存中的记录的 当时正在运行的程序有哪些,运行过多少次,最后一次运行时间等信息

命令8:

getsids:查看SID

命令9:

malfind:用于寻找可能注入到各种进程中的恶意软件,使用malfind时也可以使用-p直接指定进程

命令10:

printkey:获取SAM表中的用户

命令11:

mftparser:解析MFT记录、导出MFT记录

volatility -f 镜像 --profile=  mftparser

导出的命令为:volatility -f 镜像 --profile=  mftparser --output-file=mftverbose.txt -D mftoutput

命令12:

timeliner:可以查看访问记录

命令13:

svcscan:该命令能查看windows的服务

命令14:

psxview:查看被隐藏的进程,如某些隐藏的病毒文件

命令15:

memdump:将内存中的某个进程保存出来

命令16:

dumpregistry:提取内存中的注册表信息

dumpregistry --dump-dir 提取内存注册表的目录路径

命令17:

turecryptmaster:获取TrueCrypt密钥信息

命令18:

truecryptpassphrase:获取TrueCrypt密码信息

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
hongge + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 16:15

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表