使用工具:
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
我们可以把该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