Mientras @gowenfawr alcanza los puntos principales, tengo algunos para agregar:
La mayoría de los sistemas, pero no todos , ocultan las contraseñas reales en /etc/shadow
. Para ver si su sistema es vulnerable, verifique una cuenta de usuario real. Si parece que
stighemmer:x:...
Entonces tus contraseñas son seguras.
Si parece
stighemmer:kjsaashgdkwqvbm:...
Entonces tus contraseñas son NO seguras.
Sí, la contraseña se confunde con una función hash de una sola vía, pero eso no es suficiente. Tener este archivo le permite al pirata informático verificar si un usuario determinado tiene una contraseña determinada sin intentar iniciar sesión.
En 1970, este control fue lento y las cosas eran razonablemente seguras. Hoy, un hacker puede verificar millones de contraseñas por segundo. Si uno de sus usuarios tiene una contraseña que se puede adivinar, la cuenta de ese usuario será hackeada. Y el límite de lo que es "adivinable" se empuja con cada generación de procesadores.
Ahora ha comprobado y ha encontrado que sus contraseñas están almacenadas de forma segura en /etc/shadow
. Bien, problema resuelto.
No del todo. /etc/passwd
contiene más información.
Contiene el nombre completo de cada usuario. Esto es muy útil para ataques de ingeniería social.
Contiene una lista de usuarios del sistema, que indica qué software está instalado.
Por lo tanto, recibo un correo electrónico que dice "Hola Stig, he olvidado la contraseña de postgres. ¿Me lo recuerdas? Firmado, otro usuario real". Como mi cliente de correo electrónico útil no muestra la dirección de correo electrónico completa, no me daré cuenta de que este correo electrónico proviene de un país remoto. Yo respondo: "Es 'S3CR37'". Vaya, la base de datos de la empresa acaba de ser hackeada.
Por supuesto, esta no es la única forma en que se exponen los nombres completos, de todos modos, debe enseñar a los usuarios los ataques de ingeniería social.