跳到主要内容

内存取证

内存取证就两个难题,一个是如何得到内存数据,一个是如何解析内存数据,看似简单的两个问题,可以出一本书

如何得到内存数据

内存数据的获取,要看具体是哪个平台。在 Windows 上相对较为容易,因为 Microsoft 官方提供了一系列的接口与权限说明,可以较为容易的扫描并获取到全部内存数据

Hyper-v 可能存在架构问题

由于启用 Hyper-v 特性之后,系统整体会被虚拟化特性整体隔离,所以获取完整内存数据将会遇到不可预期的问题

Windows 平台可以直接使用现成的一些工具一键获取内存镜像 ( 前提是拥有管理员权限 )

如何解析内存数据

对于比赛中所接触到的内存取证,选手大多拿到的都是已经提取好的内存镜像文件,也就是内存数据的原始完整拷贝,这已经从开局就大大简化了内存取证的难度。而选手接下来所要面对的,就是对内存数据进行解析。

对于内存数据,最为常用的工具便是 Volatility Framework ,其为 Volatility Foundation 所开发的一款对内存取证分析提供支持的框架,对多平台电子设备的内存数据均提供了支持,并且也支持加载第三方模块来增加功能。

小 tips

虽说内存取证最为优雅的解法就是利用 Volatility Framework ,但是都戏称:内存取证的终点是 strings+grep。因为由于内存其本身就为操作系统和软件运行时的动态数据,所以绝大多数的数据都是直接以明文形式储存在内存之中的,往往直接 strings 进行提取明文字符串并加以筛选,就能获得一些意想不到的惊喜

当前,Volatility 已经开发到了 Volatility 3,但是第三代仍然在开发阶段,其功能相较于第二代还不完善,但是第三代对 Windows 10 以上的 Windows 系统所导出的内存数据提供了更完善的支持,故建议进行内存取证工作的时候,两代 Volatility 都备着 ( 反正只是一个工具,相较于检材动辄大几 G 而言,完全不算大 ) 。

"来个跳转"