内存分析—Windows

介绍

1、从计算机进行内存捕获可以通过多种方式完成,处于打开状态的计算机可以使用以下工具之一捕获内存:
FTK Imager
Redline
DumpIt.exe
win32dd.exe / win64dd.exe
这些工具通常会输出一个 .raw 文件,其中包含系统内存的镜像。 .raw 格式是最常见的内存文件类型之一。

2、只要驱动器未加密,处于关闭状态机器就可以相对轻松地提取内存。对于 Windows 系统,可以通过拉取以下文件来完成:%SystemDrive%/hiberfil.sys

hiberfil.sys,是Windows 休眠文件。包含上次启动的压缩内存映像。 Microsoft Windows 系统使用它来提供更快的启动时间。

步骤

cridex.vmem

打开桌面案例的neicun文件夹,输入命令volatility -f MEMORY_FILE.raw imageinfo,查看内存镜像的Suggested Profile
在这里插入图片描述
针对Suggested Profile,依次使用命令volatility -f MEMORY_FILE.raw --profile=PROFILE pslist查看结果
使用WinXPSP2x86作为系统配置
在这里插入图片描述
在这里插入图片描述

使用WinXPSP3x86作为系统配置
在这里插入图片描述

根据Suggested Profile可以判断WinXPSP2x86是此镜像对应的profile

根据pslist命令的显示可以判断smss.exe 进程的进程 ID为368,

输入volatility -f MEMORY_FILE.raw --profile=PROFILE psxview查看有进程是否只有一列是False
在这里插入图片描述

输入volatility -f MEMORY_FILE.raw --profile=PROFILE ldrmodules进一步查看隐藏的恶意进程的被注入情况

可以看到除System外,只有csrss.exe的进程三列均为False,和上一步相对应
在这里插入图片描述

通过volatility -f MEMORY_FILE.raw --profile=PROFILE ldrmodules | findstr False进一步缩小范围
在这里插入图片描述

输入命令volatility -f MEMORY_FILE.raw --profile=PROFILE malfind将存在恶意代码的进程显示,一共显示在屏幕上有12个进程
在这里插入图片描述

可以通过volatility -f MEMORY_FILE.raw --profile=PROFILE malfind -D 文件夹将所有存在恶意代码的进程分别转储

先在同级目录下创建文件夹
在这里插入图片描述

在这里插入图片描述

输入命令volatility -f MEMORY_FILE.raw --profile=PROFILE --pid=PID dlldump -D 文件夹,将csrss.exe进程的dll导出

创建dlldump文件夹
在这里插入图片描述
在这里插入图片描述

总结

cridex.vmem

1、首先,需要弄清楚需要使用什么配置文件。配置文件决定了 Volatility 如何处理内存映像,因为每个版本的 Windows 都有点不同。使用命令 volatility -f MEMORY_FILE.raw imageinfo 查看推荐选项

2、在 Volatility 中运行 imageinfo 命令可能会提供许多可以测试的配置文件,但是,只有一个是正确的。可以使用 pslist 命令测试这些配置文件,通过返回结果的绝对数量来验证配置文件选择。使用命令 volatility -f MEMORY_FILE.raw --profile=PROFILE pslist 执行此操作。

3、检查镜像文件中的进程。(除了检查进程信息,还可以查看创建镜像时的网络连接。使用命令 volatility -f MEMORY_FILE.raw --profile=PROFILE netscan 来执行此操作。此镜像由于目标操作系统的年代久远,netscan 命令不支持。)

4、恶意程序试图隐藏自身及其衍生进程是相当常见的。通过命令“psxview”查看有意隐藏的进程。

5、除了通过 psxview 查看隐藏的进程,还可以通过命令“ldrmodules”更集中地检查。这里中间会出现三列,InLoad、InInit、InMem。如果其中任何一个是错误的,则该模块可能已被注入。

6、当检查计算机时,进程并不是唯一值得关心的领域。使用“apihooks”命令,我们可以查看DLL 中的意外补丁。如果看到一个 Hooking module: 的实例,那就证明计算机已经被攻击者完全利用。这个命令需要一段时间才能运行结束,但将显示恶意软件引入的所有无关代码。

7、注入的代码可能是一个巨大的问题。使用命令 malfind 来检查这一点。使用完整命令 volatility -f MEMORY_FILE.raw --profile=PROFILE malfind -D <Destination Directory> 不仅可以找到此代码,还可以将其转储到我们指定的目录中。

8、最后可以查看加载到内存中的所有 DLL。DLL 是在系统进程中使用的共享系统库。这些通常受到劫持和其他侧载攻击,是取证中关键的检查点。使用命令 dlllist 列出内存中的所有 DLL

9、可以看到所有在内存中运行的 DLL,使用命令 volatility -f MEMORY_FILE.raw --profile=PROFILE --pid=PID dlldump -D <Destination Directory> 执行此操作,其中 PID 是我们之前确定的受感染进程的进程 ID

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值