Una de las herramientas que hallamos en Kali Linux es John The Ripper y por su potencia es merecedor de estar en el top de su categoría, esta herramienta permite realizar un cracking a un hash determinado.
¿Y qué es un hash?
Un hash es un algoritmo el cual permite crear a través de una entrada (contraseña, texto, archivos) una salida alfanumérica de longitud fija. En el caso de las contraseñas la función principal del hash es proteger la confidencialidad de las mismas, ya que así es posible asegurar que no sean visibles en texto plano.
Existen varios tipos de hash para cifrar contraseñas, algunos de estos hash son los siguientes:
MD5:Este algoritmo de reducción criptográfico de 128 bits el cual permite cifrar una contraseña (en este caso), MD5 hace que nuestra password sea cifrada con una longitud de 32 caracteres alfanuméricos. Un ejemplo del hash es el siguiente:
Texto Plano
|
Cifrado con MD5
|
admin
|
21232f297a57a5a743894a0e4a801fc3
|
SHA: SHA (Secure Hash Algorithm, Algoritmo de Hash Seguro) es un sistema de funciones hash criptográficas relacionadas de la Agencia de Seguridad Nacional de los Estados Unidos. El primer miembro de la familia fue publicado en 1993 es oficialmente llamado SHA. Sin embargo, hoy día, no oficialmente se le llama SHA-0 para evitar confusiones con sus sucesores. Dos años más tarde el primer sucesor de SHA fue publicado con el nombre de SHA-1. Existen cuatro variantes más que se han publicado desde entonces cuyas diferencias se basan en un diseño algo modificado y rangos de salida incrementados: SHA-224, SHA-256, SHA-384, y SHA-512 (llamándose SHA-2 a todos ellos).
Texto Plano
|
Cifrado con SHA-1
|
admin
|
d033e22ae348aeb5660fc2140aec35850c4da997 (longitud 40)
|
Texto Plano
|
Cifrado con SHA-224
|
admin
|
58acb7acccce58ffa8b953b12b5a7702bd42dae441c1ad85057fa70b (longitud 56)
|
Texto plano
|
Cifrado con SHA-256
|
admin
|
8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 (longitud 64)
|
Texto Plano
|
Cifrado con SHA-384
|
admin
|
9ca694a90285c034432c9550421b7b9dbd5c0f4b6673f05f6dbce58052ba20e4248041956ee8c9a2ec9f10290cdc0782 (longitud 96)
|
Texto Plano
|
Cifrado con SHA-512
|
admin
|
c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34ebc35d16ab7fb8a90c81f975113d6c7538dc69dd8de9077ec (longitud 128)
|
LM:El hash LM (Lan man o Lan manager) fue utilizado para cifrar las contraseñas para Windows Xp, NT, 95, 98 y ME. El problema de este hash es que la implementación de la función hash por parte de Microsoft fue extremadamente deficiente, y acabaron con una función que no era puramente de sentido único. Por lo tanto en las versiones posteriores de Windows se decidió migrar a otro estilo de hash:
Texto Plano
|
Cifrado con LM
|
admin
|
F0D412BD764FFE81AAD3B435B51404EE (longitud 32)
|
NTLM: Supone el segundo "intento" de Microsoft por mejorar el protocolo de las contraseñas. Por fin diferencia entre mayúsculas y minúsculas e internamente es más simple y robusto: calcula el hash cifrando con el estándar MD4 tras una pequeña modificación del valor hexadecimal de la contraseña. Pero por muchas mejoras que introduzca, NTLM queda anulado. Porque por defecto las contraseñas son almacenadas y utilizadas en los dos formatos, el arcaico LM y NTLM, juntas en el mismo SAM.
F0D412BD764FFE81AAD3B435B51404EE:209C6174DA490CAEB422F3FA5A7AE634
Texto Plano
|
Cifrado con LM
|
admin
|
209C6174DA490CAEB422F3FA5A7AE634 (longitud 32)
|
Hash de Linux: El hash de Linux tiene una complejidad más alta que la de Windows, ya que utiliza una nomenclatura de cifrado añadido de un salt, el cual se añadirá dentro del hash de manera aleatoria, para comprender más sobre esto, tenemos el siguiente ejemplo:
$6$LJTtsJB7$Bl0aXQbYX4CLIY68VvgsnAIiODXmwShPT9KQ7XIl.Q1Mi19ujAhmOOuZRrQGJ5OodpgDOFfTwiAbiDtbU9OLr1
Texto Plano
|
Cifrado con MD5 +Salt
|
admin
|
$1$LJTtsJB7$b1L9zq51SwaTDo8BoDrc40
|
$1$LJTtsJB7$b1L9zq51SwaTDo8BoDrc40
1 2 3
El hash de Linux está compuesto por 3 campos. Estos campos están separados por un signo $.
El primer campo representa el tipo de algoritmo que se utilizará para cifrar el hash. Los tipos de cifrado son solo siguientes:
1. MD5
2. blowfish
2a. eks blowfish
5. SHA-256
6. SHA-512
|
En este caso podemos detectar que el hash está cifrado con MD5. El segundo campo representa el salt , un salt es un valor aleatorio que se utiliza para combinarlo con la contraseña origianal, de tal manera que la encriptación sea más robusta. Finalmente el tercer campo es el valor final del hash que se da de la suma del salt más la contraseña. Estos son solo algunos tipos de hash.
Posteriormente utilizaremos la herramienta John The Ripper para poder realizar el cracking de estas contraseñas.
Estructura de John The Ripper
A continuación se intentará realizar un cracking al hash MD5.
Cracking exitoso (MD5)
Opciones Fundamentales
El diccionario rockyou.txt es muy potente para realizar cracking, ya que posee una gran cantidad de palabras en español, si deseas descargarlo, te lo compartimos a continuación:
Posteriormente se procederá a realizar un cracking sobre un hash de tipo SHA-1.
Cracking exitoso (LM)
Finalmente se realizará el cracking al hash de tipo Linux:
Cracking exitoso (LM)
Finalmente se realizará el cracking al hash de tipo Linux:
Hash Linux
Cracking exitoso (Hash de Linux)
Como pudimos observar, esta herramienta es muy potente para el cracking de contraseñas.







No hay comentarios:
Publicar un comentario