Respuestas:
Las contraseñas en un sistema Linux no están encriptadas, están cifradas, lo cual es una gran diferencia.
No es posible revertir una función hash por definición. Para obtener más información, consulte la entrada de Hash Wikipedia .
La función hash utilizada depende de la configuración de su sistema. MD5 y blowfish son ejemplos comunes de funciones hash usadas.
Por lo tanto, la contraseña "real" de un usuario nunca se almacena en el sistema.
Si inicia sesión, la cadena que ingrese como contraseña se cifrará y comparará con su archivo / etc / shadow. Si coincide, obviamente ingresó la contraseña correcta.
De todos modos, todavía hay algunos vectores de ataque contra los hashes de contraseñas. Puede mantener un diccionario de contraseñas populares y probarlas automáticamente. Hay muchos diccionarios disponibles en Internet. Otro enfoque sería probar todas las combinaciones posibles de personajes que consumirán una gran cantidad de tiempo. Esto se conoce como ataque de fuerza bruta.
Rainbowtables son otro buen vector de ataque contra hashes. La idea detrás de este concepto es simplemente calcular previamente todos los hashes posibles y luego buscar un hash en las tablas para encontrar la contraseña correspondiente. Existen varios proyectos de computación distribuida para crear tales tablas , el tamaño difiere de los caracteres utilizados y es principalmente de varios TB.
Para minimizar el riesgo de tales tablas de búsqueda, es una práctica común y el comportamiento predeterminado en Unix / Linux agregar un llamado " salt " al hash de contraseña. Hash hash tu contraseña, agrega un valor de sal aleatorio al hash y hash esta nueva cadena de nuevo. Debe guardar el nuevo hash y la sal para poder verificar si un valor ingresado es la contraseña correcta. La gran ventaja de este método es que tendría que crear nuevas tablas de búsqueda para cada sal única.
Una herramienta popular para ejecutar ataques de diccionario o de fuerza bruta contra contraseñas de usuarios de diferentes sistemas operativos es John The Ripper (o JTR). Vea la página de inicio del proyecto para más detalles:
John the Ripper es un rápido descifrador de contraseñas, actualmente disponible para muchos tipos de Unix, Windows, DOS, BeOS y OpenVMS. Su propósito principal es detectar contraseñas débiles de Unix.
Es prácticamente imposible descifrar esas contraseñas ya que están encriptadas en un sentido.
Solo puede descifrar el archivo de sombra por fuerza bruta: incluye valores hash de las contraseñas, por lo que su única oportunidad es adivinar las contraseñas, calcular el hash y ver si los hashes son idénticos. Consulte wikipedia para obtener detalles sobre la generación de hash.
Como han dicho otros, realmente no se puede descifrar el archivo de sombra.
Lo único que puede intentar es adivinar por fuerza bruta la contraseña utilizando una herramienta como John the Ripper . Esto puede o no tener éxito, y seguramente tomará mucho tiempo.
Las contraseñas se encriptan usando un algoritmo que tomará una contraseña y creará un hash que es único para esa contraseña. Este hash se almacena en el archivo / etc / shadow. No es posible recuperar la contraseña del hash. Los únicos métodos para recuperar una contraseña son forzar la fuerza bruta de todo el espacio de teclas o utilizar algún tipo de ataque de diccionario . Las primeras funciones hash utilizaron el estándar DES. El aumento en el poder de cómputo ha permitido forzar al espacio de teclas DES en un tiempo razonable. Las funciones hash modernas que se utilizan para cifrar contraseñas incluyen MD5, SHA, etc. Puede encontrar más información sobre la biblioteca crypt (3) aquí .