¡Fichero /etc/shadow a fondo!

En este post vamos a ver otro tipo de contenido relacionado con contraseñas, tranquilos porque la serie de Hashcat continuará en los siguientes posts :)

En el post de hoy, vamos a hablar de fichero /etc/shadow, fichero en el cual se almacenan las contraseñas para cada usuario dentro del sistema operativo Linux. En este fichero podremos encontrar además de la contraseña para cada usuario, información relativa a dicha contraseña, por ejemplo, la fecha de expiración de dicha contraseña.

Dentro del fichero podremos ver que por cada línea se especifica el usuario, el hash de la contraseña y las diferentes políticas que se aplican a las contraseñas del usuario. En cada línea encontramos los diferentes campos separados por el símbolo “:” .

Normalmente cada línea del fichero tiene un aspecto similar a la siguiente:

Cada fragmento marcado es un campo diferente, la referencia es la siguiente

  1. El nombre del usuario
  2. El algoritmo utilizado
  3. La sal criptográfica para la contraseña
  4. El hash de la contraseña. Este es el hash que se utiliza para poder autentificar al usuario.
  5. Días transcurridos desde el 1 de enero de 1970 hasta el día en el que la contraseña fue cambiada por última vez.
  6. El número mínimo de días requeridos para que el usuario pueda cambiar la contraseña
  7. El número de días máximo que será valida la contraseña, pasado ese tiempo el usuario deberá de cambiar la contraseña.
  8. El número de días que quedan para que la contraseña expire, durante este periodo el usuario será advertido de que tiene que cambiar la contraseña
  9. El número de días que deben pasar para que una vez la contraseña haya caducado el sistema deshabilite la cuenta del usuario.
  10. El número de días desde el 1 de enero de 1970 que han trascurrido desde que la contraseña del usuario ha expirado o ha sido deshabilitada.

Como se puede observar en la foto, cuando no hay definido una política para un campo, este está en blanco. Otra cosa que podemos observar es que el campo de la contraseña está formado por el algoritmo utilizado, la sal utilizada y el hash de la contraseña, el cual sigue el siguiente patrón $id_algortimo$salt$hashed

Los ids de los algoritmos utilizados por Linux son los siguientes:

  • $1$ à MD5
  • $2a$ à Blowfish
  • $2y$ à Blowfish
  • $5$ à SHA-256
  • $6$ à SHA-512

En el caso de la foto se ha utilizado el algoritmo SHA-512.

Para visualizar el contenido del fichero podemos hacer uso del siguiente comando:

sudo cat /etc/shadow

Este fichero es realmente importante, ya que es uno de los primeros que se intentará obtener en los ataques a equipos. Es por ello que deberemos de proteger las contraseñas con buenas políticas, para que en caso de ataque, sea muy difícil obtener las credenciales del usuario y en especial la clave del administrador del sistema.

Este post es más teórico, pero me parece un tema muy interesante de explicar y por eso os lo he traído, además veremos cosas más interesantes que hacer con este fichero en futuras entradas del blog ;)

Un saludo a todos (os dejo también el enlace al algoritmo de Blowfish para que le echéis un vistazo)  

Comentarios

Entradas populares de este blog

Realizando hash con PowerShell

Cracking hashes con Hashcat - 4

Cracking hashes con Hashcat - 2