Cracking hashes con Hashcat - 4
En el post anterior vimos cómo realizar ataques basados en la unión de varios diccionarios para poder buscar la contraseña candidata con la combinación de las palabras provenientes de estos diccionarios.
En
esta ocasión vamos a ver una de las opciones de ataque que más me gusta de
Hashcat. La opción se llama Mask Attack o Ataque mediante máscara, en este
tipo de ataques se prueban todas las combinaciones posibles para un espacio de claves
concreto, de forma similar a lo que ocurre en los ataques por fuerza bruta,
pero en este caso siendo mucho más específicos.
Como
se nombra en la documentación de la herramienta, la razón para realizar este
tipo de ataques en lugar de los ataques por fuerza bruta es para poder reducir el
espacio de claves de la contraseña candidata y ser mucho más eficientes.
Por
ejemplo, si la contraseña candidata tuviera una longitud de 8 caracteres y
estuviera formada por mayúsculas, minúsculas y números, necesitaríamos iterar
sobre 62 ^ 8 (218.340.105.584.896) combinaciones, mientras que si utilizamos una máscara para este tipo de ataques, podemos definir patrones para
las contraseñas. Por ejemplo un patrón de contraseña que consista en Nombre +
Año, teniendo el nombre 4 letras, siendo la primera una letra mayúscula o no y el
año definido con 4 números, nos daría como resultado un espacio de claves mucho
más reducido, en este caso sería 52*26*26*26*10*10*10*10 (9.139.520.000) combinaciones. Como
podemos observar se ha reducido drásticamente el número de iteraciones que
tenemos que realizar para encontrar la contraseña candidata.
Nota:
Para realizar los cálculos se ha utilizado el abecedario inglés, el cual cuenta
con 26 letras.
En este post solo vamos a ver como definir y utilizar máscaras definidas en la línea del comando, pero en siguientes entradas del blog veremos como definir nuestros propios ficheros con máscaras para que Hashcat pueda utilizarlo y de esta forma cambiar automáticamente el tipo de máscara a utilizar, de esta manera podemos probar varias máscaras de golpe una detrás de otra. Al igual que ocurría en otros tipos de ataques, durante la descarga de Hashcat, también se ha descargado algunos ficheros que contienen máscaras, pero el proceso de utilización de estos ficheros los veremos en siguientes entradas del blog junto con la creación de los mismos.
La sintaxis del comando en esta ocasión será la siguiente:
hashcat.exe
-a 3 -m 0 hard_md5_top_secret.txt ?u?l?l?l?d?d?d?d
Con la opción o flag -a 3 indicaremos a Hashcat que el ataque que vamos a realizar es de tipo Mask attack. En esta ocasión además para hacer que el ataque sea un poco más rápido se ha utilizado para el ejemplo el algoritmo MD5 para realizar el hash de la contraseña. Al final del comando es donde definiremos la máscara que vamos a utilizar, en este caso el resto de las opciones no se van a explicar debido a que ya fueran explicadas en anteriores entradas del blog.
En
este caso nuestra máscara será para una contraseña de 8 caracteres en donde la
primera letra es una mayúscula (?u), seguido de 3 letras minúsculas (?l?l?l ) y por último, le siguen 4 números (?d?d?d?d).
Hashcat tiene los siguientes juegos de caracteres definidos:
- ?l =
abcdefghijklmnopqrstuvwxyz
- ?u =
ABCDEFGHIJKLMNOPQRSTUVWXYZ
- ?d =
0123456789
- ?h =
0123456789abcdef
- ?H =
0123456789ABCDEF
- ?s =
«space»!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
- ?a =
?l?u?d?s
- ?b = 0x00 - 0xff
Podemos
definir nuestros propios juegos de caracteres para el uso de las máscaras. Por ejemplo,
podemos definir un juego de caracteres personalizado con la siguiente sintaxis -1
?s?d de esta forma indicando con ?1 en la máscara Hashcat interpretará dicho símbolo
como un posible carácter especial o un número.
Si
ejecutamos el comando que hemos visto antes obtendremos la siguiente salida:
Como
podemos observar tras un poco de tiempo se ha encontrado la contraseña para
dicho hash.
Ejemplos disponibles en la documentación de Hashcat:
command: -a 3 ?l?l?l?l?l?l?l?l keyspace: aaaaaaaa - zzzzzzzz
command: -a 3 -1 ?l?d ?1?1?1?1?1 keyspace: aaaaa - 99999
command: -a 3 password?d keyspace: password0 - password9
command: -a 3 -1 ?l?u ?1?l?l?l?l?l19?d?d keyspace: aaaaaa1900 - Zzzzzz1999
command: -a 3 -1 ?dabcdef -2 ?l?u ?1?1?2?2?2?2?2 keyspace: 00aaaaa - ffZZZZZ
command: -a 3 -1 efghijklmnop ?1?1?1 keyspace: eee - ppp
Podéis
encontrar más información acerca del ataque basado en máscaras para Hashcat
desde este enlace a su documentación.
Muchas
gracias por leer hasta aquí nos vemos en otra entrada del blog :)

Comentarios
Publicar un comentario