AWITAS. Ataque a WPS con rogueAP potegido con WPA

#######
NOVEDADES
#######

  • Soporte para 5 GHz.
  • Posibilidad de elección para el DoS entre aireplay para ataque dirigido a un solo cliente, o mdk4 para todos los clientes.
  • Soporte para otros Os. Probado con éxito en kali (raspberry y escritorio en su versión 2022.4) Parrot (Raspberry y escritorio en su version 5.1.2) y raspiOS (2022-9-22) Debería funcionar en cualquier debian.

Hola gente.

Sigo de vacaciones y dándole a las teclas.

Os traigo a awitas para kali linux de escritorio.

Awitas es un script para, mediante un rogueAP, consigamos la llave wpa de un cliente. Solo necesitamos que el cliente pulse el botón de WPS de su dispositivo. Podemos crear un falso punto de acceso con proteccion wpa, o podemos crear uno abierto. El protegido es para los clientes windows, para dar credibilidad al engaño. De momento no soporta 5Ghz. No tengo dispositivo para ello. Quizá en un futuro.

Es preciso contar con al menos 2 dispositivos wifi. 1 de ellos debe soportar el modo punto de acceso y el otro debe permitir inyección de paquetes.

Está desarrollado sobre kali linux. Solo se ha probado en kali linux de escritorio, y en su versión para Raspberry.

Instalamos dependencias

sudo apt update && sudo apt install mdk4 hostapd git aircrack-ng libmicrohttpd-dev build-essential

Descargamos e instalamos nodogsplash

git clone https://github.com/nodogsplash/nodogsplash.git cd nodogsplash make sudo make install
Nos vamos a nuestra carpeta /home

cd

Descargamos awitas

git clone https://github.com/javierbu/awitas.git

Entramos en la carpeta y usamos

cd awitas sudo ./awitas

El proyecto:

https://github.com/javierbu/awitas

Espero vuestros comentarios, quejas, sugerencias y demás.

Vídeos

Awitas en raspberry (versión antigua)
[video]Awitas - YouTube

Awitas en kali linux de escritorio (versión antigua)
[video]Rompiendo WPA usando kali linux con rogueAP pidiendo pulsacion WPS - YouTube

###########
SOBRE CHIPSETS
###########
Se agradece cualquier información realitva a lo chipsets de los dispositivos usados.

**8814au**. [https://github.com/morrownr/8814au](https://github.com/morrownr/8814au) . Funciona perfectamente tanto en 2,4 GHz como en 5 GHz. Es válido tanto para la creación de punto de acceso como para el ataque DoS.
**8812au**. [https://github.com/morrownr/8812au-20210629](https://github.com/morrownr/8812au-20210629) . Funciona muy bien para la creación del punto de acceso tanto en 5GHz como en 2,4 GHz. No funciona para el ataque DoS.
**brcmfmac.** Es el integrado de la raspberry 4b. Funciona muy bien para la creación del punto de acceso en ambas bandas. No sirve para el ataque DoS.
**ath9k_htc**. Solo trabaja en 2,4 GHz. Funciona muy bien para el ataque DoS. Presenta algunos fallos creando el punto de acceso. Es posible que estos fallos sean en mi dispositivo concreto.
**rtl8187**. Solo trabaja en 2,4 GHz. Funciona muy bien para el ataque DoS. No soporta la opción de crear punto de acceso.

Todo esta claro y bien explicado , todo eso me recuerda mucho los primeros momentos que he pasado con la version de hostbase1.0 que era en bash tambien :cool:

Se ve que le has dado cana.Tengo un windows 10 en dual-boot tambien pero sera interesante que alguien prueba tu script con windows 11 (yo no lo tengo) para ver si la tecnica del rogue AP cerrado anda todavia con el 11.

No veo razones de que no andara a fuera de tus dispositivos , ya he visto el codigo y lo mas importante: el rogue AP y el WPS esta bien o sea reduce vastante las problemas que pueden tener los usarios.

Lo tendré que probar y te comentaré aqui

Y a los otros: que prueban ! :wink:

Muchas gracias por tu comentario Koala.

Jaja. En esas ando yo ahora. Creo que lo peor ha pasado y ya ir mejorando poco a poco y adaptando a lo que se necesite.

Entiendo que debería funcionar. Tengo un w11 en MV y haciendo pruebas y depurando lo probé alguna vez. Hacía cosas raras, pero no sé si por ser w11 o porque aún no estaba todo en condiciones. Lo probaré en breve y comento.

Esto lo comento porque, para 3 dispositivos que tengo, de los 2 de ellos que soportan AP, cada uno levanta el AP con una iface distinta., y el otro adopta un nombre de iface monitor distinta que los demás cuando cambias a monitor con airmon-ng. Es decir, para 3 dispositivos que tengo, cada cual hace las cosas a “su manera” y por eso no me exrañaría que algo petara con dispositivos desconocidos para mí.

Se me ocurren cosas nuevas que iré implementando con el tiempo si llega a gustar la herramienta:

  • Detectar si el cliente sale de nuestra red falsa sin haber pulsado antes el botón, y de ser así, volver a levantar el DoS para obligarle a volver. Lo hace el tuyo? creo que sería interesante.
    -Y por otro lado, el tema de la página de phishing, dejarla tan simple como está, mejorarla un poco, eso sí, y que únicamente cambien las fotos de los dispositivos, y que al ejecutar el script te de a elegir el dispositivo que quieras. Y hacer una neutra, claro.

Pero vamos, ya con tiempo y a poquitos, que se me agotan las vacaciones.

Asi es :slight_smile:

[quote]Entiendo que debería funcionar. Tengo un w11 en MV y haciendo pruebas y depurando lo probé alguna vez. Hacía cosas raras, pero no sé si por ser w11 o porque aún no estaba todo en condiciones. Lo probaré en breve y comento.
[/quote]

Muy bien entoncès

[quote]Esto lo comento porque, para 3 dispositivos que tengo, de los 2 de ellos que soportan AP, cada uno levanta el AP con una iface distinta., y el otro adopta un nombre de iface monitor distinta que los demás cuando cambias a monitor con airmon-ng. Es decir, para 3 dispositivos que tengo, cada cual hace las cosas a “su manera” y por eso no me exrañaría que algo petara con dispositivos desconocidos para mí.
[/quote]

Tengo matérial diferente que el tuyo o sea si peta con mis dispositivos intentaré de ver por dondé van los tiros.

[quote]Se me ocurren cosas nuevas que iré implementando con el tiempo si llega a gustar la herramienta:

  • Detectar si el cliente sale de nuestra red falsa sin haber pulsado antes el botón, y de ser así, volver a levantar el DoS para obligarle a volver. Lo hace el tuyo? creo que sería interesante.[/quote]

En el mio se ve en el terminal “AP-STA-DISCONNECTED” cuando el cliente sale de la red, no he tenido que tocar nada en eso porqué he redigido la salida de berate-ap en el terminal principal.La dos que sigue el AP se para solamente si detecta que el AP a atacar se ha parado de andar y vuelve a empezar 10mn despuès si esta otra vez “online”.Asi que no deja momento libre a el AP del cliente.Si el AP esta “online” entoncès la dos se para unicamente cuando el boton WPS ha sido apyado para poder tener la llave.

Al principio no te esperas a que la gente le gusta mucho la heramienta (no porqué esta malo) pero porqué la gente le gusta la facilidad y hacer lo que conoce y tu script como el mio no estan al principio muy facil “a tomar a mano”.Cuando vez las heramientas que usa la gente para el wifi, los mismos nombre salen muchas veces… es una pena porqué al final al querer “quedarse en lo que conoce” puès la gente pasa al lado de cosas interesante… pero bueno es asi :cool:

He puesto tambien una seguridad que comproba que el usario a elegido la misma red en 2.4GHz que en 5GHz (en el caso que se ataca la red en las 2 bandas pero eso necesita una tercera tarjeta wifi).

[quote]-Y por otro lado, el tema de la página de phishing, dejarla tan simple como está, mejorarla un poco, eso sí, y que únicamente cambien las fotos de los dispositivos, y que al ejecutar el script te de a elegir el dispositivo que quieras. Y hacer una neutra, claro.

Pero vamos, ya con tiempo y a poquitos, que se me agotan las vacaciones.[/quote]

Como quieres :cool: en hostbase cuando el usario elige su pagina de phishing se cae en una pagina muy sencilla tambien (la version francès de las paginas de phishing esta mucho mas avanzada porqué tengo casi todos los datos de los routers, vivo en francia).

Tengo varias idéas para mejorar hostbase y llevar lo en la version 1.7 pero como tu me falta el tiempo para probar lo que quiero, desarollar etc…

¡Tremendo!
Gracias Javierbu :biere:

:lol:
Me gusta la introducción, esto empieza muy bien :smiley:

Yo lo doy como conectado al cliente parseando su MAC en la salida de berate-ap, que redirijo al directorio en tmp donde redirijo todo, pero supongo que habrá maneras más elegantes de saber si está conectado o no. en algún sitio debería crearse un archivo del cliente, y desaparecer cuando se desconecta, supongo.
Entiendo entonces que la escucha del wps la haces con la misma iface que levantas el punto de acceso? yo la hago con la que hace el DoS. cuando alguien se conecta a mi ap, paro el DoS, y con esa misma iface me pongo a escuchar el wps. Por eso paro el DoS. Le daré una vuelta a lo de detectar si el cliente se ha desconectado o no. Ya veremos si toco algo.

Lo de los 5GHz ya me pelearé con ello cuando tenga dispositivo para ello. De momento no me preocupa.

[quote=kcdtv]¡Tremendo!
Gracias Javierbu[/quote]

Gracias a vosotros. Sin vuestro conocimiento y ganas de compartirlo no habrìa sido posible. :biere:

:lol: :lol: :lol: Se ve que ya le has echado un primer vistazo.

Quisas me exprimido mal pero lo hago como tu :cool: la interfaz de dos sirve a escuchar el WPS y luego paro la dos, la interfaz del rogue AP no tiene que tener otra function que recivir las conexiones.

Confirmado que funciona igual en windows 11 que en windows 10.

Muy bien me alegro :slight_smile:

Como no sé si podré comprar me un rpi con todo los gastos que lleva la feria de navidad… lo probaré con kali tambien pero desde un ordenador :cool:

¡Enhorabuena! :biere:
Lo probé desde un Kali recién instalado y todo ha ido sobre ruedas,
Ultra-simple, lo puede ejecutar cualquiera.
Esto sí, no he probado el ataque espectacular contra Windows porque no tengo.
Pero me basta con verlo en los vídeos de tu canal… :slight_smile:
Se ve perfectamente cómo el gestor de redes windows 10 (y 11 :wink: ) desliza hacía la trampa…

Muchas gracias por probarlo!! :biere:

:wink: :wink:

Por curiosidad… Te hizo algún salto de canal? Mi router es bien perezoso para eso. No lo he visto dar más de 5 saltos en toda la vida. Quizá dependa de que “solo” se mandan 60 paquetes de desautenticación por defecto y eso quizá no hace saltar las alarmas para dar el salto. Por pensar algo, digo.

P.D: A ver cuando te animas a desempolvar la raspi y echar un vistazo a STAPi

Nope.

Me parece que tenemos el mismo… En todos casos es una livebox “mi-fibra” by arcadyan y hacen lo mismo por lo que veo, tengo un montón alrededor.
La selección automática del canal (opción por defecto) es de lo más inútil.
No pilla para nada el canal el más despejado.
Y las redes de mis vecinos están muy mal repartidas,
La opción de la GUI para escanear los aires y cambiar de canal, además de ser lenta, no lo hace bien.
Tanto que si tengo problemas voy directo fijar un canal a mano en la interfaz mirando con airodump-ng de mi lado.

Para decir algo también: Por lo que leo y he probado, tiendo a pensar que la DoS de aireplay-ng no es gran cosa para llegar a provocar un salto de canal.
Me parece que es con mdk3-4 y con ataques agresivos “jamming” con “essid flood” que los problemas de salto surgen.
Es mi impresión.

Está en mi lista de buenas resoluciones para 2023.

Debo entender entonces que es más eficaz y agresivo hacer el DoS con mdk?
La verdad es que nunca lo he probado. Con aireplay sí he notado problemas con la distancia, en cuanto estás un poco lejos ya no llegan a “impactar” los paquetes en condiciones.

Con mdk3&4 puedes combinar ataques y generar mucha basura, es más agresivo.
Pero esto puede también tener efectos no deseados si quieres más que una mitad de handshake para un ataque por diccionario ,

Por ejemplo, si usas la opción -b

b - Beacon Flood Mode Sends beacon frames to show fake APs at clients. This can sometimes crash network scanners and even drivers!
El gestor de redes del cliente enseñara muchos PA despertando dudas y complicando la conexión al PA trampa

Opción -a

a - Authentication DoS mode Sends authentication frames to all APs found in range. Too much clients freeze or reset some APs.
Cuando dice “todos” esto incluye al Rogue AP y puede impedir la conexión de la víctima…

En historia de rogue AP, Koala usa esta linea de ordenes:

mdk3 wlan1mon d -g -t 00:1F:9F:FD:D9:A7 -c 6

Con efectos interesantes en el gestor de redes windows 10
“Una historia de Rogue AP”: El PDF de koala traducido al español

Entiendo.

Supongo que ese comando de mdk3 o 4 tira todos los clientes de la red. Supongo que se podrá “afinar” para tirar solo un cliente.

Miraré el tema más despacio y si me gusta y soy capaz lo implementaré en awitas.

Muchas gracias por la info.

P.D. Tremendo lo de las historias del maestro yedi Koala. Ya lo había leído pero nunca es tarde para releerlo.

Existe en mdk4 la opción -S para especificar un cliente con el ataque -d

-S <mac> Specify a station MAC address to attack.

Soy fan de primera hora, los he visto todos miles de veces en VHS, .
Y hay algo que tengo que decir porque no puedo más:
¡Basta con las series y secuelas baratas de la Disney!

Nueva versión.

Se ha añadido:

  • Soporte para 5 GHz.
  • Posibilidad de elección entre aireplay para DoS dirigido o mdk4 para todos los clientes de la red.
  • Soporte en otros sistemas. Probado en kali para rpi y escritorio, parrot para rpi y escritorio, y raspiOS. Debería funcionar en cualquier OS al menos basado en Debian.

Como siempre, se agradecen pruebas, comentarios y es necesario, mentadas de madre. Sobre todo sobre los chipsets usados y los resultados. En el comentario inicial comentaré sobre los chipsets que he usado y el resultado.

Supongo que se quedará aquí y no iré más allá con este script aparte de solucionar los problemas que surjan. Me queda el mal sabor de no haber implementado la persecución de un cliente por si se desconecta, volver a lanzar el DoS. Quizá en un futuro…

https://github.com/javierbu/awitas

Gracias por todas estas mejoras :biere:
De paso, no te comenté los chipsets que había probado, sin malas sorpresas ni problemas, todo ha ido cómo debido con :

  • Ralink RT3070
  • Atheros AR9271*
  • No había visto la actualización qué hiciste al final de mensaje. Preciso que he usado el chipset atheros USB para hacer la DoS.
    No lo he probado para hacer de PA falso.
    La próxima vez invertiré las interfaces y lo usaré para el Roge AP, a ver qué pasa.

¡Buenas!
He probado sumamente en debian sid.
Un detalle para los que quieren probar en otra distribución que Kali; Deben instalar net-tools para tener a ifconfig

sudo apt install net-tools

No obtengo la IP en el punto de acceso (abierto).
[list=*]
]Cliente; Android 8,1 y debian stable/]
]Rogue. ar9271 o RT3070/]
]DoS; RT3070 o ar9271/]
[/list]
Falla la asignación automática de IP, todo lo demás parece estar bien. iré a probar en kali desktop para descartar problemas propios a debian sid “puro”. pero todo parece estar bien…
excepto el fallo con dnsmasq. ( Versión dnsmasq 2.88 )

Me parece que has olvidado el comando para reiniciar Network Manager en la función salida

Otra cosa. ¿Qué te parece si movemos el tema en el subforo WPA?
Es el subforo más visitados y tu script es (y de sobra) lo bastante maduro para no estar en “script y programación” que había más pensado para servir de “taller”: Para intercambiar algunos trucos, asistir-nos en la elaboración de nuestros proyectos, cosas mucho más pequeñas y menos adelantadas que awitas.

Muchas gracias por testearlo.

Para lo que lo he dejado… Me lo podría haber ahorrado de sobra. Eso es mi resistencia a cambiar las viejas costumbres. En otras partes del script uso ip. En fin…
lo que sí uso, y no por malas costumbres, es iwconfig en la funcion monitor. Con iw no me funcionaba en los 5 sistemas probados. No recuerdo cual era, pero cuando ponía en monitor la tarjeta con iw, luego se me quedaba “encanada” en el canal 1 y no había manera de sacarla de ahí. Cosas raras que le pasan a uno… Lo probré con varios chipsets y todos igual. probemas con iw. Creo que esto pasaba en kali raspberry.

Ese probema no me suena haberme pasado. No sé si has llegado a echar un vistazo a /tmp/awitas/. Ahí deberías tener un archivo llamado dnsmasq, que es la salida del comando para ver que error está dando.

Cierto. creo que esto fue porque quise prescindir totalmente de “service” para tirar de “systemctl” y no llaman igual las 3 distribuciones (kali, parrot y raspiOS) al mismo servicio. Lo incluiré si subo mejoras.

Por supuesto donde tú consideres que está mejor.