目标
在这篇博文中,我们讨论的是,如果我们向可疑机器提供内存图像以进行调查,我们可以做什么,以及如何利用我们的工具从中获取尽可能多的信息。
我们将使用两个工具:
-
Volatility 3
-
MemProcFS
Experience Level required: Beginner
介绍
内存取证是任何计算机取证调查员的必备技能,您可以找到很多在磁盘上找不到的证据,例如:
-
已建立网络连接。
-
在仅限内存的恶意软件中。
-
加密密钥
-
用户凭据...等
从头开始处理内存映像确实具有挑战性,因为这需要对正在研究的操作系统的内存布局和数据结构有深入的了解,但幸运的是,有一些工具可以为我们完成解析这些数据结构的工作,并且给我们我们要求的最终结果,这样我们就可以专注于我们真正想要看到的重要部分以及如何从分析中达到我们的目标。
内存取证中最重要的工具之一是“Volatility”,它是一种基于插件的 Python 工具,其中有不同的插件,每个插件都可以从内存中提取特定信息。
在这篇博文中,我们将讨论“Volatility 3 ”。
您可以在最后的“材料”部分找到我们正在制作的练习材料。
挥发性
图像信息
在处理内存图像时,您volatility2需要使用特定的配置文件,但在volatility3插件本身中动态识别配置文件。
使用波动性时,您需要提供以下参数:
python3 vol.py -f <MemoryImage> <Plugin>
让我们从一个简单的插件开始,它显示有关机器的一些信息。
python3 .vol.py -f D:MemoryDump.mem windows.info
这可以告诉我们正在处理的 Windows 版本“Windows 10”以及系统时间(即进行内存捕获的时间)。
正在运行的进程
内存映像包含有关机器的所有信息,其中包括捕获映像时正在运行的进程,并调查是否有多个插件来处理正在运行的进程。
第一个是windows.pslist插件,用于仅列出正在运行的进程,其信息如下图所示。
windows.psscan与“windows.pslist”几乎相同,但它有时会终止进程,当它们终止时,它也会使用不同的方法来查找正在运行的进程,如果攻击者使用反取证技术来隐藏他的恶意软件,这将是很好的使用过程。
windows.pstree这是最常用的,因为它可以以树形形式查看进程,您可以在其中看到进程之间的父子关系。
为了继续我们的调查,机器上发生了恶意活动,我们将对其进行调查,看看我们可以从受感染机器的内存中获得什么。
从“windows.pstree”输出中,我们可以发现“svchost”进程作为“powershell”的子进程运行,并且作为“cmd”的子进程运行,这看起来很可疑,原因有很多,但最可疑的是“svchost”只能有父进程“services.exe”,这意味着这是值得寻找的东西,因此我们将继续挖掘。
可疑流程调查
一旦我们发现可疑的进程,我们就可以进一步采取行动并使用其他插件来进一步调查。
windows.cmdline它用于查看执行任何进程的命令行,该进程可以将您要调查的进程 ID 作为参数。
注意:您可以通过在插件名称后使用“-h”来获取特定插件的所有参数。
这里我们可以从“svchost”的命令行看到它是从“Documents”目录运行的。
在某些情况下,您可能会发现波动结果表明信息已交换,交换是一种通过将未使用的内容从内存移动到磁盘并在需要时将其取回来有效使用内存的机制。
此外,我们可以用来windows.handles获取处理我们引用的进程的内容,这有助于找到对文件的访问或创建进程。
另外,另一个命令在通过注入或任何其他攻击类型(包括使用 DLL)处理 DLL 时非常有用,该命令windows.dlllist用于显示进程上加载的 DLL。
在知道某个进程值得更多研究后,我们可以使用windows.dumpfiles.DumpFiles带有目标进程 pid 的插件来提取它以进行进一步分析。
网络连接
拥有可疑机器的内存映像的一大好处是,我们可以实时了解该机器正在连接的 IP 以及创建该连接的进程。
windows.netscan用于执行此操作。
查看输出时,我们可以看到可疑进程在端口“1337”上访问“192.168.21.140”
异常检测
有些插件还具有一些规则来帮助您自动发现异常情况,这可能会产生一些误报,但它确实可以减少您需要查找的数据量。
windows.malfind为此更常使用。
该插件使用的一种技术是寻找具有“读取、写入和执行”权限的内存页面,尽管这可以在合法进程中使用,但它广泛用于恶意二进制文件,特别是如果该内存页面的第一个字节MZ是是 Windows 可执行文件的签名。
这不适用于我们的测试用例,但它可能看起来像这样。
让事情变得更简单“MemProcFS”
波动性并不局限于我们所讨论的内容,您可以查看工具帮助并找到越来越多的在不同插件中实现的功能,但在这里我想介绍另一个基于波动性插件构建的工具。
MemProcFS用于在文件系统视图中同时查看多个波动性插件的输出。
使用该工具非常简单,您只需传递内存图像和一个名为“forensic”的参数,该参数告诉工具对图像进行自动取证分析。
注意:安装映像后,取证结果可能需要一些时间才能完成。
当进入挂载点时,我们可以找到以下文件。
我们可以找到有关按“名称”或“pid”分组的正在运行的进程的信息,并且在每个进程目录中,我们可以找到很多信息,就像我们之前从波动性和其他方面获得的信息一样。
我们还可以在“sys”目录中找到很多有关系统的信息,如网络、用户、操作系统信息等。
最重要的是“Forensic”文件夹,其中包含大量取证信息。
在那里我们可以找到为许多工件(如 NTFS、网络、Web、进程等)创建的时间线。
此外,还有“findevil”文件夹,您可以在其中找到该工具发现的异常情况。
另外,名为“files”的文件夹将在内存中显示磁盘的内容,如果您没有磁盘映像,则可以使用该文件夹。
从那里我们无法告诉您可以执行的所有可能的操作,因为应用于磁盘分析的所有操作(例如注册表分析或日志分析或这个大列表中的任何操作)都可以完成。
概括
每项调查都有其目标,并且您深入证据文件的方式因情况而异,但一旦您知道如何使用插件来获得您想要的东西,那就没问题了,在这里我们提到了一些重要的插件,您会发现自己在几乎所有内存取证调查,例如寻找可疑的父子关系、网络连接、执行命令行、可执行文件中引用的文件、发现异常的一般方法,以及如何使用“MemProcFS”等现代工具使过程变得更容易”。
原文翻译自:
https://blog.cyber5w.com/anomalies-hunting-in-windows-memory-dump
原文始发于微信公众号(Ots安全):Windows 内存取证
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论