溯源取证-内存取证基础篇

  • Post author:
  • Post category:其他


使用工具:

volatility_2.6_lin64_standalone

镜像文件:

CYBERDEF-567078-20230213-171333.raw

使用环境:

kali linux 2022.02

我们只有一个RAW映像文件,如何从该映像文件中提取出我们想要的东西呢?

1.Which volatility profile would be best for this machine?

我理解为机器的名字是什么

./volatility_2.6_lin64_standalone -f CYBERDEF-567078-20230213-171333.raw imageinfo

在这里插入图片描述

-f 是用于指定打开raw映像时要使用的文件名的选项

imageinfo 是用于识别映像信息(如操作系统、Service Pack、硬件体系结构和其他有用信息)的插件命令

2.How many processes were running when the image was acquired?

获取到这个映像的时候,有多少个进程是正在运行的

./volatility_2.6_lin64_standalone -f CYBERDEF-567078-20230213-171333.raw profile=WinXPSP2x86 pslist

在这里插入图片描述

pslist 是用于打印所有正在运行的进程的插件命令

profile 用于指定映像的机器名字

题目问的是正在运行的,我们获取的运行总数是25个,需要去掉已经结束的6个进程,这里面我指定的profile 是WinXPSP2x86,但是实际上指定WinXPSP3x86也没影响

在这里插入图片描述

3.What is the process ID of cmd.exe?

CMD进程的PID号码是多少

在这里插入图片描述

4.What is the name of the most suspicious process?

最可疑的进程是什么名字?

在这里插入图片描述

这里其实一目了然,看进程的名字猜测这是一个rootkit病毒

5.Which process shows the highest likelihood of code injection?

哪一个进程被注入的可能性最高

此题其实考验对rootkit病毒的熟知程度,通常情况下rootkit病毒在windows系统中最喜欢干的事就是通过svchost进程进行捆绑,因为svchost是系统守护程序,是不能通过常规手段停止的,那么任何与之关联的程序也都没有办法通过常规杀软去清除,因为svchost启动等级高于常规杀软,所以若是想清除与svchost捆绑的程序,需要进入到系统安全模式下,并使用最小化启动,然后找到svchost注册表项清除对应捆绑关系再删掉木马就行了,这个技巧笔者在2022年的紫狐Rootkit的时候提到过,大家感兴趣的可以翻阅一下

在这里插入图片描述

6.There is an odd file referenced in the recent process. Provide the full path of that file.

接上题,该进程在运行过程中引用了一个奇怪的文件,文件完整路径是什么

./volatility_2.6_lin64_standalone -f CYBERDEF-567078-20230213-171333.raw profile=WinXPSP2x86 -p 880 handles -t file

在这里插入图片描述

-p 是指定进程 ID 的选项

handles 是用于打印每个进程的打开句柄列表的插件命令

-t 是一个选项,用于指定您希望结果显示的对象类型。

此题依然考验对rootkit病毒的理解,通常情况下rootkit会释放两个文件,一个是sys驱动文件,一个是dll文件,rootkit自身只是一个释放程序,dll文件自身功能通常为通信木马,sys驱动程序为保活文件

7.What is the name of the injected dll file loaded from the recent process?

接上题,该进程在运行过程中被注入的DLL文件是什么

./volatility_2.6_lin64_standalone -f CYBERDEF-567078-20230213-171333.raw profile=WinXPSP2x86 ldrmodules -p 880 | grep -i false

在这里插入图片描述
ldrmodules 是用于检测未链接 DLL 的插件命令

grep -i false 这是为了过滤以仅显示带有单词“false”的结果

这里其实就是通过恶意的dll文件是未签名的来寻找,因为正常的dll动态链接库都是通过了签名校验的,但是恶意的dll文件是没有通过签名校验的,PChunter找病毒也是一样的原理

8.What is the base address of the injected dll?

这个注入的dll文件的内存地址是什么

./volatility_2.6_lin64_standalone -f CYBERDEF-567078-20230213-171333.raw profile=WinXPSP2x86 malfind -p 880  

在这里插入图片描述

malfind 是查找隐藏和注入代码的插件命令

我们可以把该dll文件导出到我们想要的目录里

./volatility_2.6_lin64_standalone -f CYBERDEF-567078-20230213-171333.raw profile=WinXPSP2x86 dlldump -p 880 --base=0x980000 --dump-dir=.

在这里插入图片描述

在这里插入图片描述

dlldump 导出dll文件的插件

–base 指定内存地址

–dump-dir 指定存放路径

计算md5

md5sum module.880.9aab590.980000.dll

在这里插入图片描述

在这里插入图片描述



版权声明:本文为weixin_48421613原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。