MemProcFS 是一种将物理内存视为虚拟文件系统中的文件的简便方法。简单的点击内存分析,无需复杂的命令行参数!通过安装的虚拟文件系统中的文件或通过功能丰富的应用程序库访问内存内容和工件以包含在您自己的项目中。
链接GitHub - ufrisk/MemProcFS: MemProcFS
下载下来以后直接使用
发现有了一个M盘,翻了翻也看不太懂都有啥
下载下来直接powershell:
以管理员身份启动 Windows PowerShell(或 Windows PowerShell ISE 或带 PSVersion 的 Visual Studio Code:5.1)并打开/运行 MemProcFS-Analyzer.ps1。
刚开始会运行不了,因为windows权限限制,参考https://blog.csdn.net/Ximerr/article/details/123498701
提示连不上网[Error] github.com is NOT reachable. Please check your network connection and try again.,使用代理:
运行起来了:
弹框:直接点YES
接下来就可以一顿分析啦
以下内容来自内存取证新选择:像访问文件一样进行内存取证—内存取证利器MemProcFs介绍
我们以内存里的注册表分析为例,来显示如何进行内存分析。
我们打开M:\registry\hive_files,可以看到在内存里提取到的注册配置单元都在该目录下:
我们可以直接使用注册表配置单元工具进行分析,比如使用内置注册表编辑器Regedit进行分析。
需要注意的是注册表编辑器需要将对应的配置单元文件(.reghive)复制到本地某个目录,比如我们复制到F:\Reghives目录下,如图:
我们运行Regedit.exe,如图:
我们选择“文件”菜单->”加载配置单元“,如图:
我们选择加载SOFTWARE配置单元,如下图:
加载完成如下图:
可以看到在HKU下挂载了一个名为SOFT的注册表键,可以像正常注册表那样访问里面的键和值。
我们也可以使用取证软件比如Registry Explorer(https://ericzimmerman.github.io/#!index.md)加载分析,如图:
当我们完成内存分析工作时,只要在运行MemProcFs的窗口按Ctrk+C即可退出。如图:
0x03. MemProcFS能做什么
现在,我们看一下MemProcFS能解析哪些数据:
1. 进程列表
进程列表有两个目录,一个是根目录下的name目录,里面是按进程名称列出的每个进程目录。如下图:
进程名字后面的数字是进程的pid。
另外一个目录是根目录下pid目录,里面是按进程 pid 列出的每个进程目录。如下图:
这些子目录里可以查看进程的相关信息,比如命令行:
2. 系统信息
系统信息在根目录下的sys目录,如图所示:
这里面的内容包括:
比如操作系统版本如下图:
3. 其他系统信息
Sys目录下还有一些子目录,代表不同的系统信息,比如证书、驱动、进程、网络、内核对象等,如下图:
比如我们可以看看users目录,下面是用户信息,如图:
4. 取证相关信息
取证相关信息在根目录forensic子目录。该目录包含与 MemProcFS 取证子系统相关的目录和文件。取证子系统是可以对内存转储进行的更全面的面向批处理的分析任务的集合。默认情况下,取证模式未启用。
可以通过命令行参数-forensic或编辑文件forensic_enable.txt来启用取证模式。命令行参数和文件都采用 1-4 之间的数字来启动取证模式。
取证模式可能需要一些时间来分析。它将一次性读取完整的内存转储并并行执行多个分析任务。结果将保存到 SQLITE 数据库中。根据选择启动的数字 1-4,完成后可以在 sqlite 浏览器中打开 sqlite 数据库。完成后,时间线和 NTFS MFT 分析等将作为forensic目录的子目录提供。
5. 其他杂项信息
杂项信息在根目录线下的misc目录,该目录包含代表与全局上下文相关的各种杂项分析任务的子目录。
其中包括:bitlocker相关信息、检测到恶意软件信息、内存地址和物理地址映射表、浏览器相关信息等。这个目录下也有一个全局进程列表文件,如下图:
6. 其他
在根目录下有一个conf目录,该文件包含与各个进程无关的全局内存进程文件系统状态和配置设置。
另外还有一个VM目录,默认情况下,vm目录是隐藏的。如果检测到支持的虚拟机,它将出现。必须通过命令行参数启用 VM 检测。
从上面的内容来看,MemProcFS提供了内存取证分析巨细靡遗的内容,可以使得我们可以细致分析目标系统内存的内容。
0x04. MemProcFS命令行选项
最后,MemProcFS提供了详细的选项,可以根据分析的要求采用不同的选项。具体命令行选项,可以参考https://github.com/ufrisk/MemProcFS/wiki/_CommandLine
一般常见的命令行包括以下:
-
将内存转储文件挂载为默认 M:
memprocfs.exe -device c:\temp\win10x64-dump.raw -
将内存转储文件挂载为默认的 M:,但提供更冗余的信息:
memprocfs.exe -device c:\temp\win10x64-dump.raw -v -
将内存转储文件挂载为默认 M: 并启动取证模式:
memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1 -
将内存转储文件挂载为 S:
memprocfs.exe -mount s -device c:\temp\win10x64-dump.raw -
使用 WinPMEM 驱动程序以只读模式挂载实时目标内存(实时内存取证分析):
memprocfs.exe -device pmem -
使用相应的页面文件挂载内存转储:
-
memprocfs.exe -device unknown-x64-dump.raw -pagefile0 pagefile.sys -pagefile1 swapfile.sys