macOS Memory Dumping

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持HackTricks的其他方式:

WhiteIntel是一个由暗网支持的搜索引擎,提供免费功能,用于检查公司或其客户是否受到窃取恶意软件侵害

WhiteIntel的主要目标是打击由信息窃取恶意软件导致的账户劫持和勒索软件攻击。

您可以访问他们的网站并免费尝试他们的引擎:


内存遗留物

交换文件

交换文件,例如/private/var/vm/swapfile0,在物理内存已满时充当缓存。当物理内存没有足够空间时,其数据会转移到交换文件,然后根据需要重新转移到物理内存。可能存在多个交换文件,名称类似于swapfile0、swapfile1等。

休眠镜像

位于/private/var/vm/sleepimage的文件在休眠模式期间至关重要。当OS X休眠时,内存中的数据存储在此文件中。唤醒计算机时,系统会从此文件中检索内存数据,使用户可以继续之前的操作。

值得注意的是,在现代MacOS系统上,出于安全原因,此文件通常是加密的,使恢复变得困难。

  • 要检查休眠镜像是否启用了加密,可以运行命令sysctl vm.swapusage。这将显示文件是否已加密。

内存压力日志

MacOS系统中另一个重要的与内存相关的文件是内存压力日志。这些日志位于/var/log中,包含有关系统内存使用情况和压力事件的详细信息。它们对诊断与内存相关的问题或了解系统如何随时间管理内存非常有用。

使用osxpmem转储内存

要在MacOS机器中转储内存,可以使用osxpmem

注意:以下说明仅适用于具有Intel架构的Mac。该工具现已存档,最后一次发布是在2017年。以下说明下载的二进制文件针对Intel芯片,因为在2017年时Apple Silicon还不存在。可能可以为arm64架构编译二进制文件,但您需要自行尝试。

#Dump raw format
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem

#Dump aff4 format
sudo osxpmem.app/osxpmem -o /tmp/dump_mem.aff4

如果你发现这个错误:osxpmem.app/MacPmem.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8) 你可以通过以下方式修复:

sudo cp -r osxpmem.app/MacPmem.kext "/tmp/"
sudo kextutil "/tmp/MacPmem.kext"
#Allow the kext in "Security & Privacy --> General"
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem

其他错误 可能通过在"安全性与隐私 --> 通用"中允许加载 kext 来修复,只需允许即可。

您还可以使用这个一行命令来下载应用程序,加载 kext 并转储内存:

sudo su
cd /tmp; wget https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-2.1.post4.zip; unzip osxpmem-2.1.post4.zip; chown -R root:wheel osxpmem.app/MacPmem.kext; kextload osxpmem.app/MacPmem.kext; osxpmem.app/osxpmem --format raw -o /tmp/dump_mem

WhiteIntel 是一个由暗网推动的搜索引擎,提供免费功能,用于检查公司或其客户是否已受到窃取恶意软件损害

WhiteIntel 的主要目标是打击由窃取信息恶意软件导致的账户劫持和勒索软件攻击。

您可以访问他们的网站并免费尝试他们的引擎:

从零开始学习 AWS 黑客技术,成为专家 htARTE(HackTricks AWS 红队专家)

支持 HackTricks 的其他方式:

最后更新于