Hace ya casi un año que hablé de la suite de seguridad inalámbrica
Aircrack-ng. Un conjunto de herramientas útiles para recuperar las claves de redes
wireless.
Aquí podéis ver el post donde explico como instalar y usar tal suite.
Esta suite está diseñada para trabajar sobre
distribuciones Linux, aunque también existe una versión para
Windows que no es muy estable debido a conflictos con drivers.
Algunos compañeros me han ido comentando a lo largo de este tiempo que les resultaba algo incómoda y poco intuitiva su utilización debido a que carece de interfaz gráfica y, por tanto, su utilización se realiza a través de una
Terminal.
Para solucionarles ese problema voy a explicar como conseguir y utilizar
Aircrack-GUI-m4, un
front-end para Aircrack-ng que proporciona una interfaz gráfica para que su uso sea más intuitivo y visual.
Este front-end no necesita ser instalado. Basta con que sea configurado según las propiedades gráficas de nuestro equipo, algo que es facilitado mediante su
script de lanzamiento.
Ademas,
Aircrack-GUI-M4 va acompañado de algunas de las herramientas de aircrack-ng, con pequeñas modificaciones para mejorar su rendimiento. Estas herramientas incluidas se encuentran ya precompiladas (para evitar tener que reinstalarlas) y
AircrackGui-m4 las utilizará en lugar de la suite original que se debe encontrar previamente instalada.
AircrackGui-m4 está disponible para sistemas linux con arquitecturas de
32 bits y de
64 bits, su desarrolo comenzó a principios de 2011 y está libre para su descarga en la
web oficial del proyecto.
CONFIGURAR Ubuntu PARA PODER UTILIZAR Aircrack-GUI-M4:
Para poder utilizar por completo
AircrackGui-m4 en nuestro equipo con
Ubuntu es necesario tener instaladas previamente la suite
aircrack-ng y la herramienta
Macchanger. Esto es porque hace uso integral de ambos paquetes en algunas de sus funciones.
Por ejemplo, para utilizar el
modo monitor utiliza la herramienta
airmon-ng (incluída en aircrack-ng), o para cambiar la
dirección física (MAC) de nuestra
tarjeta de red (NIC) hace uso del programa
Macchanger.
Para instalarlos haremos:
- Abrimos una Terminal (por ejemplo desde el LAUNCHER).
- Instalamos los paquetes correspondientes:
NOTA: "aircrack-ng" hace uso del paquete "iw", por lo que, si no lo tenemos instalado, se incluirá como dependencia del mismo. "iw" permite mostrar y/o manipular los dispositivos wireless y sus configuraciones.
~$ sudo apt-get install aircrack-ng macchanger
CONSEGUIR Y LANZAR Aircrack-GUI-M4:
Para conseguir
AircrackGui-m4 y lanzarlo en nuestra máquina haremos lo siguiente:
- Entramos en la web oficial y descargamos en nuestro directorio de usuario ("/home/$USER") el paquete correspondiente a la arquitectura de nuestra máquina (32 bits o 64 bits). También podemos descargarlo haciendo clic sobre los siguientes enlaces:
- Descomprimimos el fichero descargado clicando sobre él y dando a Extraer aquí. Esto creará un directorio llamado "aircrack-GUI-M4 X.X.X Final x86" (donde X.X.X es la versión del programa que hemos descargado).
Una vez descargado ya podemos eliminar el fichero original ("aircrack-GUI-M4 X.X.X Final x86.rar").
- Abrimos una Terminal (por ejemplo desde el LAUNCHER).
- Ejecutamos, con permisos de root, el script de ejecución incluído en el directorio creado. Este script comprueba si están instaladas las librerías necesarias y después utiliza tales librerías para obtener los parámetros gráficos de configuración necesarios y para lanzar la aplicación:
~$ sudo sh ~/aircrack-GUI-M4 X.X.X Final x86/aircrack-GUI-Start.sh
Donde debemos sustituir X.X.X (marcado en rojo) por la versión que aparece en el nombre del directorio que fue creado.
Esa instrucción dará como salida algo parecido a esto: Checking libs...
***********************************************************
This program requires:
libqt4-core version 4.7.3
libqt4-gui version 4.7.3
***********************************************************
Lib lib/libQtCore.so.4 correct
Lib lib/libQtGui.so.4 correct
***********************************************************
Exporting LD_LIBRARY_PATH (To include actual folder)...
***********************************************************
***********************************************************
Executing Aircrack M4!
***********************************************************
-------> Mode debug active
17:17:29 Constructor of mainWindow object 92274690
17:17:30 Constructor of airodump object 92274740
17:17:30 Constructor of airmon object 92274744
17:17:30 Constructor of setInterface object 92274746
17:17:30 Constructor of aireplay -0 [deAuth] object 92274748
17:17:30 Constructor of aireplay -1 [auth] object 92274750
17:17:30 Constructor of aireplay -2 [Broadcast] object 92274752
17:17:30 Constructor of macChanger object 92274754
17:17:30 Constructor of aircrack object 92274757
17:17:30 Constructor of options object 92274759
17:17:30 Constructor of aireplay -3 [arpReplay] object 92274761
17:17:30 Constructor of HistoricalNetwork object 92274763
17:17:30 Constructor of updater object 92274765
17:17:30 Constructor of aireplay -5 [Fragmentation] object 92274767
17:17:30 Constructor of aireplay -4 [chopChop] object 92274769
17:17:30 Loading historical network
17:17:30 Checking updates
17:17:30 Getting the real IP through the domain
17:17:31 Getting Changelog
QProcess: Destroyed while process is still running.
Con esto se completará la instalación y se lanzará la aplicación.
NOTA: Si se produce algún error se podrá ver en la salida mostrada en la Terminal. Por ejemplo, puede ocurrir si faltan las librerías "libqtcore4" o "libqtgui4". Para solucionarlo bastará con instalar tales librerías (" ~$ sudo apt-get install libqtcore4 libqtgui4") y repetir el paso 4.
Una vez obtenida la aplicación, cada vez que deseemos lanzarla será necesario ejecutar el paso 4.
CREAR UN LANZADOR PARA Aircrack-GUI-M4:
Para facilitar el lanzamiento podemos añadir en nuestro equipo un lanzador que posteriormente aparecerá al buscarlo en el DASH (o en el menú de Gnome-Panel).
Para crear el lanzador seguiremos los siguientes pasos:
- Vamos al DASH (pulsando la tecla "Super"), buscamos la aplicación alacarte y, una vez aparezca (puede llamarse también "Menú principal"), la abrimos clicando una vez sobre ella.
- En la nueva ventana abierta, en el menú de la izquierda, nos dirigimos a la ruta donde deseamos crear el lanzador, por ejemplo internet, y luego clicamos sobre el botón Elemento Nuevo situado a la derecha.
- Rellenamos la nueva ventana del siguiente modo:
- Tipo: Aplicación en terminal
- Nombre: Aircrack-GUI-M4
- Comando: sudo sh ~/aircrack-GUI-M4\ 0.7.0\ Final\ x86/aircrack-GUI-Start.sh
- Comentario: Suite de herramientas para recuperar claves de red wireless
- Cerramos ambas ventanas y los cambios quedarán guardados.
Ahora ya podemos buscar en el DASH Aircrack-GUI-M4 para encontrar el lanzador de la aplicación.
PASOS A SEGUIR PARA OBTENER UNA CLAVE DE RED CON Aircrack-GUI-M4
Como ya se dijo, Aircrack-GUI-M4 es una interfaz gráfica para la suite aircrack-ng, por lo que es necesario conocer el funcionamiento de dicha suite para poder utilizarla. Aun así, intentaré dar una explicación a cada paso, así como describir su funcionamiento.
Una vez abrimos el programa, veamos los pasos a seguir para obtener una clave de red:
- PONER LA TARJETA DE RED EN MODO MONITOR PARA CAPTURAR DATOS:
La información que se transmite dentro de una red se envía en forma de paquetes. Cada uno de esos paquetes lleva incorporados datos adicionales que ayudan a que la transmisión se pueda realizar. Uno de esos datos incorporados en cada paquete es la dirección física de quien debe recibir la información.
Por defecto las tarjetas de red (o NIC) sólo capturan los paquetes cuya dirección de destino corresponde con la suya propia. Para que la tarjeta de red no filtre el tráfico entrante y capture todos los paquetes (incluídos los que no van dirigidos a ella) es necesario configurarla en "modo promiscuo" (también llamado "modo monitor" en el caso de redes WI-FI). En este modo será posible capturar todo el tráfico que viaja por la red.
Para hacerlo: - Vamos a Menú->airmon-ng. Veremos que se abre la siguiente ventana.
- Cargamos todas las interfaces de red disponibles en el equipo (son cada una de las tarjetas de red; tanto inalámbricas, como por cable, virtuales,...).
Para ello damos a Load Interfaces. Tras hacerlo veremos en el cuadro inferior de la ventana la lista de interfaces detectadas:
- Seleccionamos en el campo INTERFACE la que corresponde a la tarjeta de red inalámbrica que deseamos usar para capturar la clave de red.
NOTA: Debemos aplicar un poco la intuición para hacerlo. Nombres habituales para una NIC WI-FI son "wlan0", "ra0",... aunque puede ser cualquier otro. Incluso pueden haber instaladas más de una NIC WI-FI, en cuyo caso es necesario identificar cual se desea usar.
- Una vez seleccionada la interfaz a usar, activamos/desactivamos el modo monitor pulsando:
- Para activarlo: Enable Mode Monitor
- Para desactivarlo: Disable Mode Monitor
NOTA: Para poder ejecutar la configuración sin problemas se deben tener instalados los drivers correctos correspondientes a la NIC y, además, estos deben tener implementada la función correspondiente al "modo monitor". En caso contrario no será posible activarlo.
NOTA: La suite aircrack-ng se diseño incialmente para trabajar con tarjetas inalámbricas cuyo chipset es marca Atheros y con algunas de chipset Ralink. Aunque se ha logrado usar la suite en otros muchos chipsets, a veces es necesario realizar configuraciones especiales para un correcto funcionamiento.
NOTA: Para muchos equipos la NIC instalada no posee driver propio y este es sustituido por otro driver compatible. Si este driver no permite el modo monitor podemos buscar algún otro que también sea compatible y sí lo permita. Para hacerlo tenemos aquí la solución.
- Pulsamos OK para cerrar la ventana de configuración de modo promiscuo.
- SELECCIONAR LA NIC QUE VAMOS A UTILIZAR:
Si disponemos de una única tarjeta de red inalámbrica, es posible que ésta sea elegida automáticamente para realizar las siguientes operaciones. Aún así, es recomendable seleccionar la tarjeta de red (NIC) que queremos utilizar para evitar problemas.
Para hacerlo nos dirigimos a a Options->Set Interface. En la nueva ventana abierta seleccionamos la interface que fue creada para el modo monitor (probablemente "mon0") y damos a OK.
- DETECTAR LA RED CUYA CLAVE DESEAMOS Y SU ESTADO:
La proliferación de redes wireless está muy extendida, por lo que es probable que tengas más de una a tu alcance. Si no tienes toda la información necesaria de la red que deseas auditar, es necesario obtenerla de entre todas y cada una de las redes cercanas a tu equipo.
Para obtener la información correspondiente a dichas redes haremos lo siguiente: - Vamos a la pestaña Airodump.
- Arrancamos el sniffer Airodump, clicando en Start. De este modo empezará a monitorizar las redes cercanas. El campo Status Airodump pasará su estado de "STOPPED" a "MONITORING".
- Veremos 2 listas. La superior muestra los puntos de acceso detectados (redes al alcance) y la inferior los aparatos conectados a los puntos de acceso (equipos que hay en las redes de la lista superior):
Los campos mostrados ente ambas listas son: - BSSID -> Es la dirección física del punto de acceso de la red. Es decir la dirección MAC del aparato que gestiona la red (suele ser un router).
- ESSID -> Es el nombre de la red inalambrica.
- POWER -> Es la intensidad con que es detectada la señal inalámbrica.
- BEACONS -> Es la cantidad de "beacons" emitidos por el punto de acceso de la red. Un "beacon" es una trama que se emite para que otros aparatos sepan que existe ese punto de acceso activo por las cercanías.
- DATA/S -> Es la densidad de datos emitidos por el punto de acceso de la red. Se mide en paquetes/segundo.
- CURRENT IVS -> Es la cantidad de "Vectores de inicialización" (IVs) enviados/recibidos por el punto de acceso de la red. Un IV es un bloque de varios bits (en claves WEB son 3 bytes) contenido en cada paquete y requeridos para permitir el cifrado de los datos de dicho paquete. Es a partir de dichos IVs de donde conseguimos sacar la contraseña que buscamos.
- STORED IVS -> Es la cantidad de IVs capturados. Como es a partir de dichos IVs obtenidos de donde sacamos la contraseña que buscamos, necesitamos obtener un gran número de ellos. Para facilitar la tarea los IVs capturados en sesiones anteriores son guardados también (podemos parar una captura y continuarla más adelante).
- CHANNEL -> Es el canal de frecuencia en el que se encuentra transmitiendo la red (en redes WIFI hay 11 canales).
- STATION -> Es la dirección física (MAC) de un equipo que forma parte de una red pero que no es el punto de acceso. Es decir, la dirección MAC de algún PC, móvil, impresora,... que está conectado y usando la red.
- RATE -> Son los rangos de velocidad de transmisión, en Mbps, usados para comunicarse el aparato con el punto de acceso.
- LOST -> Son la cantidad de paquetes enviados/recibidos por el aparato correspondiente y perdidos por fallo en la conexión entre ambos equipos.
- PACKETS -> Son la cantidad de paquetes totales enviados/recibidos por el aparato correspondiente.
- PROBES -> Son los equipos encargados de la comunicación (del sondeo).
- Elegimos la red cuya clave deseamos y la seleccionamos en la primera lista. Veremos como también se automarcan los equipos correspondientes a dicha red en la segunda lista.
- Pulsamos el botón More info. Esto abrirá una notificación (ver imagen de la derecha), donde se muestra la siguiente información relacionada con la red que seleccionamos:
- BSSID -> Como ya se dijo, es la dirección MAC del punto de acceso de la red.
- Name: Es el ESSID de la red.
- Encryption -> Es el tipo de encriptación de seguridad que usa la red. Puede ser WEP, WPA, IPSEC, WPA2... Según el tipo la seguridad será menor o mayor y por tanto costará menos o más obtener la clave. Por ello se describen varios tipos de "ataque" para cosneguirla.
- Cipher -> Es el cifrado de flujo utilizado. Según el tipo de encriptación usada este campo es relevante o no.
- Authentication -> Indica si ya tenemos la clave o no ("Not known yet") y en caso de tenerla la muestra.
- Number Of Stations Associated now -> Indica el número de aparatos conectados al punto de acceso de la red en este preciso momento.
- Una vez conocemos toda la información necesaria de la red cerramos el aviso de información dando en OK.
- CAPTURAR SUFICIENTE TRÁFICO DE LA RED CUYA CLAVE DESEAMOS:
Ahora lo que necesitamos es capturar suficientes paquetes de la red deseada para posteriormente obtener la clave gracias a las pautas de encriptado que siguen.
Para comenzar a capturar paquetes haremos lo siguiente: Con Airodump en estado "MONITORING" y con la red que deseamos auditar seleccionada, clicamos sobre el botón Capture para comenzar la captura de paquetes. Veremos que Status Airodump pasa de estado "MONITORING" a estado "CAPTURING".
Ahora habrá que esperar a tener bastantes paquetes capturados. Pero ¿y cuando tendremos suficientes paquetes capturados? Pues la recuperación de claves no es una ciencia exacta y depende de muchos factores como el tipo de encriptación que use la red (WEP, WPA,...), de la longitud de la clave e incluso de la suerte. Por ejemplo, normalmente una clave WEP de 40 bits puede ser recuperada con unos 300.000 IVs y una de 104 bits con 1.000.000 de IVs aproximadamente; pero con suerte podemos hacerlo con apenas 10.000 IVs y, teniendo mala suerte, se pueden necesitar más de 2 millones.
Visto esto, queda claro que el principal problema que podemos tener es que no obtengamos los paquetes suficientemente rápido. Esto puede deberse a diversos factores:
- Si se está demasiado lejos del punto de acceso la mayoría de paquetes capturados estarán incompletos y, por tanto, los IVs no son recuperables.
Sólo se puede solventar acercándonos al punto de acceso o amplificando la señal (con una antena mayor, por ejemplo).
- Si hay algún problema con la NIC que influye en la captura o la NIC no es adecuada es posible que la captura sea muy lenta o devuelva errores.
En este caso la única solución es cambiar la NIC o buscar un driver mejor.
- Si el tráfico generado se emite según una especificación que nuestro equipo no utiliza.
El estándar IEEE 802.11 especifica las normas de funcionamiento en la transmisión física de una WIFI. Según esta normativa existen diversas especificaciones (cada una con sus ventajas y desventajas) y cada equipo es compatible con unas u otras. Así pues, si nuestra NIC no es compatible con la especificación utilizada por el punto de acceso de la red, para poder conectar no podremos hacer otra cosa que cambiarla.
- Si no se está generando suficiente tráfico en la red.
Alcanzar la cifra de IVs necesarios sin tráfico de paquetes suficiente podría llevar días (incluso semanas). Para solucionarlo podemos crear nosotros mismos dicho tráfico. Pero claro, si estamos intentando obtener la clave de red lo más probable es que nuestro equipo no pueda asociarse a la red para generar tráfico.
Para ello lo más práctico es hacernos pasar por alguno de los aparatos conectados a la red. Para conseguirlo cambiaremos temporalmente nuestra dirección física (MAC) por la de uno de dichos equipos.
Veamos como hacerlo: - Tomamos la MAC del equipo que vamos a suplantar (la obtendremos del campo STATION de la lista inferior, en la pestaña Airodump).
NOTA: Ten en cuenta que sólo puede haber un equipo con la misma MAC conectado, por lo que mientras tu equipo esté conectado con la dirección ajena, el equipo al que pertenece realmente no podrá conectar (y viceversa).
- Vamos a Options->MAC changer.
- Veremos en el campo Current Mac (of main interface) la MAC actual (conviene apuntarla para poder restaurarla con mayor facilidad posteriormente). Rellenamos Faked Mac con la nueva MAC y damos a Fake para que surta efecto el cambio.
- Damos a OK para cerrar.
Ahora, para inyectar nuevo tráfico en la red, podemos hacerlo de varias formas:
- Falsa Autenticación
Permite asociar nuestro equipo al punto de acceso sin tener la clave. Cada vez que nos asociemos se generará el tráfico necesario para llevar a cabo tal acción.
Lo usaremos sólo si la encriptación es WEP (Open System o Shared Key) y tenemos la MAC de alguno de los equipos que pueden conectar al punto de acceso (AP).
Para llevarlo a cabo:
- Cambiamos nuestra MAC (como se explicó antes) por la del equipo con permisos de conexión al AP.
- Pulsamos sobre el botón 1.Authentication.
- Esto nos llevará a la pestaña Fake Auth. Allí rellenamos los campos correspondientes (BSSID de la red, MAC del equipo a conectar y tiempo entre cada reasociación para inyectar tráfico) y damos a Start.
NOTA: Si recibimos un mensaje del tipo "XXX is on channel -1, but the AP uses channel X" tendremos que modificar el driver usado. Aquí explico como hacerlo.
- Cuando deseemos parar (por ejemplo para permitir conectar otro equipo con la misma MAC) bastará con pulsar Stop.
- Deautenticación
Permite enviar paquetes disasociados a uno o más aparatos de la red.
Lo usaremos si el ESSID de la red está oculto o si la red usa encriptación WPA o WPA2. También podemos usarlo si hay conectados uno o más aparatos asociados al punto de acceso (AP).
Para llevarlo a cabo:
- Cambiamos nuestra MAC (como se explicó antes) por la de un equipo que pertenezca a la red.
- Pulsamos sobre el botón 0.Deauthentication.
- Esto nos llevará a la pestaña Fake Deauth. Allí rellenamos los campos correspondientes (BSSID de la red, MAC del equipo al que se enviarán los paquetes y nº de paquetes a enviar) y damos a Start.
NOTA: Si recibimos un mensaje del tipo "XXX is on channel -1, but the AP uses channel X" tendremos que modificar el driver usado. Aquí explico como hacerlo.
- Cuando deseemos parar (por ejemplo para evitar que el aparato de recepción se vea excesivamente afectado) bastará con pulsar Stop. De todos modos el ataque parará sólo al acabar de enviarse el nº de paquetes indicados.
- Repetición de paquetes interactivos
Permite devolver de nuevo al punto de acceso(AP) paquetes que habíamos capturado previamente, para que el punto de acceso los reenvíe con un nuevo IV.
Lo utilizaremos si tenemos guardados en ficheros externos (del tipo *.cap) paquetes que sabemos que pertenecen a la red auditada (por ejemplo, de una captura anterior).
El principal problema de este método es que sólo ciertos paquetes permiten esta técnica, ya que es difícil que un equipo admita un paquete repetido pero con diferente IV (vector de inicialización). Deben ser paquetes de broadcast o con el DS (sistema de distribución) a 1. Por ello, o se eligen aquellos que lo permiten o se manipulan aquellos que no (algo que resulta más complicado).
Para llevarlo a cabo pulsamos sobre el botón 2.Interactive [ARP] y esto nos solicitará el fichero de extensión .CAP que contiene los paquetes. Si la captura la hicimos también con Aircrack-GUI-M4 es probable que tal fichero se encuentre en "~/aircrack-GUI-M4\ 0.7.0\ Final\ x86/arp_replays/XX:XX:XX:XX:XX:XX" (donde XX:XX:XX:XX:XX:XX es la MAC del punto de acceso de la red).
- Reinserción de solicitudes de ARP
Permite que, cuando un equipo de la red hace una solicitud ARP al punto de acceso(AP) y éste la contesta, nuestro equipo captura esa respuesta y la devuelve al AP. De ese modo el AP vuelve a responderla con un nuevo IV.
Una de las ventajas que ofrece este método es que se puede reenviar una misma respuesta ARP una y otra vez, generando contínuamente nuevos IVs para capturar. Es uno de los métodos más eficaces y fiables.
Utilizaremos este método si suponemos que hay ARPs en el tráfico de la red.
Para llevarlo a cabo:
- Pulsamos sobre el botón 3.ARP Replay.
- Esto nos llevará a la pestaña ARP Reinjection y en cuanto se capture una solicitud ARP comenzará el proceso de reinserción y podremos verlo.
NOTA: Si recibimos un mensaje del tipo "XXX is on channel -1, but the AP uses channel X" tendremos que modificar el driver usado. Aquí explico como hacerlo.
- Cuando deseemos pararlo (por ejemplo para evitar saturar el punto de acceso) bastará con pulsar Stop.
- OBTENER LA CLAVE A PARTIR DEL TRAFICO CAPTURADO:
Como ya se dijo anteriormente, existen diferentes tipos de encriptación para redes wireless. Basaremos nuestro ataque según el tipo de encriptación que usa la red. Así pues tendremos:
- Ataque KoreK chopchop
Este ataque no recupera de los paquetes capturados la clave en sí. Lo que realmente hace es desencriptar un paquete mediante la búsqueda de patrones en los datos del mismo. Una vez desencriptado, se compara con el mismo encriptado para obtener la clave WEP utilizada para ello (en caso de claves más complejas com WPA no resulta válido).
Esto es posible cuando los paquetes se dividen, para ser enviados, en partes grandes (de 42bytes o más). A través de las primeras partes enviadas es posible predecir las últimas (todavía sin ser enviadas). De ese modo es posible conocer los datos que estas incluyen.
Es un método rápido, aunque muy dependiente del tamaño de las partes en que se dividen los paquetes, por lo que no siempre es válido.
Para llevarlo a cabo:
- Pulsamos sobre el botón 4.ChopChop y esto nos llevará a la pestaña ChopChop.
- Allí, en cuanto se complete el primer paso (captura de las primeras partes de cada paquete), se aplicará el segundo paso automáticamente (permite obtener la clave). Y tras ello se informará del resultado (satisfactorio, fallo,...).
NOTA: Si recibimos un mensaje del tipo "XXX is on channel -1, but the AP uses channel X" tendremos que modificar el driver usado. Aquí explico como hacerlo.
- Si deseamos pararlo antes de finalizar (por ejemplo al recibir algún mensaje de error) bastará con pulsar Stop.
- Ataque por fragmentación
Sirve para redes con encriptación WEP o con TLS/SLL.
Este ataque obtiene el algoritmo de generación psuedoaleatorio (PRGA) y, a través de dicho algortimo obtiene la clave.
En redes con encriptación WEP o con TLS/SSL los paquetes son encriptados usando 2 algoritmos generados a partir de la clave WEP (o TLS/SSL):
- KSA (algortimo de programación de claves)
- PRGA (algoritmo de generación psuedoaleatorio)
Al encriptar 1º se utiliza el KSA sobre los datos y, sobre los nuevos datos resultantes se ejecuta el PRGA. Para desencriptar se realizara un proceso inverso (1º se aplica el PRGA invertido y luego el KSA).
Como conocemos el método utilizado (sobre la clave que buscamos) para generar tanto PRGA como KSA, es posible aplicar un algoritmo sobre el flujo de datos encriptado que (mediante la búsqueda de patrones) nos devuelva el PRGA que lo encriptó.
Para conseguirlo se fragmenta en partes similares el flujo de datos encriptados y se va aplicando tal algoritmo hasta obtener el PRGA. Es posible que se necesiten bastantes paquetes (o que con unos pocos baste).
Una ve tenemos el PRGA y el método aplicado sobre la clave WEP (o TLS/SSL) para conseguirlo, es posible obtener tal clave.
Para llevarlo a cabo:
- Pulsamos sobre el botón 5.Fragmentation y esto nos llevará a la pestaña Fragmentation.
- Allí, en cuanto se complete el primer paso (obtención del PRGA), se aplicará el segundo paso automáticamente (permite obtener la clave). Y tras ello se informará del resultado (satisfactorio, fallo,...).
NOTA: Si recibimos un mensaje del tipo "XXX is on channel -1, but the AP uses channel X" tendremos que modificar el driver usado. Aquí explico como hacerlo.
- Ataque con Aircrack
Sirve para todo tipo de claves.
A través de los IVs obtenidos descifra la clave de red. Es el método más eficaz, pero también suele ser el más lento y necesita mayor número de paquetes obtenidos.
Para llevarlo a cabo:
- Pulsamos sobre el botón Crack! y esto nos llevará a la pestaña Aircrack.
- Allí se irán analizando cada uno de los ficheros de captura (con extensión .CAP) correspondientes a la red que estamos auditando hasta obtener la clave buscada. Y tras ello se informará del resultado (satisfactorio, fallo,...).
SOLUCIÓN A ALGUNOS DE POSIBLES PROBLEMAS ENCONTRADOS:
SUSTITUCIÓN DE UN DRIVER WIRELESS POR OTRO
Para muchas tarjeta de red wireless no existe un driver propio y entonces es instalado otro compatible que permite usarlas con normalidad.
Si este driver no permite el modo monitor podemos buscar otro que también sea compatible y sí lo permita. Por ejemplo, los equipos cuya NIC contiene el chipset "Ralink 2700" (como muchísimos netbook) suelen cargar el driver "ra2860" para su funcionamiento, pero es recomendable sustituirlo por el "ra2800pci".
Para sustituir un driver por otro habrá que seguir los siguientes pasos:
- Identificamos el driver que estamos usando. Para ello haremos:
~$ sudo airmon-ng
Este comando nos devolverá el nombre de la interface wireless, el modelo de chipset que incluye y el driver usado actualmente.
- Sacamos el módulo del kernel que se corresponde con el driver actual:
~$ sudo rmmod NOMBREDRIVERACTUAL
- Añadimos dicho driver a la lista de módulos cuya carga en el kernel está prohibida. Para ello, editamos el fichero "/etc/modprobe.d/blacklist":
~$ sudo geany /etc/modprobe.d/blacklist
Añadimos al final del fichero la siguiente línea:
blacklist NOMBREDRIVERACTUAL
Y cerramos guardando cambios.
- Metemos el módulo del kernel que se corresponde con el nuevo driver que queremos usar:
NOTA: Recuerda que debe estar previamente instalado. La mayoría de driver wireless libres son instalados por defecto en Ubuntu, por lo que esto no debería ser una preocupación a no ser que deseemos utilizar algún otro privativo o excesivamente nuevo.
~$ sudo modprobe NOMBREDRIVERNUEVO
- Reiniciamos para que los cambios surtan efecto.
- Comprobamos que el nuevo driver ha sido cargado, o si está corriendo el viejo, o si no ha sido cargado ninguno de los dos:
~$ lsmod | grep NOMBREDRIVER
Si todo fue bien ya estamos usando el nuevo driver elegido.
{Volver al artículo principal}
SOLUCIÓN AL PROBLEMA "XXX is on channel -1, but the AP uses channel X"
Desde hace como un año, uno de los problemas que se suelen tener a la hora de utilizar programas de seguridad y/o auditoría WIFI (como aircrack-GUI-M4) es la imposibilidad de enlazar nuestra NIC con el punto de acceso de la red, recibiendo un mensaje del siguiente tipo:
"mon0 is on channel -1, but the AP uses channel X."
Donde X (marcado en rojo) es el canal en el que transmite/recibe el punto de acceso de la red.
Esto se debe a que las comunicaciones de nuestra tarjetas de red saltan a otro canal distinto al que se le está indicando.
Simplificando un poco, el problema proviene de que el driver genérico para tarjetas de red WIFI utilizado habitualmente en Linux está configurado (desde hace varias versiones) para elegir automáticamente el canal a utilizar y así evitar ese trabajo a los softwares que lo utilizan (gestores de red, sniffer,...), reduciendo la complejidad de su configuración (y posibles errores por incompatibilidades). Sin embargo, esta idea se convierte en un
bug cuando programas (como la suite aircrack-ng) intentan seleccionar el canal por si mismos.
Para arreglarlo habrá que reinstalar los mencionados drivers con esa característica reprogramada. Para ello:
- Descargamos la última versión del código fuente de los drivers para dispositivos WIFI. En la siguiente página web podemos ver un listado de enlaces para descargar cada versión existente:
Elegimos los que correspondan con la versión más actual, clicamos sobre ella y la guardamos en "/home/$USER/Escritorio".
- Descomprimimos el fichero descargado:
~$ tar -jxf ~/Escritorio/compat-wireless-20XX-XX-XX.tar.bz2
Donde XX-XX-XX es la fecha de la versión que elegimos.
Veremos que se ha creado el directorio "/home/$USER/compat-wireless-20XX-XX-XX". Tras ello ya podemos eliminar el fichero original ("compat-wireless-20XX-XX-XX.tar.bz2").
- Ahora entramos al directorio creado:
~$ cd ~/compat-wireless-20XX-XX-XX
Donde, como ya dije antes, XX-XX-XX es la fecha de la versión que elegimos.
- Descargamos, en el directorio que contiene el código fuente del driver (donde nos encontramos ahora), 2 ficheros que servirán para parchear el código del driver (es decir, para realizar los cambios necesarios).
Descargamos el primero:
~$ wget http://patches.aircrack-ng.org/mac80211.compat08082009.wl_frag+ack_v1.patch
Dará una salida parecida a esta:
--20XX-XX-XX XX:XX:XX-- http://patches.aircrack-ng.org/mac80211.compat08082009.wl_frag+ack_v1.patch
Resolviendo patches.aircrack-ng.org... XX.XX.XX.XX, XXXX:XXXX:X:XXXX:XXX:XXX:XX:X
Conectando a patches.aircrack-ng.org|XX.XX.XX.XX|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 1049 (1,0K) [text/plain]
Guardando en: «mac80211.compat08082009.wl_frag+ack_v1.patch»
100%[==============================================>] 1.049 --.-K/s en 0s
20XX-XX-XX XX:XX:XX (X,XX MB/s) - «mac80211.compat08082009.wl_frag+ack_v1.patch» guardado [1049/1049]
Y ahora descargamos el segundo:
~$ wget http://patches.aircrack-ng.org/channel-negative-one-maxim.patch
Que dará usa salida similar a:
--20XX-XX-XX XX:XX:XX-- http://patches.aircrack-ng.org/channel-negative-one-maxim.patch
Resolviendo patches.aircrack-ng.org... XX.XX.XX.XX, XXXX:XXXX:X:XXXX:XXX:XXX:XX:X
Conectando a patches.aircrack-ng.org|XX.XX.XX.XX|:80... conectado.
Petición HTTP enviada, esperando respuesta... 200 OK
Longitud: 1021 [text/plain]
Guardando en: «channel-negative-one-maxim.patch»
100%[==============================================>] 1.021 --.-K/s en 0s
20XX-XX-XX XX:XX:XX (XX,X MB/s) - «channel-negative-one-maxim.patch» guardado [1021/1021]
- Aplicamos el primer fichero parche descargado. Aplicará cambios (sólo si son necesarios) en el fichero del driver "./net/mac80211/tx.c":
~$ patch -p1 < mac80211.compat08082009.wl_frag+ack_v1.patch
- Aplicamos el segundo fichero parche descargado. Modificará el fichero "./net/wireless/chan.c" del código fuente del driver:
~$ patch ./net/wireless/chan.c channel-negative-one-maxim.patch
- Ahora habrá que compilar el código fuente. Para ello, dentro del directorio ddel código fuente de los drivers (seguimos en él) ejecutamos:
NOTA: Para compilar es necesario tener instalado el paquete básico de compilación "build-essential". Si no lo tenemos, o no estamos seguros, ejecutaremos "sudo apt-get install build-essential".
~$ make
Esto puede tardar algunos minutos, dependiendo de la potencia de nuestra máquina.
- Instalamos con permisos de root (ya que creará ficheros y modificará en lugares donde sólo root puede hacerlo) el código compilado:
~$ sudo make install
También puede tardar algunos minutos.
- Actualizamos los módulos de red a cargar con el arranque del sistema:
~$ sudo make unload
También puede tardar algunos minutos.
- Cerramos todo y reiniciamos nuestra máquina para que el kernel cargue con los nuevos drivers instalados.
Ya podemos comprobar si los cambios han arreglado el error y, si es así, ya podemos borrar el directorio "compat-wireless-20XX-XX-XX" de nuestro Escritorio.
En caso de que el problema persista o la reinstalación de algún problema, podemos deshacer los cambios ejecutando desde una Terminal:
- vamos al directorio donde está el código que compilamos:
~$ cd ~/Escritorio/compat-wireless-20XX-XX-XX
Donde, como ya mencionamos, XX-XX-XX es la versión del driver.
- Deshacemos la instalación:
~$ sudo make uninstall
Salu2,
elSant0