Cómo obtener los hashes de las contraseñas en macOS 10.14

No puedes abrir la carpeta con los hashes de las contraseñas almacenados, así que tendrás que ir a desactivar SIP (System Integrity Protection), una característica que se introdujo en Mac OS X El Capitan (10.11). SIP impide que se modifiquen ciertos permisos, y sólo se puede cambiar del lado del cliente, en modo monopuesto o de recuperación. Ni siquiera el acceso de administrador o root lo hará. En este caso, estamos intentando modificar la carpeta [math]/private/var/db/dslocal/nodes/Default/users/.plist[/math].

Paso 1: Primero, cierra la sesión de todos los usuarios y cierra todas las aplicaciones, y luego reinicia tu Mac. Cuando escuche el sonido "dummmmm" o timbre, vaya y mantenga pulsado CMD+R después del sonido pero antes de que aparezca el Logotipo de Apple. Mantenga pulsado hasta que el Logotipo de Apple desaparezca (entre 30 segs - 10 mins, dependiendo de lo rápido que sea su Mac), y estará en modo de recuperación.

En la barra superior, vaya a [math]Utilidades > Terminal[/math] y escriba [math]csrutil disable[/math]. Esto desactivará el SIP. (skip the following step if you have admin access to your account)

Step O (O for Optional): If you don’t have admin access to your account, then you’ll need to do the same thing. Restart your Mac, when you hear the chime, this time, hold CMD+S. When single-user mode boots up, go and do the following:

  1. /sbin/mount -uw / 
  2. rm /var/db/.AppleSetupDone 
  3.  
  4. // If you get the error "rm /var/db/.AppleSetupDone: No such file or directory", then type the following: 
  5.  
  6. touch /var/db/.AppleSetupDone 
  7.  
  8. // For the previous step, please type carefully. Don't destroy your whole disk. 
  9.  
  10. reboot 

Now go restart your Mac and log on to your normal account.

Step 3: Once you’re in, open Finder and go to [math]/private/var/db/[/math]. Navigate all the way to [math]/private/var/db/dslocal/nodes/Default/users/.plist[/math]. Si hay alguna carpeta/archivo en tu camino, haz clic con el botón derecho sobre ella, pulsa "Obtener información", haz clic en el candado inferior derecho e introduce un nombre de usuario y una contraseña de administrador cuando te lo pida. Cambia los permisos de "todos" a lectura y escritura.

Una vez que estés por fin en [math]/var/db/dslocal/nodes/Default/users/[/math], desplázate hasta el final y busca el nombre de usuario de la cuenta de la que intentas obtener el hash de la contraseña. Modifica los permisos del archivo <[math]username>.plist[/math]a Sólo lectura, y luego abre el archivo haciendo doble clic. Yay!

Para obtener la sección específica del hash, junto con las iteraciones y la clave de entropía, introduzca

[math]sudo defaults read /var/db/dslocal/nodes/Default/users/.plist ShadowHashData|tr -dc 0-9a-f|xxd -r -p|plutil -convert xml1 - -o -[/math]

Y escriba la contraseña de administrador cuando se le solicite. Si estás tratando de descifrar una contraseña (sugiero Hashcat), te sugiero que veas esta increíble guía (no es una promoción) del usuario klanomath en StackExchange.

- Mat