Passwd, Shadow & Opasswd

Linux puede usar diferentes mecanismos de autenticación destacando el uso de PAM. Los módulos más comunes son pam_unix.so o pam_unix2.so, ubicados en /usr/lib/x86_x64-linux-gnu/security/. Gestionan información de usuarios, autenticaciones, sesiones y contraseñas actuales y antiguas.
Al cambiar la contraseña con passwd, se invoca PAM, que actualiza /etc/passwd, /etc/shadow, etc.

/etc/passwd

Contiene información de cada usuario del sistema (lectura accesible a todos). Cada línea describe un usuario con 7 campos separados por : — login name, password info, UID, GUID, full name, home directory, shell.

Eliminar la contraseña de root

txt
# Antes
root:x:0:0:root:/root:/bin/bash
# Después
root::0:0:root:/root:/bin/bash
Con ello root quedaría sin contraseña. Situación poco común, pero a veces los administradores dan permisos excesivos a /etc.

/etc/shadow

Almacena hashes de contraseñas. Formato:
txt
usuario : $6$salt$hash : último_cambio : min_edad : max_edad : aviso : inactividad : expiración : campo_no_usado

/etc/security/opasswd

PAM puede evitar la reutilización de contraseñas antiguas guardándolas aquí:
txt
cry0l1t3:1000:2:$1$HjFAfYTG$qNDkF0zJ3v8ylCOrKB0kt0,$1$kcUjWZJX$E9uMSmiQeRh4pAAgzuvkq1
Múltiples hashes para un mismo usuario, separados por comas. Notar si son MD5 ($1$) u otro método.

Crack Hashes

terminal
# SHA-512 (shadow)$ hashcat -m 1800 -a 0 /tmp/unshadowed.hashes rockyou.txt -o /tmp/unshadowed.cracked# MD5 (opasswd)$ hashcat -m 500 -a 0 md5-hashes.list rockyou.txt