Autenticación en Linux y Crackeo de Hashes

Las distribuciones Linux 🐧 soportan varios mecanismos de autenticación. Uno de los más comunes es PAM (Pluggable Authentication Modules).
Estos módulos controlan:

Ejemplos de módulos: pam_unix.so, pam_unix2.so
Ubicación típica en Debian: /usr/lib/x86_64-linux-gnu/security/

👉 Cuando un usuario cambia su contraseña con passwd, PAM gestiona cómo se guarda y actualiza de forma segura.


📂 Archivo /etc/passwd

Contiene información básica de cada usuario. Es legible por todos los usuarios del sistema.
Cada línea tiene 7 campos separados por :.

Ejemplo:

unai:x:1000:1000:,,,:/home/unai:/bin/bash

Campo Valor
👤 Usuario unai
🔑 Contraseña x
🆔 UID 1000
👥 GID 1000
📝 GECOS ,,,
🏠 Home /home/unai
🖥️ Shell /bin/bash

👉 El campo contraseña puede contener:

Ejemplo peligroso:

root::0:0:root:/root:/bin/bash

Esto permitiría iniciar sesión como root sin contraseña. 🚨


📂 Archivo /etc/shadow

Aquí se almacenan los hashes de contraseñas 🔐 (solo accesible por root).
Formato de ejemplo:

unai:$y$j9T$3QSBB6CbHEu...SNIP...f8Ms:18955:0:99999:7:::

Campo Valor
👤 Usuario unai
🔑 Contraseña yj9T$3QSBB6CbHEu...SNIP...f8Ms
📅 Último cambio 18955
🔒 Edad mínima 0
⏳ Edad máxima 99999
⚠️ Advertencia 7
🚫 Inactividad -
⏰ Expiración -

Los hashes siguen el formato:

$id$salt$hash

📌 Ejemplos de algoritmos usados:


📂 Archivo /etc/security/opasswd

Guarda contraseñas antiguas 🔄 (para que un usuario no las reutilice).
Solo root puede leerlo.

Ejemplo:

unai:1000:2:$1$HjFAfYTG$qNDkF0zJ3v8y,$1$kcUjWZJX$E9uMSmiQeRh4

📌 Aquí vemos que se usó MD5 (1), un algoritmo débil que puede romperse fácilmente.


🔓 Crackeo de credenciales en Linux

Si tenemos acceso root, podemos combinar los archivos /etc/passwd y /etc/shadow con unshadow, y después crackear con John the Ripper o Hashcat 💥.

Ejemplo:

sudo cp /etc/passwd /tmp/passwd.bak
sudo cp /etc/shadow /tmp/shadow.bak
unshadow /tmp/passwd.bak /tmp/shadow.bak > /tmp/unshadowed.hashes

Ahora crackeamos:

hashcat -m 1800 -a 0 /tmp/unshadowed.hashes rockyou.txt -o /tmp/unshadowed.cracked

⚡ Esto nos revelará las contraseñas en texto plano si el diccionario tiene éxito.