内存取证-不知名Lab

题目

1.Which volatility profile would be best for this machine?	操作系统
2.How many processes were running when the image was acquired? 获取到这个映像的时候,有多少个进程是正在运行的
3.What is the process ID of cmd.exe? CMD进程的PID号码是多少
4.What is the name of the most suspicious process? 最可疑的进程是什么名字?
5.Which process shows the highest likelihood of code injection? 哪一个进程被注入的可能性最高
6.There is an odd file referenced in the recent process. Provide the full path of that file. 接上题,该进程在运行过程中引用了一个奇怪的文件,文件完整路径是什么
7.What is the name of the injected dll file loaded from the recent process? 接上题,该进程在运行过程中被注入的DLL文件是什么
8.What is the base address of the injected dll? 这个注入的dll文件的内存地址是什么

操作系统

imageinfo

image-20251231150206774

WinXPSP2x86

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

pslist是看正在运行 pstree和这个差不多

psscan是查看死去和活进程

pslist | wc -l

image-20251231151057480

一共25

25

CMD进程的PID号码是多少

image-20251231151427240

1960

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

image-20251231153259160

存在以下可疑进程

PID Name PPID Thds Hnds Start / Exit 可疑点分析
964 rootkit.exe 1484 0 —- 18:25:26 进程名“rootkit.exe”,线程为 0,几乎瞬间结束,很典型恶意进程
1960 cmd.exe 964 0 —- 18:25:26 父进程是 rootkit.exe,线程为 0,瞬间结束,可能是恶意命令执行
1880 taskmgr.exe 1484 0 —- 18:25:15 → 18:26:21 线程为 0(Taskmgr 本应有多个线程),可能被注入或伪装
528 / 1432 / 1444 notepad.exe 1484 0 —- 短时间 线程 0,快速打开关闭,可能是恶意利用记事本作为载体

其中rootkit

image-20251231153409812

rootkit.exe

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

通常情况下rootkit病毒在windows系统中最喜欢干的事就是通过svchost进程进行捆绑,因为svchost是系统守护程序,是不能通过常规手段停止的,那么任何与之关联的程序也都没有办法通过常规杀软去清除,因为svchost启动等级高于常规杀软,所以若是想清除与svchost捆绑的程序,需要进入到系统安全模式下,并使用最小化启动,然后找到svchost注册表项清除对应捆绑关系再删掉木马就行了。

猜测被注入的进程为svchost.exe,但是查看pslist发现存在多个svchost.exe进程,使用malfind确定哪个进程为被注入进程

malfind -p PID

只有pid为880的这个svchost.exe进程存在RWX

image-20251231163743843

因此该进程为被注入进程

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

通常情况下rootkit会释放两个文件,一个是sys驱动文件,一个是dll文件,rootkit自身只是一个释放程序,dll文件自身功能通常为通信木马,sys驱动程序为保活文件

image-20251231170839212

正常系统 / 服务相关

\Device\HarddiskVolume1\WINDOWS\system32
WinSxS\...Common-Controls...
\Device\NamedPipe\lsarpc
\Device\NamedPipe\Ctx_WinStation_API_service
\Device\Termdd
\Device\NetBT_Tcpip_{GUID}
IE 缓存 / Cookies / History 的 index.dat

这些都符合 svchost.exe 在 XP 系统中的正常行为

system32\drivers 目录的意义

这个目录里放的是:

  • 内核驱动(.sys)
  • 由 SCM / 内核加载
  • 极少由 svchost.exe 直接以 File Handle 方式打开

svchost.exe 正常不会直接操作驱动文件

通过对 PID 880(svchost.exe)进程进行句柄分析,发现其在运行过程中打开了位于 system32\drivers 目录下的 str.sys 文件。
svchost.exe 正常情况下不会直接操作内核驱动文件,该行为明显异常,表明该文件可能为恶意驱动或 rootkit 组件。

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

使用ldrmodules插件检查进程的加载器信息,也可以发现隐藏或未被正常列出的DLL文件。

python2 vol.py -f CYBERDEF-567078-20230213-171333.raw -p 880 ldrmodules | grep -i false
  • ldrmodules:是Volatility的一个插件,用于检查进程加载的模块(DLLs和驱动程序)。它特别有用于寻找那些在正常的加载器列表中未列出(即隐藏模块),或者那些路径、内存映像、加载顺序不一致的模块。
  • -p 880:指定只分析PID为880的进程。
  • |grep -i false:这部分是Linux/Unix命令行的管道和grep命令,用于从ldrmodules插件的输出中筛选包含”false”的行。-i参数使得搜索不区分大小写。

因此,这个命令的作用是:分析指定内存映像文件中PID为880的进程,寻找那些加载异常或可能被隐藏的模块。

那为什么就可以确认三个False就是呢?

ldrmodules的上下文中,输出中的”false”通常指的是三个关键属性(是否在加载器列表中,是否在内存中,是否在磁盘上)之间的一致性检查。如果某个模块的某项检查结果为”false”,这可能表明该模块被隐藏或以异常方式加载到进程中,这是恶意软件常用的技巧之一。

image-20260103181831002

msxml3r.dll

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

python2 vol.py -f CYBERDEF-567078-20230213-171333.raw malfind -p 880  

image-20251231171741763

0x980000

导出DLL文件分析(拓展)

python2 vol.py -f CYBERDEF-567078-20230213-171333.raw dlldump -p 880 --base=0x980000 --dump-dir=.

image-20251231172216374

image-20251231172224064