Passwd, Shadow & Opasswd
Las distribuciones basadas en Linux pueden usar diferentes mecanismos de autenticación. Uno de los mÔs comunes y estandarizados es el uso de Módulos de Autenticación Enchufables (PAM, por sus siglas en inglés). Los módulos utilizados para esto se llaman pam_unix.so
o pam_unix2.so
y estƔn ubicados en /usr/lib/x86_x64-linux-gnu/security/
en las distribuciones basadas en Debian. Estos módulos administran la información del usuario, la autenticación, las sesiones, las contraseñas actuales y las antiguas. Por ejemplo, si queremos cambiar la contraseña de nuestra cuenta en el sistema Linux con el comando passwd
, PAM es invocado, toma las precauciones necesarias y gestiona la información de manera adecuada.
El módulo estÔndar pam_unix.so
utiliza llamadas API estandarizadas de las bibliotecas del sistema y archivos para actualizar la información de la cuenta. Los archivos estÔndar que se leen, administran y actualizan son /etc/passwd
y /etc/shadow
. PAM también tiene muchos otros módulos de servicio, como LDAP, mount o Kerberos.
Archivo /etc/passwd
/etc/passwd
El archivo /etc/passwd
contiene información sobre todos los usuarios existentes en el sistema y puede ser leĆdo por todos los usuarios y servicios. Cada entrada en este archivo identifica un usuario del sistema. Cada entrada tiene siete campos, separados por dos puntos (:
), que contienen información especĆfica del usuario. Una entrada tĆpica se verĆa asĆ:
cry0l1t3:x:1000:1000:cry0l1t3,,,:/home/cry0l1t3:/bin/bash
Formato del archivo /etc/passwd
:
/etc/passwd
:Nombre de inicio de sesión
Información de contraseña
UID (Identificador de usuario)
GID (Identificador de grupo)
Nombre completo/comentarios
Directorio principal
Shell de inicio
Uno de los campos mĆ”s interesantes es el de información de contraseƱa, ya que puede contener diferentes entradas. En sistemas antiguos, este campo podrĆa contener el hash de la contraseƱa cifrada. Sin embargo, en los sistemas modernos, los valores de hash se almacenan en el archivo /etc/shadow
.
Editando /etc/passwd
/etc/passwd
En condiciones normales, encontramos el valor x
en este campo, lo que significa que las contraseƱas se almacenan en forma cifrada en /etc/shadow
. Sin embargo, en algunos casos, el archivo /etc/passwd
puede ser escribible por error, lo que permitirĆa eliminar la información de la contraseƱa para el usuario root
, permitiendo iniciar sesión sin que se solicite una contraseña.
Antes de editar:
root:x:0:0:root:/root:/bin/bash
DespuƩs de editar:
root::0:0:root:/root:/bin/bash
Esto causarĆa que el sistema no solicite una contraseƱa cuando alguien intente iniciar sesión como root
.
Aunque estos casos son raros, es importante estar atentos a brechas de seguridad, especialmente cuando se configuran permisos para directorios completos.
Archivo /etc/shadow
/etc/shadow
El archivo /etc/shadow
fue desarrollado para aumentar la seguridad del almacenamiento de contraseñas, ya que contiene toda la información relacionada con las contraseñas de los usuarios. Este archivo es solo legible por usuarios con permisos de administrador. Su formato es similar al de /etc/passwd
, pero dividido en nueve campos:
cry0l1t3:$6$wBRzy$...SNIP...x9cDWUxW1:18937:0:99999:7:::
Formato del archivo /etc/shadow
:
/etc/shadow
:Nombre de usuario
ContraseƱa cifrada
Ćltimo cambio de contraseƱa
Edad mĆnima de la contraseƱa
Edad mƔxima de la contraseƱa
PerĆodo de advertencia
PerĆodo de inactividad
Fecha de expiración
No utilizado
Si el campo de la contraseƱa contiene caracteres como !
o *
, el usuario no puede iniciar sesión con una contraseƱa de Unix, aunque podrĆan usarse otros mĆ©todos de autenticación (Kerberos, autenticación basada en claves, etc.). Si el campo de la contraseƱa estĆ” vacĆo, el inicio de sesión no requiere una contraseƱa.
Algoritmos de cifrado
El formato de las contraseƱas cifradas es el siguiente:
$<tipo>$<sal>$<hash>
Los tipos de cifrado disponibles incluyen:
$1$ ā MD5
$2a$ ā Blowfish
$2y$ ā Eksblowfish
$5$ ā SHA-256
$6$ ā SHA-512 (predeterminado en sistemas modernos)
Archivo /etc/security/opasswd
/etc/security/opasswd
La biblioteca PAM puede evitar el uso de contraseƱas antiguas mediante el archivo /etc/security/opasswd
, que requiere permisos de administrador para ser leĆdo. Este archivo almacena contraseƱas antiguas, y su formato es similar al de los archivos passwd
y shadow
.
Cracking de Credenciales en Linux
Una vez que hemos recopilado algunos hashes, podemos intentar descifrarlos utilizando herramientas como Hashcat.
Combinando archivos passwd
y shadow
passwd
y shadow
sudo cp /etc/passwd /tmp/passwd.bak
sudo cp /etc/shadow /tmp/shadow.bak
unshadow /tmp/passwd.bak /tmp/shadow.bak > /tmp/unshadowed.hashes
Usando Hashcat para crackear hashes
hashcat -m 1800 -a 0 /tmp/unshadowed.hashes rockyou.txt -o /tmp/unshadowed.cracked
Crackeando hashes MD5
hashcat -m 500 -a 0 md5-hashes.list rockyou.txt
Conclusión
El correcto manejo y protección de archivos como /etc/passwd
, /etc/shadow
y /etc/security/opasswd
es crucial para mantener la seguridad de un sistema Linux, ya que cualquier vulnerabilidad en estos archivos puede ser explotada para obtener acceso no autorizado.
Last updated
Was this helpful?