hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-files-folders-and-binaries/macos-memory-dumping.md

4.9 KiB

Volcado de Memoria en macOS

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

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 trasladan al archivo de intercambio y luego se vuelven a colocar en la memoria física si se necesitan de nuevo. Puede haber más de un archivo aquí. Por ejemplo, podrías ver swapfile0, swapfile1, y así sucesivamente.
  • /private/var/vm/sleepimage: Cuando OS X entra en hibernación, los datos almacenados en la memoria se colocan en el archivo sleepimage. Cuando el usuario regresa y despierta la computadora, la memoria se restaura desde el sleepimage y el usuario puede continuar donde lo dejó.

Por defecto en los sistemas modernos de MacOS este archivo estará cifrado, por lo que podría no ser recuperable.

  • Sin embargo, el cifrado de este archivo podría estar desactivado. Comprueba la salida de sysctl vm.swapusage.

Volcando la memoria con osxpmem

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

Nota: Las siguientes instrucciones solo funcionarán para Macs con arquitectura Intel. Esta herramienta ahora está archivada y la última versión fue en 2017. El binario descargado usando las instrucciones a continuación está dirigido a chips Intel ya que Apple Silicon no existía en 2017. Podría 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 failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try 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 podrían solucionarse permitiendo la carga del kext en "Seguridad y Privacidad --> General", simplemente permítelo.

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
Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks: