volatility命令使用 misc部分取证解题(部分内存取证)

使用命令:Volatility -f<文件名> --profile=<配置文件><插件>[插件参数]

一般思路步骤

  • 列举进程 查找需要的信息
  • Volatility -f name --profile=Winxpap2x86  pslist
  • 创建文件夹 把需要保存的文件提取

将内存中的某个进程数据以dup的格式保存出来

volatility -f mem.vmem --profile=WinXPSP2x86 -p [PID] -D [dump 出的文件保存的目录]

  •  mkdir ctf
  • volatility -f mem.vmem --profile=WinXPSP2x86 memdump -p 1464 -D ctf/
  • 使用EFDD将获取的key(dump的文件)和破解文件结合得到flag

二般思路步骤

  1. 老规矩查看内存文件的信息 imageinfo
  2. 得到配置文件后,进行查询:查看开放端口以及连接情况 netscan、查看系统注册表(获取主机名、IP地址等)hivelist、都注册表信息printkey
  3. 查看剪切板中的信息(获取复制剪切内容)clipboard
  4. 查看进程信息 plist 包括正在运行的 暂停运行的会在后面显示展厅时间、显示隐藏/终止的进程 psscan、把进程以树的形式显示pstree 与o保存
  5. 查看dll文件(但发现可疑进程,可进行深入探究) dlllist -p[PID]
  6. 查看ie历史 iehistory
  7. Filescan 或者和grep使用查找需要的文件 然后n保存
  8. Cmdscan
  9. 查看进程命令行参数(具体一些可疑进程的参数指令)cmdline
  10. 查看notepad文件(在pslist中查看进程中的notepad.exe.中的内容) notepad
  11. 有时候得到信息不一定就是他,毕竟老套娃了 我们可能需要获取密码 hash  hashdum
  12. 保存文件dmp
  13. 回到注册表,打印对应的表的数据 hivedump -o 虚拟地址
  14. filescan文件 然后转储内存中的文件 打印出filescan出来的文件 dumpfiles -q 偏移地址 -D路径
  15. Pslist查看进程 可以转储内存中的进程的exe文件 procdump -p -D路径

常用命令

volatility -f name imageinfo  查看文件/内存镜像的信息 比如系统版本、硬件构架等

Volatility --info                       查看已添加profile和插件信息

volatility -f example.raw --profile=Win7SP1x64 filescan | grep -E'txt|png|jpg|gif|zip|rar|7z|pdf|doc'               扫描文件

volatility -f example.raw --profile=Win7SP1x64 filescan | grep TMP_User                                             #搜索指定文件夹下的文件

volatility -f zy.raw --profile=WinXPSP2x86 dumpfiles -Q 0x2456028 --dump-dir=./           使用dumpfiles提取文件 -Q的参数为 内存地址--dump-dir的参数为导出文件的目录

Volatility -f name --profile=?? Volshell  包含许多shell命令 其中  例如dt(“_PEB”)

Volatility -f name --profile=Winxpap2x86  hivelist 列举缓存在内存的注册表

Volatility -f name --profile=Winxpap2x86 hivedump -o 注册表的virtual地址              打印出注册表中的数据

Volatility -f name --profile=Winxpap2x86 printkey -K “SAM\Domains\Account\Users\Names”获取SAM表中的用户,可以看到有四个用户(查看系统用户名)

获取最后登录系统的账户:

volatility -f mem.vmem --profile=WinXPSP2x86 printkey -K "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"

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

volatility -f mem.vmem --profile=WinXPSP2x86 userassist

volatility -f mem.vmem kdbgscan 和imageinfo只适用于windows的镜像 可以扫描文件的profile值 通常结果多个,但只有一个是完全正确的

可以使用二进制编译器hexeditor将保存的dmp文件打开并进行取证工作

Hexeditor 1736.dmp

或者

你还可以使用 strings 这个工具将它的字符串打印出来。

例:

strings 1736.dmp > 1736.txt

strings 1608.dmp > 1736.txt | grep shellcode

提取内存中保留的 cmd 命令使用情况

volatility -f mem.vmem --profile=WinXPSP2x86 cmdscan

volatility -f mem.vmem --profile=WinXPSP2x86 cmdline

获取到当时的网络连接情况

volatility -f mem.vmem --profile=WinXPSP2x86 netscan

获取 IE 浏览器的使用情况 :

volatility -f mem.vmem --profile=WinXPSP2x86 iehistory

获取内存中的系统密码,我们可以使用 hashdump 将它提取出来

volatility -f mem.vmem --profile=WinXPSP2x86 hashdump -y (注册表 system 的 virtual 地址 )-s (SAM 的 virtual 地址)

volatility -f mem.vmem --profile=WinXPSP2x86 hashdump -y 0xe1035b60 -s 0xe16aab60

最大程度上将内存中的信息提取出来,那么你可以使用 timeliner 这个插件。它会从多个位置来收集系统的活动信息 。

volatility -f mem.vmem --profile=WinXPSP2x86 timeliner

volatility -f mem.vmem --profile=Win7SP1x86 timeliner | grep Company_Files #查找指定文件夹下的文件的访问详细情况,可以导出 > 文件

显示每个进程的加载dll列表

Volatility -f name -profile = Win7SP0x86 dlllist> dlllist.txt

常见的插件

查看当前展示的 notepad 文本

volatility notepad -f file.raw --profile=WinXPSP2x86

查看当前操作系统中的 password hash,例如 Windows 的 SAM 文件内容

volatility hashdump -f file.raw --profile=WinXPSP2x86

查看所有进程

volatility psscan -f file.raw --profile=WinXPSP2x86

扫描所有的文件列表

volatility filescan -f file.raw --profile=WinXPSP2x86

扫描 Windows 的服务

volatility svcscan -f file.raw --profile=WinXPSP2x86

查看网络连接

volatility connscan -f file.raw --profile=WinXPSP2x86

查看命令行上的操作,查看终端输入历史

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

根据进程的 pid dump出指定进程到指定的文件夹dump_dir

volatility memdump -p 120 -f file.raw --profile=WinXPSP2x86 --dump-dir=dump_dir

dump 出来的进程文件,可以使用 foremost 来分离里面的文件,用 binwak -e 经常会有问题,需要重新修复文件

对当前的窗口界面,生成屏幕截图

volatility screenshot -f file.raw --profile=WinXPSP2x86 --dump-dir=out

复制剪切板:

volatility -f name --profile=Win7SP1x64 clipboard
volatility -f name --profile=Win7SP1x64 dlllist -p 3820

flag字符串扫描

strings -e l 2616.dmp | grep flag

安全进程扫描

volatility -f name --profile=Win7SP1x64 psscan

根据注册表查询信息

1.计算机安装windows的时间

在Microsoft路径下寻找系统信息。

volatility -f  memdump.mem --profile=Win7SP1x86_23418 -o 0x8bd898e8 printkey -K "WOW6432Nod\Microsoft"

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

-o 指定注册表的virtual地址

一般系统信息存在于

我们可以指定 -o virtual 地址去printkey 获取key

之后一步一步来即可

InstalledDate对应的键值,但是可以通过Last updated进行大致判断。正常的系统信息会记录在如下路径:(HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionInstallDate)。

2.计算机名称

在注册表SYSTEM里面存在计算机名称

具体位置:ControlSet001\Control\ComputerName\ComputerName

我们可以使用命令:注册表解析

volatility -f memdump.mem  --profile=Win7SP1x86_23418 -o 0x8bc1a1c0 printkey -K "ControlSet001\Control\ComputerName\ComputerName"

3.查看tcp

volatility -f memdump.mem  --profile=Win7SP1x86_23418  timeliner | grep TCP

4.外接存储设备的取证 -USB

1.首先使用命令volatility -h | grep service查找与设备相关的命令。

volatility -h | grep service

2.然后使用设备扫描命令查询是否有USB使用痕迹

volatility -f memdump.mem --profile=Win7SP1x86_23418 svscan | grep usb

3.在虚拟地址内存中查找key,在注册表中查询USB设备使用情况(注册表中与USB设备相关的路径为:ControlSet001\Enum\USBSTOR

路径:ControlSet001\Enum\USBSTOR

volatility -f memdump.mem --profile=Win7SP1x86_23418  -o 0x8bc1a1c0 printkey -K "ControlSet001\Enum\USBSTOR"

DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。

 知识延伸

        1、 本文未用到dll,注册表等取证使用方法,其他取证方法我附上网址供大家学习

         Cyber Security Posters | SANS Institute

         2、制作内存镜像

         DumpIt 是一款绿色免安装的 windows 内存镜像取证工具。利用它我们可以轻松地将一个系统的完整内存镜像下来。

     只要双击打开DumpIt.exe输入y等待一会出现Success就是dump成功。

     默认情况下,文件名是主机名(主机名),其后是执行映像过程的日期。该文件默认保存为“raw”格式

解题一:

使用volatility提取文件中的密码文件dump,结合EFDD将题目的文件和dump来得到flag

步骤大致为先看进程 pslist,从进程名中提取相关的内存文件

解题二:

大概还有使用testdisk对删除的文件的恢复 或者创建

输入:testdisk xxx 即可进入软件内部操作

Proceed:继续

Quit:退出,关闭

[ Analyse ] 分析正确的分区结构并找到丢失的分区表

[ Advanced ] 文件系统工具

[ Geometry ] 更改硬盘类型

[ Options ] 修改高级选项

[ Quit ] 返回到硬盘检测

[ Type ] :改变文件系统的类型,这种修改并不会真正改变硬盘上的真正格式。

[Superblock] :列出超级块,这是文件系统的基本元数据。

[ List ] :列出所有文件,并复制(恢复)出来

[Image Creation] :对当前分区创建镜像文件

[ Quit ]:退出,返回

红色文件就表示已经删除的文件。当然你也可以选择一个红色的目录,表示恢复整个目录。

解题思路三

wireshark解题

扩展:从内存还原文字

1、微软的一款dump工具 procdump 

//这个工具很有用,大部分应用在内存取证,查找sam

procdump -ma notepad.exe notepad.dmp  # 参数m代表内存 a是all

2、strings工具

strings notepad.dmp > notepad.txt

先procdump dump下来,strings查看

扩展:从内存还原图片

procdump -ma mspaint.exe mspaint.dmp  # 把画板程序dump出来

把后缀名改成.data

mv mspaint.dmp mspaint.data

在gimp中打开mspaint.data,通过不断调节各项参数进行图片显示

从内存中提取明文密码

procdump -ma lsass.exe lsass.dmp  #dump下来先

待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值