Crackeando WPA con Hashcat.

  • 0

Crackeando WPA con Hashcat.

Crackeando WPA con Hashcat

logo

Uno de los principales inconvenientes a la hora de desencriptar claves WPA es el tener que depender de un diccionario o las rainbow tables para poder obtener la ansiada contraseña. Esta práctica en muchos casos deja el password “indescifrable” por no dar exactamente con la palabra, en otros casos como son los hashes MD5, tenemos software que aplica todas las combinaciones posibles incrementando el numero de caracteres que se van probando hasta dar con la clave, como por ejemplo John the ripper o Hashcat.
En este caso hablaremos de hashcat y de los ataques de fuerza bruta a handshakes de WPA/WPA2. El handshake (apretón de manos) es el paquete que contiene el hash de la clave WPA/WPA2 de una red wifi. La opción más común es atacar mediante un diccionario, pero estamos sujetos a que la palabra de la clave figure en el diccionario, y se termina por tener mucho espacio en disco ocupado por estos ficheros. Una alternativa es un ataque de fuerza bruta, probando una a una todas las combinaciones posibles hasta dar con la correcta. En el caso de las claves WPA hay que tener en cuenta la posible longitud de la clave, ya que si es WPA2 sabemos que podemos tener el doble de caracteres que podemos encontrar en WPA, en esta clase de ataques, una buena gestión de contraseñas de la red inalámbrica puede ser decisiva a la hora de frustrar un ataque de estas características.
Para comenzar, usaremos la suite de aircrack-ng para extraer el handshake. Primero ponemos nuestra interfaz wifi en modo monitor:

# airmon-ng start wlan0

Hashcat_airmon-ng

Una vez hecho esto nos pondrá el interfaz wlan0 en modo monitor, creando el interfaz mon0. Ahora debemos ver qué redes están circulando a nuestro alrededor, para ello usaremos airodump-ng, este programa de la suite aircrack es el encargado de guardar las capturas de red que necesitamos analizar para extraer la clave, a diferencia de las redes con seguridad WEP, las redes WPA no requieren que almacenemos IV’s para poder averiguar la clave, en este caso sólo necesitamos capturar un paquete, el handshake.

Primero ejecutamos airodump-ng sin guardar y observando todos los canales para seleccionar el objetivo, abrimos una nueva shell y escribimos:

# airodump-ng mon0

Hashcat_airodump_primero

Nos convendría un punto de acceso en el que tuviésemos un cliente asociado, así podemos hacer el ataque de desautenticación y provocar la reconexión para capturar el handshake de la red en cuestión. Anotamos las direcciones MAC tanto del punto de acceso como del cliente que queremos desautenticar.
Ahora ejecutamos airodump con las especificaciones para el punto de acceso que hemos elegido:

sudo airodump-ng --bssid a4:5X:XX:XX:XX:XX --write ~/Escritorio/POCwpa --output-format pcap mon0

Una vez hecho esto lanzamos el ataque de desautenticación y esperamos la reconexión del cliente para que airodump capture el handshake.

# aireplay-ng -0 10 -e Apio -a a4:5X:XX:XX:XX:XX -c 00:EX:XX:XX:XX:XX --ignore-negative-one mon0

Hashcat_aireplay_DeauthAttack

Una vez que vemos que ha capturado el handshake nos lo indicará en la equina superior derecha de la consola.

Hashcat_airodump_handshake_capturado

Ahora que tenemos el handshake capturado tenemos varias posibilidades de transformar el archivo a un formato legible para hashcat. Como primera opcion tenemos la web de hashcat, que nos proporciona una utilidad online para transformar nuestros archivos .pcap en .hccap.
Como segunda opción nos podemos descargar el software necesario para ejecutarlo en nuestro linux, en este caso debemos compilarlo, para ello nos descargamos el software en este enlace  y seguidamente lo descomprimimos.

Esto nos creará un directorio con el mismo nombre del archivo que hemos descomprimido, ahora ingresamos en el directorio y compilamos el programa.

Si diese algún problema de dependencias tan sólo debéis instalar las librerías que necesitéis, en tal caso, toca pelearse con la consola >;-)

Una vez instalado, usar el programa es de lo más sencillo, simplemente tenemos que darle el archivo de entrada y el archivo de salida, como figura en el siguiente ejemplo:

./cap2hccap.bin ~/Escritorio/POCwpa-14.cap ~/Escritorio/HandshakeApio.hccap

Esto nos dejará el archivo preparado para que le pasemos por encima el hashcat.

./hashcat-cli64.bin -m2500 -a3 -n2 --pw-min=20 ~/Escritorio/HandshakeApio.hccap.cap ?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a

Modificadores:

-a Indicamos el modo de ataque, en este caso 3 indica fuerza bruta.

-m Indicamos el tipo de hash, en este caso WPA/WPA2 se corresponde al 2500.

?a?a?a?a?a?a?a Indicamos la máscara, en este caso ?a significa que buscará numéricos, mayúsculas, minúsculas y especiales, escribiendo ?a de forma consecutiva le estamos indicando la longitud máxima de carateres que va a probar. Saber manejar la máscara de hashcat nos ayudará a concretar un poco qué tipo de caracteres estamos buscando dentro del password, por ejemplo:

Dado el password Habichuela**

Una máscara adecuada sería ?u?l?l?l?l?l?l?l?l?l?s?s, así limitamos con ?u la búsqueda a mayúsculas sólamente, con ?l buscamos minúsculas y con ?s buscamos caracteres especiales, de tal forma no tenemos que buscar una mayúscula en las dos últimas posiciones. Para el caso del wireless podemos ver como algunos puntos de acceso tienen por defecto claves numéricas o alfanuméricas, por tanto podríamos podríamos ahorrar bastante tiempo si quitamos de las combinaciones posibles los caracteres especiales.

Una vez esté trabajando hashcat podremos darle a enter y ver el progreso.

Hashcat_Proceso


  • 0

La fuerza bruta, bruteforce

La fuerza bruta

La fuerza bruta es una de las más utilizadas técnicas dentro del mundo del hacking. Consiste en probar sistemáticamente claves y comparar el resultado de su encriptación con la clave que se quiere descifrar, o directamente si el sistema al que queremos acceder nos da acceso al introducir alguna de las claves que estamos probando.

Seguramente esta técnica surgió cuando se empezaron a implantar sistemas de claves de acceso a los ordenadores y alguien intentó entrar en la computadora de un tercero sin su permiso sentándose delante del teclado ajeno y probando contraseñas. Esto lo hemos visto todos en Hollywood y acertaban. En muchos casos porque el atacante investigaba la vida y costumbres de la persona que había diseñado el sistema (Juegos de guerra , JOSUA) o simplemente por el “supuesto ego” del administrador (Hackers piratas informáticos, GOD).

El caso es que realmente esta técnica funciona, muchos usuarios utilizan contraseñas como la fecha de su aniversario, el día de su boda, el nombre de su mascota, por no hablar de las passwords más utilizadas, tal es hay una auditoría del ranking de las passwords más utilizadas : http://splashdata.blogspot.com.es/2014/01/worst-passwords-of-2013-our-annual-list.html

Las noticias sobre seguridad en las contraseñas son quizás el punto más importante de seguridad en un sistema, puesto que la mínima vulnerabilidad que exponga un fichero del sistema que contenga contraseñas, podría ser objeto de análisis para su desencriptación y tener acceso al sistema vulnerado por suplantación.

¿Se puede desencriptar una clave? La pregunta del millón que todo el mundo hace cuando comienza con esto del “cracking”. Respuesta, algunas sí, otras no y otras no sabemos.

Como muchos ya saben la fuerza de un clave depende de su algoritmo y de longitud. Existen numerosos algoritmos de encriptación de claves AES, MD5, SHA1 entre otros muchos, que no vamos a describir por su complejidad matemática. Por ejemplo el algoritmo utilizado para el protocolo de seguridad wireless WEP, como ya muchos se imaginan, está roto. Técnicamente La implementación del vector de inicialización (IV) en el algoritmo WEP tiene varios problemas de seguridad mas info ( htp://www.monografias.com/trabajos18/protocolo-wep/protocolo-wep.shtml)

Como se ve, algunos algoritmos a través de algunas técnicas pueden hacerse reversibles, esto no quiere decir que a través de la clave cifrada se pueda obtener la clave original, pero como es bien sabido reuniendo suficiente información como hace aircrack (una suite para hacking wireless) , se puede desencriptar dicha clave, en base a un protocolo de seguridad fallido.

 

Las GPUS, un nuevo nicho del cracking.

En algún momento, alguien calló en la cuenta de que utilizar las GPU de las tarjetas de vídeo eran excelentes para realizar el tipo de operaciones criptográficas que necesitan los cálculos matemáticos durante el encriptado, de esta forma la GPU puede realizar estos cálculos en ciclos muy rápidos y en paralelo, multiplicando el número de operaciones que puede realizar un procesador con creces, e incluso se ha creado un mercado en torno a las tarjetas ASIC, exclusivas para este tipo de operaciones por ejemplo en minado de moneadas virtuales, como Bitcoin o DogeCoin, que necesitan de operaciones criptográficas complejas.

Recientes noticias nos confirman que cualquier clave de windows puede ser descifrada en 6 horas con un cluster de 25 tarjetas de video o GPUS:

http://arstechnica.com/security/2012/12/25-gpu-cluster-cracks-every-standard-windows-password-in-6-hours/

Esto nos indica que la vulnerabilidad de un sistema, en muchos casos depende de unas 6 horas y estamos hablando del sistema operativo más extendido del mundo, todo gracias a la potencia de las GPUS.

Pese a todo, aún no está todo perdido en cuanto a las contraseñas. Como ya todo el mundo adivina, hay formas en las que podemos mitigar, en cuanto a los ataque por fuerza bruta , puesto que hay rumores de que ciertos gobiernos tienen la capacidad de desencriptar todo tipo de cifrados. Así lo revelaron numerosos diarios y medios donde se habla de un espionaje masivo por parte de la NSA americana. Si bien es un tema controvertido ya que se rumorea que hubiera necesitado introducir falsos generadores de pares de números aleatorios para crear certificados web que les permitirían de alguna manera atacar el vector del cifrado SSL.

A tener en cuenta sobre la seguridad en las contraseñas:

La fuerza de las contraseñas reside en el algoritmo que las genera, en su longitud y en su complejidad.

Nos referiremos a la complejidad se refiere al número de símbolos utilizados.

La fuerza de la contraseña reside en parte al número de símbolos o caracteres que utiliza, probabilisticamente hablando una contraseña es más fuerte si utiliza un mayor número de símbolos, es por ello que se recomiende usar Mayúsculas minúsculas, números y caracteres en una contraseña.

Aún así el fallo más común respecto a la elección de este tipo de contraseñas sigue siendo la longitud. Muchos usarios creen que usar “l33t” como “1l0v3y0u” o “D4n13l” son suficientes como para eludir un crackeo por parte de hackers de su password. Pues va a ser que no. Ya no solo por los famosos diccionarios l33t, sino porque una contraseña de menos de 8 caracteres es hoy por hoy factible en términos matemáticos atacarla por fuerza bruta y descifrarla en pocas horas.

Así pues en un teclado medio qwerty, tenemos 26×2 letras (mayúsculas y minúsculas) + 10 números + 127 símbolos ascci. Si tenemos en cuenta esto 52 letras + 10 números + 127 símbolos, nos da una suma finita 251. Suponiendo una clave de 7 digitos obtenemos :

Selección_011

En combinatoria da un número bastante grande, pero no lo suficiente para cualquier computador moderno. Como con 251 no nos va a funcionar en cualquier calculadora ordinaria para el caso vamos a utilizar uno que nuestra calculadora si podremos factorizar para este ejemplo, el 150, para que se pueda comprobar el ejemplo con la calculador de windows o una calculadora de mano. Para el caso por ejemplo, de que el ataque no contase con que el usuario use símbolos raramente utilizados en las contraseñas como & % o ~.

Tal que:

Selección_010

Parece un número grande, pero no se engañe, este número habrá que dividirlo entre el número de contraseñas que puede calcular el hardware por cada segundo y luego podremos estimar el tiempo que se tardará en descifrar la clave dependiendo como dijimos de su fuerza. Como ya dije, las claves de windows son totalmente inseguras para un hardware aparentemente asequible para cualquier organización criminal o de espionaje.

Hay varios sitios para comprobar la dureza de una clave y para calcular el tiempo necesario teórico para crackearla

http://superpatanegra.com/generadores/claves/comprobar/

http://calc.opensecurityresearch.com/

http://geodsoft.com/cgi-bin/crakcalc.pl

Iceweasel_026

 

Como mostramos en la imagen, hemos probado con un tipo de clave http autentication, y nos dice 1 years 45 days 15 hours 40 minutes 2 seconds , pero estamos hablando de un solo ordenador, ahora imaginemos 10 GPUs y veremos que el tiempo se reduciría en una relacion 1/10 a 41 días, aproximadamente.
La contraseña no es en sí una medida de seguridad. La contraseña en sí es un impedimento para que cualquiera pueda acceder al sistema, pero un sistema debe implementar sus propias medidas de seguridad. Olvide la vieja idea de “Le he puesto password, está protegido”, sería como decir que los ladrones tienen miedo a los candados.

Por ejemplo que los usuarios utilicen contraseñas seguras no son ninguna garantía de seguridad informática, aunque indirectamente ayuden a impedir accesos no deseados al sistema, hay muchas otras técnicas que pueden poner una contraseña al descubierto, como el phising, malware, virus, etc.

Es importante que dentro de la cultura corporativa especialmente los usuarios tengan en cuenta lo siguiente:

No mezclar los passwords del trabajo con los de web externas.

No usar el mismo password en muchos sitios web.

Cambiar el password habitualmente, en aquellos casos donde el servicio sea crítico y hacer buen recaudo de el mismo.

Nunca revelar la password. Pese a que alguien te lo suplique por correo. Casi siempre el administrador de un sistema tiene suficiente control sobre el mismo para resetear, cambiar o reasignar una contraseña sin necesidad de consulta al usuario, normalmente es el usuario es el que suele solicitar ese cambio o información y no al revés.

Hacer las auditorías necesarias para la seguridad, en el sistema informático y sobre la seguridad de los equipos que lo componen.

Que los usuarios tengan cultura sobre ciberseguridad ayuda mucho más que todo lo anterior junto, porque ellos mismos podrían darse cuenta de alguna anomalía, avisar o incluso tomar medidas.

Pablo Martínez Team Sec