hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-memory-dumping.md
carlospolop 466ebcbb16 f
2023-06-05 20:30:03 +02:00

5.9 KiB

Volcado de memoria de macOS

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Artefactos de memoria

Archivos de intercambio

  • /private/var/vm/swapfile0: Este archivo se utiliza como caché cuando la memoria física se llena. Los datos en la memoria física se enviarán al archivo de intercambio y luego se intercambiarán de nuevo en la memoria física si se necesitan de nuevo. Pueden existir más de un archivo aquí. Por ejemplo, puede ver swapfile0, swapfile1, y así sucesivamente.

  • /private/var/vm/sleepimage: Cuando macOS entra en hibernación, los datos almacenados en la memoria se colocan en el archivo sleepimage. Cuando el usuario vuelve y despierta la computadora, la memoria se restaura desde sleepimage y el usuario puede continuar donde lo dejó.

    Por defecto, en los sistemas modernos de MacOS, este archivo estará encriptado, por lo que puede que no sea recuperable.

    • Sin embargo, la encriptación de este archivo podría estar desactivada. Comprueba la salida de sysctl vm.swapusage.

Volcado de memoria con osxpmem

Para volcar la memoria en una máquina MacOS, puedes usar osxpmem.

Nota: Las siguientes instrucciones solo funcionarán para Mac con arquitectura Intel. Esta herramienta está ahora archivada y la última versión fue en 2017. El binario descargado usando las instrucciones a continuación se dirige a chips Intel ya que Apple Silicon no existía en 2017. Puede ser posible compilar el binario para la arquitectura arm64, pero tendrás que intentarlo por ti mismo.

#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

Si encuentras este error: osxpmem.app/MacPmem.kext no se pudo cargar - (libkern/kext) fallo de autenticación (permisos/propietario del archivo); revisa los registros del sistema/kernel para encontrar errores o intenta con kextutil(8) Puedes solucionarlo haciendo:

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

Otros errores pueden ser solucionados permitiendo la carga del kext en "Seguridad y privacidad --> General", simplemente permitiéndolo.

También puedes usar este oneliner para descargar la aplicación, cargar el kext y volcar la memoria:

{% 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 %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥