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

使用工具:
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

溯源取证-内存取证基础篇_第1张图片
-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

溯源取证-内存取证基础篇_第2张图片
pslist 是用于打印所有正在运行的进程的插件命令
profile 用于指定映像的机器名字
题目问的是正在运行的,我们获取的运行总数是25个,需要去掉已经结束的6个进程,这里面我指定的profile 是WinXPSP2x86,但是实际上指定WinXPSP3x86也没影响
溯源取证-内存取证基础篇_第3张图片

3.What is the process ID of cmd.exe?
CMD进程的PID号码是多少
溯源取证-内存取证基础篇_第4张图片
4.What is the name of the most suspicious process?
最可疑的进程是什么名字?
溯源取证-内存取证基础篇_第5张图片
这里其实一目了然,看进程的名字猜测这是一个rootkit病毒

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

溯源取证-内存取证基础篇_第6张图片
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

溯源取证-内存取证基础篇_第7张图片
-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  

溯源取证-内存取证基础篇_第8张图片
malfind 是查找隐藏和注入代码的插件命令

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

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

在这里插入图片描述
溯源取证-内存取证基础篇_第9张图片

dlldump 导出dll文件的插件
–base 指定内存地址
–dump-dir 指定存放路径

计算md5

md5sum module.880.9aab590.980000.dll

在这里插入图片描述
溯源取证-内存取证基础篇_第10张图片

你可能感兴趣的:(web安全评估,溯源取证,服务器,安全性测试)