4.9 KiB
macOS内存转储
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)!
支持HackTricks的其他方式:
- 如果您想看到您的公司在HackTricks中做广告或下载PDF格式的HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 探索PEASS家族,我们独家的NFTs收藏品
- 加入 💬 Discord群组 或 电报群组 或 关注我的Twitter 🐦 @carlospolopm。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。
内存遗留物
交换文件
交换文件,例如/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并转储内存:
{% code overflow="wrap" %}
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
{% endcode %}
从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)!
支持HackTricks的其他方式:
- 如果您想看到您的公司在HackTricks中做广告或下载PDF格式的HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks周边产品
- 探索PEASS家族,我们的独家NFTs
- 加入 💬 Discord群 或 电报群 或 关注我的Twitter 🐦 @carlospolopm。
- 通过向HackTricks和HackTricks Cloud github仓库提交PR来分享您的黑客技巧。