Windows取证分析 | 如何最大程度提升分析效率

news2024/11/17 4:43:22

本文由安全研究人员Amr Ashraf发表于Cyber5w的官方博客,研究人员在本文中讨论了如何对可疑设备中的内存映像进行安全调查,并利用了Volatility 3和MemProcFS来最大程度提升Windows取证分析的工作效率。

介绍

内存取证是任何计算机取证分析人员的必备技能之一,这种技术允许我们找到很多无法在磁盘上找到的数字证据,例如:

1、建立的网络链接;

2、仅在内存中的恶意软件;

3、加密密钥;

4、用户凭证。

从零开始处理内存映像可能会非常具有挑战性,因为这种处理方式要求分析人员对目标操作系统的内存布局和数据结构有深入的了解,但幸运的是,社区有一些工具可以为我们解析这些数据结构,并为我们提供所需的最终结果。这样一来,我们就可以将注意力放到最重要的部分,即我们实际想要看到的内容,以及如何通过内存取证分析达到我们的最终目标。

内存取证中最重要的工具之一就是Volatility,这是一种基于插件的Python工具,我们可以根据需求使用不同的插件,而每个插件都可以从内存中提取特定信息。

Volatility

映像信息

在使用Volatility 2时,如果要处理内存映像的话,你还需要使用一个专门的配置。但如果你使用的是Volatility 3,插件本身就会动态识别配置信息。

使用Volatility需要提供下列参数:

python3 vol.py -f <MemoryImage> <Plugin>

我们以一个简单的插件使用作为开始,下列命令可以显示有关目标设备的一些信息:

python3 .\vol.py -f D:\MemoryDump.mem windows.info

上图中显示的内容可以告诉我们目标系统的Windows版本和执行内存数据捕捉时的系统时间。

运行进程

内存映像中会包含与目标设备相关的所有信息,其中就包括执行内存映像捕捉时目标设备正在运行的进程信息,Volatility同样提供了多种插件来帮助我们调查和分析这些正在运行的进程。

第一个插件就是windows.pslist插件,该插件可以枚举出所有正在运行的进程,如下图所示:

windows.psscan插件与windows.pslist插件类似,但它能够获取已终止进程的信息,同时它也使用了不同的方法来收集正在运行进程的信息,如果威胁行为者使用了反分析技术来隐藏其恶意进程的话,这个插件也许会派上用场。

windows.pstree插件是使用最频繁的,它支持以树状形式查看进程信息,并查看到进程之间的父子关系:

接下来继续我们的分析,我们的目标设备中存在一个恶意活动,我们需要对其进行安全调查,看看我们能够从目标设备的内存中获取到哪些信息。

根据windows.pstree插件的输出,我们发现了一个svchost进程正在以powershell的子进程形式运行,并且它还运行了一个cmd子进程,这就非常可疑了。但最可疑的地方在于,svchost进程本应该只能是services.exe作为父进程,这也就意味着,这个地方是我们可以深入挖掘和研究的地方。

可疑进程调查

找到了可疑的进程之后,我们就可以使用其他的插件来对其进行更深入的分析了。

windows.cmdline插件可以用来查看任意进程通过命令行接口执行的命令,只需要给该插件提供目标进程ID即可(插件名称+“-h”参数可以查看指定插件所有支持的命令选项):

上图中我们可以看到,svchost进程执行的命令行命令是在Documents目录下执行的。

需要注意的是,在某些情况下,你可能会发现Volatility返回的结果中存在信息交换的情况。而内存交换(Swapping)是一种提升内存效率的机制,它可以通过将内存中某些不使用的内容移动到磁盘上,当需要使用的时候再移动回来。

除此之外,我们还可以使用windows.handles来获取引用的进程句柄,这有助于我们找到文件访问或进程创建行为:

当然了,该工具所提供的很多其他命令也非常实用,可以处理DLL注入或其他使用DLL执行的恶意行为。比如说windows.dlllist,该插件可以显示目标进程加载的DLL信息。

在了解了哪一个进程值得进行深入分析之后,我们就可以使用windows.dumpfiles.DumpFiles插件并提供目标进程PID来提取更多信息。

网络链接

获取目标设备内存映像最大的一个优势就在于,我们可以获取到目标设备网络链接的目标IP地址实时信息,以及对应的进程信息。

这里可以选择使用windows.netscan插件:

从上述输出内容中我们可以看到,可疑进程通过端口1337连接了192.168.21.140。

异常检测

某些插件还提供了一些规则来帮助我们自动检测异常,虽然可能会存在假阳性,但确实能够帮助我们大大减少需要分析和查看的数据量。

windows.malfind插件可以查看带有“读&写&执行”权限的内存页面,虽然合法进程也会使用这种技术,但恶意文件使用得会更加频繁和广泛,尤其是当内存页面为MZ(Windows可执行程序签名)时:

让一切变得更简单-MemProcFS

除了Volatility之外,我们也可以选择使用其他的工具,以寻求更多的实用功能。接下来,我们看看如何使用MemProcFS来提升我们内存取证分析的效率。

MemProcFS可以允许我们在文件系统视图中一次性查看多个Volatility插件的输出结果。

该工具的使用非常简单,我们只需要给它传递一个内存映像和一个forensic参数,该工具就会帮助我们对目标内存映像执行自动化取证分析。

需要注意的是,内存映像加载完成后,取证分析操作可能需要等待一段时间才能执行完毕。

在文件系统视图中切换到加载点时,就可以看到如下所示的文件了:

我们可以在每一个进程目录中通过进程名称和进程ID来查看关于正在运行进程的详细信息:

在sys目录中,我们可以查看关于目标系统的详细信息,例如网络、用户和操作系统信息等:

其中,最重要的就是Forensic目录了,其中包含了大量的内存取证信息:

这里我们可以看到系统针对各种组件创建的时间戳,比如说NTFS、网络、Web和进程等:

findevil目录中可以查看到该工具所识别的异常信息,files目录中可以查看到加载在内存中的磁盘内容:

当然了,本文所涉及到的内容还可以扩展至磁盘分析,比如说注册表分析或日志分析等。

总结

每一种安全分析和调查都有其独特的的目标,而深入分析取证文件所采用的方法也因实际情况而定。本文介绍的工具和方法是内存取证活动中常用的,几乎每一项取证活动都会涉及到这些方法步骤,例如寻找可疑的父子进程关系、网络连接、命令执行和异常等等。希望本文能够给信息安全取证人员提供一些新的思路,最大程度地实现取证分析效率的提升。

附件资料

本文涉及到的内存映像拆分成了三个部分,感兴趣的用户可以自行下载实操:

1、第一部分:【点我获取】

2、第二部分:【点我获取】

3、第三部分:【点我获取】

参考资料

https://github.com/volatilityfoundation/volatility3

https://github.com/ufrisk/MemProcFS

参考链接

Windows Memory Forensics

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1800047.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

R语言探索与分析14-美国房价及其影响因素分析

一、选题背景 以多元线性回归统计模型为基础&#xff0c;用R语言对美国部分地区房价数据进行建模预测&#xff0c;进而探究提高多元回 归线性模型精度的方法。先对数据进行探索性预处理&#xff0c;随后设置虚拟变量并建模得出预测结果&#xff0c;再使用方差膨胀因子对 多重共…

磁盘怎么分区?3 款最佳免费磁盘分区软件

您可能已经注意到&#xff0c;大多数计算机至少有 2 个分区&#xff1a;一个安装 Windows 操作系统和程序&#xff08;C:&#xff09;&#xff0c;另一个安装其他文件&#xff08;D:&#xff09;。 默认情况下&#xff0c;计算机只有一个硬盘和一个分区。建议创建 2 个或更多分…

kafka-生产者监听器(SpringBoot整合Kafka)

文章目录 1、生产者监听器1.1、创建生产者监听器1.2、创建生产者拦截器1.3、发送消息测试1.4、使用Java代码创建主题分区副本1.5、application.yml配置----v1版1.6、屏蔽 kafka debug 日志 logback.xml1.7、引入spring-kafka依赖1.8、控制台日志 1、生产者监听器 1.1、创建生产…

计算机组成结构—IO方式

目录 一、程序查询方式 1. 程序查询基本流程 2. 接口电路 3. 接口工作过程 二、程序中断方式 1. 程序中断基本流程 2. 接口电路 3. I/O 中断处理过程 三、DMA 方式 1. DMA 的概念和特点 2. DMA 与 CPU 的访存冲突 3. DMA 接口的功能 4. DMA 接口的组成 5. DMA 的…

阿里 Qwen2 模型开源,教你如何将 Qwen2 扩展到百万级上下文

本次开源的 Qwen2 模型包括 5 个尺寸&#xff0c;分别是 0.5B、1.5B、7B、72B、57B&#xff0c;其中 57B 的属于 MoE 模型&#xff08;激活参数 14B&#xff09;&#xff0c;其余为 Dense 模型&#xff0c;本篇文章会快速介绍下各个尺寸模型的情况&#xff0c;然后重点介绍下如…

数据结构初阶 堆(一)

一. 堆的概念和性质 我们在上一篇博客介绍存储二叉树的两种方式 分别是顺序结构和链式结构 数据结构初阶 初识二叉树-CSDN博客 1. 堆的概念 这里注意&#xff01;&#xff01;&#xff01; 这里说的堆和操作系统里面的堆没有半点关系&#xff01;&#xff01;&#xff01; …

环 境 变 量

如果希望某一个文件在 CMD 窗口的任意路径下都可以打开&#xff0c;则需要将该文件的路径存放在环境变量中。 在 CMD 中运行该文件时&#xff0c;优先查看当前路径下的文件&#xff0c;如果没有找到&#xff0c;则进入环境变量中记录的路径下寻找该文件&#xff0c;如果能找到…

kafka的副本机制

目录 Producer的ACKs参数 配置 acks配置为0 acks配置为1 acks配置为-1或者all 副本的目的就是冗余备份&#xff0c;当某个Broker上的分区数据丢失时&#xff0c;依然可以保障数据可用。因为在其他的Broker上的副本是可用的。 Producer的ACKs参数 对副本关系较大的是&…

Go源码--sync库(2)

简介 这边文章主要讲解 Sync.Cond和Sync.Rwmutex Sync.Cond 简介 sync.Cond 经常用来处理 多个协程等待 一个协程通知 这种场景&#xff0c; 主要 是阻塞在某一协程中 等待被另一个协程唤醒 继续执行 这个协程后续的功能。cond经常被用来协调协程对某一资源的访问 ants协程池…

Android存储空间不足?试试这8个快速解决方案!

在当今的科技时代&#xff0c;Android智能手机已成为我们日常生活的重要组成部分&#xff0c;因为它们保存着我们大量的关键数据。然而&#xff0c;随着我们的使用模式不断扩大&#xff0c;手机内部存储的可用性经常变得有限。手机存储空间不足不仅会损害设备的功能和响应能力&…

数据库系统概论(超详解!!!)第十节 过程化SQL

1.Transact-SQL概述 SQL(Structure Query Language的简称&#xff0c;即结构化查询语言) 是被国际标准化组织(ISO)采纳的标准数据库语言&#xff0c;目前所有关系数据库管理系统都以SQL作为核心&#xff0c;在JAVA、VC、VB、Delphi等程序设计语言中也可使用SQL&#xff0c;它是…

Angular 由一个bug说起之六:字体预加载

浏览器在加载一个页面时&#xff0c;会解析网页中的html和css&#xff0c;并开始加载字体文件。字体文件可以通过css中的font-face规则指定&#xff0c;并使用url()函数指定字体文件的路径。 比如下面这样: css font-face {font-family: MyFont;src: url(path/to/font.woff2…

Docker的安装、启动和配置镜像加速

前言&#xff1a; Docker 分为 CE 和 EE 两大版本。CE 即社区版&#xff08;免费&#xff0c;支持周期 7 个月&#xff09;&#xff0c;EE 即企业版&#xff0c;强调安全&#xff0c;付费使用&#xff0c;支持周期 24 个月。 而企业部署一般都是采用Linux操作系统&#xff0c;而…

电脑找不到mfc140udll怎么修复,总结几种靠谱的修复方法

在日常使用电脑娱乐工作的过程中&#xff0c;我们可能会遇到一些错误提示或程序无法正常运行的情况。其中&#xff0c;一个常见的问题是计算机缺失mfc140u.dll文件。这个问题可能会导致某些应用程序无法启动或运行&#xff0c;给工作和学习带来不便。本文将介绍5种解决计算机缺…

RPC框架原理(一)

RPC框架原理 网络和IO的关系&#xff0c;IO&#xff08;input和output&#xff09;面向的是谁&#xff1f;OSI 7层参考模型&#xff0c;TCP/IP协议为什么会出现一个会话层三次握手socket心跳keep alive四次挥手 网络IO&#xff08;IO模型&#xff09; IO框架底层 学习顺序&…

SpringCloud整合Seata简易使用(注册中心Nacos)

SpringCloud整合Seata解决分布式事务&#xff08;注册中心Nacos&#xff09; Seata下载与配置在Nacos中配置seata相关配置持久化为db时&#xff0c;需要提前在数据库中创建seata数据库&#xff0c;SpringCloud整合Seata服务GlobalTransactional注解使用 本案例是在windows中运行…

抢人!抢人!抢人! IT行业某岗位已经开始抢人了!

所谓抢滩鸿蒙&#xff0c;人才先行。鸿蒙系统火力全开后&#xff0c;抢人已成鸿蒙市场的主题词&#xff01; 智联招聘数据显示&#xff0c;春节后首周&#xff0c;鸿蒙相关职位数同比增长163%&#xff0c;是去年同期的2.6倍&#xff0c;2023年9-12月鸿蒙相关职位数同比增速为3…

长文预警:自动驾驶の核燃料库!Tesla数据标注系统解析

长文预警&#xff1a;自动驾驶の核燃料库&#xff01;Tesla数据标注系统解析 前言 本文整理自原文链接&#xff0c;写的非常好&#xff0c;给了博主很多启发&#xff0c;投原创是因为平台机制&#xff0c;希望能被更多人看到。 掐指一算&#xff0c;又到了该学习的时间&#…

【权威出版/投稿优惠】2024年机器视觉与自动化技术国际会议(MVAT 2024)

2024 International Conference on Machine Vision and Automation Technology 2024年机器视觉与自动化技术国际会议 【会议信息】 会议简称&#xff1a;MVAT 2024截稿时间&#xff1a;(以官网为准&#xff09;大会地点&#xff1a;中国重庆会议官网&#xff1a;www.icmvat.co…

北京崇文门中医医院贾英才与行业共进——第二届海峡两岸中西医结合肾脏病学术大会

第二届海峡两岸中西医结合肾脏病学术大会授牌仪式于2024年6月7号在北京前门国医堂举行。 第二届海峡两岸中西医结合肾脏病学术大会的主要议程可能包括以下内容&#xff1a; 学术讲座&#xff1a;来自海峡两岸的专家学者发表演讲&#xff0c;分享肾脏病防治、透析技术等方面的研…