Sie sind auf Seite 1von 6

John The Ripper: Crackeando

Contraseñas Offline

¿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.

¿Por qué se utiliza?

La función de un hash es mantener en secreto el texto de entrada. Sólo se conoce el


texto de salida, pero no se puede obtener el texto de entrada a partir de él. De esta
forma es como se protegen las contraseñas al guardarlas en una base de datos o en un
archivo del sistema, como se verá más adelante.

Matemáticamente, el hash se asemeja a una función inyectiva, tal como se ve en la


siguiente imagen:

Es por eso que se usa un método de fuerza bruta para intentar encontrar el texto de
entrada. Se pruebas millones de palabras desde un diccionario hasta que alguna sea
igual al hash que tenemos.
Tipos de Hash

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 (longitu
Texto
Cifrado con SHA-384
Plano
9ca694a90285c034432c9550421b7b9dbd5c0f4b6673f05f6dbce58052ba20e4248041956ee8
admin
96)
Texto
Cifrado con SHA-512
Plano
c7ad44cbad762a5da0a452f9e854fdc1e0e7a52a38015f23f3eab1d80b931dd472634dfac71cd34
admin
90c81f975113d6c7538dc69dd8de9077ec (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.Q1Mi19ujAhmOOuZRrQ
GJ5OodpgDOFfTwiAbiDtbU9OLr1

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.

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:

http://scrapmaker.com/view/dictionaries/rockyou.txt

Posteriormente se procederá a realizar un cracking sobre un hash de tipo SHA-1.

Cracking exitoso (SHA-1)

A continuación se realizará el cracking al hash de tipo LM.


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.

Das könnte Ihnen auch gefallen