El libre pensamiento para un internet libre
No estas registrado.
Les traigo una prueba de concepto que espero les guste.
Esta prueba de concepto esta basada en el trabajo de koala y su script hostbase.rb.
Hilo de hostabase por Koala https://www.wifi-libre.com/topic-1011-h … -aqui.html
Proyecto hostbase https://github.com/Koala633/hostbase
Me gusto tanto su trabajo que me decidi a hacer esta entrada, en la que tratare de explicar algunos conceptos que rodean este ataque, concretamente el del rogueAP cifrado con WPA2.
Si lo que quieres es jakear a golpe de click sin saber que estas haciendo, no pierdas mas tu tiempo leyendo este toston.
Para esta prueba de concepto voy a valerme de un router con opnwrt y una raspberry pi. Y solo usare herramientas legitimas (o casi).
# Con el script de Koala basta con usar 2 tarjetas wifi, al menos una atheros y cualquier linux de escritorio.
Un poco de teoria detras del ataque:
Encabezando la lista de los ataques alternativos, tenemos lo que conocemos como rogueAP o evil twin y muchas herramientas para llevarlos a cabo.
Basicamente se trata de conseguir mediante los recursos que tenemos a mano e ingenieria social, que un usuario se conecte a un AP (acces point, o punto de acceso), administrado por nosotros donde le vamos a servir un pishing con el que lo querremos manipular para hacer algo que no debiera, como escribir la llave WPA, o pulsar un boton del router, como es nuestro caso particular.
NUESTRA FINALIDAD ES QUE EL USUARIO PULSE EL BOTON WPS Y CAPTURAR ESA PULSACION.
La jugada es sencilla, o quiza no tanto?
Crearemos un acces point protegido con WPA2 llamado Orange-Recovery. La red a auditar se llama Orange-XXXX
Haremos un DoS (denegacion de servicio) al cliente legitimo que queremos atacar. Con ello buscamos que no pueda navegar y opte por conectarse a nuestro acces point maligno (Orange-Recovery). La negociacion de la conexión sera transparente para el usuario. (Luego veremos como).
Cuando se conecte, dependiendo del dispositivo, le saldra el aviso de iniciar sesion en la red (tipico portal cuativo), donde le espera el phishing, o en cuanto intente nagevar, cualquier pagina le redirigira directamente al phishing.
En el phising le espera cualquier excusa que le queramos poner para conseguir que pulse el boton WPS. Recordemos que cuanto mas currado este el phishing, mas posibilidades tenemos de que caiga en el enga;o.
Cuando el ususario pulse el boton del WPS, capturaremos las credenciales, Game over.
Para quien va dirigido este ataque?
En primer lugar, la red que queremos auditar, ha de estar configurada para poder hacer conexiones mediate el boton de WPS, pbc. Si no, no funcionara jamas. Con la opcion –wps en airodump, veremos si tiene o no WPS activo. Luego profundizaremos un poco mas en esto.
En segundo lugar, tal y como recomienda koala en su documentacion, este ataque es valido solo cuando el cliente es un equipo que permita conexion por WPS con pulsacion de boton. Hasta donde yo se, Windows 7 y 10 lo permiten. Debian no (imagino que extensivo a todo linux por default), dispositivos moviles que he probado, tampoco y desconozco lo que opina la manzana en todos sus sabores. Si hacemos el ataque a un celular o dispositivo que no permita conexión por WPS pbc (pulsacion de boton), no funcionara. Para esos otros dispositivos, y como bien dice el buen Koala, debemos optar por el ataque en el que nuestro FakeAP no esta cifrado.
En muchas ocasiones podemos “averiguar” si el dispositivo cliente es un pc u otro dispositivo buscando la marca con los 3 primeros octetos de la MAC. Hay sobrada info sobre eso en el foro.
WPS
Cuando mi hermano me pregunto que era eso del WPS, lo primero que me vino a la mente fue el esperanto. El idioma universal que nadie se sabe. En pocas palabaras le dije que es una gran herramienta que pocos saben que existe, menos saben que es y para que sirve, y menos aun la usan, ademas esta muy mal implementada y es un gran agujero de seguridad. (en esto ultimo se salva el esperanto)
Sabemos que el protocolo WPS nos permite hacer conexiones de distintas maneras. Hay toneladas de informacion en el foro sobre ello. Nos centraremos en la pulsacion del boton.
Cuando nos queremos conectar a un router que tenga disponible esta opcion desde un dispositivo que permita hacerla, nos dara la opcion, como se muestra en la imagen.
En el momento que vemos el mensage de “Tambien puedes conectarte pulsando el boton del enrutador”, el dispositivo se pone a la escucha de una pulsacion WPS durante una ventana de tiempo no mayor a 120 segundos. Tenemos ese tiempo para pulsar el boton y se lleve a cabo la conexión completa. No sera necesario que escribamos la llave WPA.
Esta es una de las grandes bondades del desconocido WPS. Que no muera nunca. Este tipo de conexión nos permite conectar dispositivos que carezcan de teclado y/o pantalla. Algunas impresoras, por poner un ejemplo sencillo.
Lo bueno es que podemos poner a la escucha nuestro dispositivo para capturar todas las pulsaciones que se hagan dentro de nuestro alcance, y de esa manera, poder capturar la que nos interesa y con ella su llave WPA. Game over.
Nosotros nos valdremos de estas bondades del protocolo WPS en varias ocasiones durante el proceso del ataque.
El escenario:
El router a atacar es un livebox viejito de orange que tengo para estos menesteres y demas trasteos.
Como ya dije, voy a usar una raspberry pi y un router tplink con openwrt instalado. Esto es innecesario, podriamos hacerlo con un pc y 2 interfaces wifi, pero haciendolo con mis cacharros nos ofrecera una vision del ataque mas sencilla, o eso espero.
Una foto de los que vamos a usar:
Podriamos haber usado este otro router, que nos permitiria mas movilidad y menos espacio, pero lo tengo ocupado en otros menesteres. Haremos la prueba en el grandote. A todos los efectos seria lo mismo usar el grandote o el chiquito.
Respecto a la Raspberry, usaremos su wfi integrada, y su wifi usb. Ademas de ello, tiene un modem 3G usb con el que “subira” una shell a un servidor en internet, desde donde la controlaremos. A traves de esta shell haremos todo el trabajo.
Tanto la Raspberry como el router, estaran dentro de mi coche, que esta aparcado a unos 4 metros de mi casa, la distancia entre el router a atacar y los cacharros de ataque, es de unos 12 metros, con 2 tabiques y una altura de distancia. Y el dispositivo del usuario victima(windows en este caso), se encuentra a unos 7 metros de los cacharros con un tabique y a unos 4 metros del router con tabique. Uno que es meticuloso.
Configuracion del router:
El router lo tengo configurado para que cree una red llamada Orange-Recovery. Es mediante la que administraremos el router a traves de la rpi y la que usaremos tambien como FakeAP para enga;ar al usuario. Tengo configurado en el router la conexión via wps. Esto es necesario para completar este ataque. Para ello, y desde una instalacion nueva de openwrt, bastaria con hacer lo siguiente:
descargar la lista de paquetes disponibles en el repositorio
desinstalar wpad-mini
instalar hostapd-utils y wpad.
Adicionalmente, instalaremos nodogsplash que tambien nos hara falta mas adelante.
Reiniciamos y listo, ya tenemos la opcion de conexión via WPS en nuestro router.
opkg update
opkg remove wpad-mini
opkg install wpad hostapd-utils nodogsplash2
reboot & exit
Cuando regresemos a las opciones de nuestro acces point, veremos que como por arte de birlibirloque ya tenemos la opcion
Nodogsplash es el gestor de portal cautivo que usaremos. Es hasta donde yo se, lo mas usado en lo que se refiere a este tipo de portales , esto hablando de herramientas legitimas. Hay muchas posibilidades de que si has estado en algun portal cautivo, este gestionado por nodogsplash. Es muy sencillo de usar y no conlleva mucha configuracion.
En este punto deberiamos editar el archivo splash.html, que es el que encontrara el usuario pidiendo que pulse el oton WPS. El archivo a editar se encuentra en . Yo lo edite lo justo para la prueba de concepto.
El access point que hemos creado con nuestro router, esta creado con hostapd, y hostapd, nos ofrece la posibilidad de hacer una pulsacion WPS mediante software con un simple comando.
hostapd_cli wps_pbc
Haremos un peque;o script (pulsar.sh) para hacer esa pulsacion en bucle, y que termine cuando se haya establecido la conexión. Esto servira para que cuando el usuario se vaya a conectar a nuestra red maligna, siempre haya una pulsacion en el aire que pueda ser detectada por windows, y este se autoconecte sin necesidad de escribir la llave wpa. Conexion transparente para el usuario en una red segura protegida con wpa2.
Con el nuestro acces point configurado, el script del bucle y la edicion de splash.html ya tenemos todo configurado en nuestro router. Todo son herramientas legitimas y hadware usado para estos casos. Esto nos ayudara a evadir posibles filtros de seguridad que pudiera tener el dispositivo vicitma.
La raspberry
Nuestra rpi tiene las siguientes tareas.
La primera y primordial, es capturar la pulsacion de nuestro router vicitma,
hacer “de puente” para administrar el router
hacer la denegacion de servicio.
Captura de pulsacion y credenciales:
Kcdtv nos ofrece un escript muy intersante para hacer conexiones desde una consola linux mediante pulsacion wps pbc. Con su PBC.sh
hilo en el foro https://www.wifi-libre.com/topic-811-pb … linux.html
Descarga https://github.com/kcdtv/PBC/archive/master.zip
No entraremos en detalles de lo que hace. Basicamente pone a wpa_cli a la escuha de pulsaciones de boton pbc.
A partir del script de kcdtv, hago un script que haga la parte de capturar las credenciales, pero no se conecte. Lo pongo en bucle y almacenando las credenciales que vaya agarrando en una carpeta llaves/ . De esa manera podremos atrapar la pulsacion que nos interesa.
Con esto ya esta todo configurado.
Por fin el ataque
Solo resta llevar a cabo el ataque. Para ello encendemos nuestros cacharros y “recuperamos” la shell que nos sirve nuestra raspberry en el servidor en la nube.
javier@localhost:~$ ssh operador@deby
operador@deby's password:
[operador@deby ~]$ su
Password:
[root@deby operador]# listener_pitunel
Warning: Permanently added '[localhost]:21270' (ECDSA) to the list of known hosts.
_____ _______ _____ _
/ ____|__ __|/\ | __ (_) SYSTEM
| (___ | | / \ | |__) | TARGETED
\___ \ | | / /\ \ | ___/ | ATTACK
____) | | |/ ____ \| | | | WITH
|_____/ |_/_/ \_\_| |_| RASPBERRY Pi
############################################
###### BIENVENIDO A STAPi ########
root@localhost's password:
Linux STAPi 4.9.59-v7_Re4son-Kali-Pi+ #1 SMP Tue Nov 21 00:36:47 CST 2017 armv7l
NO HAY ATAQUES CONOCIDOS EN CURSO
[root@STAPi ~]#
Bienvenidos a STAPi
Nos conetamos a nuestro router desde la raspberry con la wifi integrada
nmtui-connect
nmtui-connect nos abrira una interfaz en consola muy fail e intuitiva de usar.
root@STAPi ~]# ssh root@192.168.42.1
root@192.168.42.1's password:
BusyBox v1.28.3 () built-in shell (ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
OpenWrt 18.06.0, r7188-b0b5c64c22
-----------------------------------------------------
root@OpenWrt:~#
En el router esta todo preparado, solo tenemos que lanzar nodogsplash y ejecutar el script que hace el bucle mandando pulsaciones WPS para la conexión trasparente del usuario legitimo.
root@OpenWrt:~# /etc/init.d/nodogsplash start
root@OpenWrt:~# ash pulsar.sh
Selected interface 'wlan0-1'
OK
Sin salir de la sesion con el router, abrimos otra shell de la raspberry.
Vamos a hacer el DoS.
(En este punto tengo hacer un parentesis para felicitar a koala con su DoS activo persiguiendo saltos de canal del AP en su script hostbase.rb)
Vamos hacer un DoS sencillo y dirigido y para no llamar la atencion con aireplay y su ataque de desautenticacion (0)
Esto estara mandando paquetes de desautenticacion hasta que lo pare.
Lo que esta viviendo el usuario son fallos de conexión, su red no conecta, o no puede navegar. Si le da por mirar las redes disponibles, vera nuestra red Orange-Recovery, y vera que es “segura?” en el momento que opte por conectarse a ella, y se negocie la conexión, el script que manda el bucle de la pulsacion, dejara de madar pulsaciones. Esto es muy importante, ya que si no, es casi seguro que se nos “escape” la pulsacion que queremos porque estamos capturando la que emitimos nosotros mismos desde el router.
Asi que con el DoS en marcha nos vamos a la sesion que tenemos abierta de ssh con el router, a la espera de algo asi:
Selected interface 'wlan0-1'
OK
Selected interface 'wlan0-1'
OK
Selected interface 'wlan0-1'
OK
Selected interface 'wlan0-1'
OK
Thu Sep 6 00:26:10 2018 daemon.notice hostapd: wlan0-1: AP-STA-CONNECTED 00:1f:1f:51:a8:b3
conectado
root@OpenWrt:~#
El script que esta emitiendo las pulsaciones en bucle nos idica que ya se ha conectado el usuario y ha dejado de mandar pulsaciones.
Salimos de la sesion ssh con exit, y en la raspberry lanzamos el script que nos hace el bucle de recibir pulsaciones. De igual manera que lo anterior, no puedes ejecutar este script antes, ya que con nuestro router estamos emitiendo pulsaciones hacia el usuario que nos quedariamos nosotros echando a perder el ataque.
./PBC-mod-bucle.sh
Ya solo falta que el phishing sea convincente y nuestro usuario opte por pulsar el botn WPS de su router.
# El script que se encarga de capturar la pulsacion trabaja de modo "casi oculto", por lo que esta captura es todo lo que puedo mostrar. Crea un archivo en la carpeta llaves/ por cada pulsacion capturada.
Asi que modificaste el splash.html bastante mas y mejor que yo, tan convincente que el usuario llegue a pulsar su WPS pbc, veras algo siilar a esto
[root@STAPi PBC]# ls llaves/
total 4.0K
-rw-r--r-- 1 root root 197 Sep 6 01:03 2018-09-06-01-03-39_llave.txt
[root@STAPi PBC]# cat llaves/2018-09-06-01-03-39_llave.txt
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=root
update_config=1
network={
ssid="Orange-BCC5"
psk="37C55CC5"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
pbss=2
}
[root@STAPi PBC]#
Y creo que esto es todo. Espero no haber aburrido demasiado al personal y que este texto llegue a ense;ar algo a alguien.
# Es mi primer post y espero no haber incumplido ninguna norma y menos aun molestar a ningun usuario. En caso contrario, por favor, me dicen.
# Bienvenidas todas las criticas constructivas y correcciones pertinentes.
# Cualquier duda, si puedo ayudar, lo hare con gusto.
Saludos
Desconectado
Hola,
Se ve que has comprendido bien los pasos
Lo unico que falta a hostbase es de estar mas conocido, no tiene mucho exito porqué hay que re apprender un poco y lo que le gusta la gente es hacer doble click para hacer andar cosas.Veremos en el futuro.
Deja me saber si quieres poner tu script en el git.
@++
Desconectado
¡Excelente!
La idea de usar un router con openwrt es muy buena: Un router reciclado como los viejos comtrend de timofonica y jazztel con sus antenas externas tiene más alcance que una tarjeta interna de laptop... La señal del PA falso será más intensa haciendo la trampa más eficaz y más creíble (la victima verá una señal alta y pensará que es efectivamente su red)
Desconectado
Saludos
Se ve que has comprendido bien los pasos cool
Deja me saber si quieres poner tu script en el git.
Acuerdate que al final solo porte el de airebase abierto. Y tampoco esta depurado. No se como vaya a responder el DoS activo que haces sin xterm. Si lo quieres te lo paso, pero no le veo mucho sentido. Muchas gracias.
¡Excelente! biere
La señal del PA falso será más intensa haciendo la trampa más eficaz y más creíble (la victima verá una señal alta y pensará que es efectivamente su red)
Yo diria que hay alguna ventaja mas al usar un router. A todos los efectos, es un portal legitimo, tanto en hadwate como en software. Eso hace que pase cualquier filtro de seguridad que pueda haber. En un dispositivo movil, no tardas mas de 2 segundos desde que te conectas, hasta que te salga el aviso de que tienes que iniciar en la red en la que te acabas de conectar. Eso creo que tambien le a;ade credibilidad.
Seria muy interesante poder llamar a la fake igual que la legitima, pero en ese caso windows "no se fia" de la pulsacion por boton, y te obliga a escribir la llave con una leyenda tipo "esto ha cambiado desde la ultima vez que estuviste por aqui".
Desconectado
Hola javierbu! Gracias por el post.
Actualmente ando trasteando con una Raspberry Pi y estoy intentando lanzar el scrip PBC.sh de kcdtv en modo bucle pero siempre me da algun error de copilación o cada vez que se ejecuta me pide que vuelva a escribir la interface wifi. No soy programador, si pudieses explicar como lo hiciste estaria bien, gracias.
Ultima edición por <gorgi9250 (06-10-2018 13:52:57)
Desconectado
Hola javierbu! Gracias por el post.
Actualmente ando trasteando con una Raspberry Pi y estoy intentando lanzar el scrip PBC.sh de kcdtv en modo bucle pero siempre me da algun error de copilación o cada vez que se ejecuta me pide que vuelva a escribir la interface wifi. No soy programador, si pudieses explicar como lo hiciste estaria bien, gracias.
Hola. Lo primero una discupa por no haber respondido antes. Estaba de vacaciones, vacaciones totales.
No te puede dar ningun error de complilacion, ya que es bash script y no se compila.
Debes modificar y/o suprimir la parte donde pide la interface wifi, y poner una fija. La integrada de la rpi es completamente valida.
Para hacer el bucle, lo que hice fue un while 1 = 1 (siempre true) que lo que hace es lanzar una y otra vez wpa_cli esperando la pulsacion, y cuando atrapa una red, guarda los datos de la misma en una carpeta y reinicia el bucle. Muy sencillo.
El codigo ni lo guardé. Solo lo hice para la prueba de concepto y una vez hecha, lo desheché.
Desconectado
Hola javierbu, en primer lugar gracias por el post, la verdad es que tiene muy buena pinta y está todo muy bien explicado, al leer el post me salieron unas dudas:
-En la primera foto "la caja de puros" veo que tienes la raspberry pi y a su alrededor tiene dos cajas, estas cajas son 2 powerbanks?
-Si usas powerbank podrías recomendar cuantos mAh necesitaría para suministrar energía a todos los dispositivos?
Un saludo
Desconectado
Hola smk. Gracias por tu comentario y me alegro que te guste el post.
(La caja es de tequila, no de puros)
En la foto solo hay un powerbank con 2 salidas usb, y es de 7800 miliA. Con este powerbank, consigo una autonomia de entre 1 y 4 horas, dependiendo de la carga que le este metiendo a la rpi.
El powerbank, desde un usb alimenta a la rpi, y desde el otro, alimenta un hub usb que es el que uso para conectar los usbs que necesite como el dongle 3G, o el dispositivo(s) wifi, gps, o lo que toque para lo que se pretenda hacer con la rpi.
Es bien importante que si vas a conectar mas de un dispositivo usb a la rpi, uses el hub y este sea alimentado aparte de la rpi. Es decir, que le estes suministrando energia al hub independiente de la rpi. De otra manera, la rpi no es seguro que funcione, ya que requerira mas energia de la que le llega.
Lo bueno del powerbank es que si lo tienes en el coche (o en casa), puedes alimentarlo con el mechero o cualquier cargador, por lo que la autonomia deja de ser un problema.
Si tienes una raspberry, te invito a que te pases por este post si quieres probar mi proyecto STAPi
En el foro https://www.wifi-libre.com/topic-1234-m … ry-pi.html
En github https://github.com/javierbu/stapi
Como todo, se agradecen dudas, reportes y sugerencias
Saludos!
Desconectado
Tema | Respuestas | Vistas | Ultimo mensaje |
---|---|---|---|
|
26 | 7671 | 15-03-2023 16:57:32 por kcdtv |
Pegado: |
34 | 3751 | 12-03-2023 18:24:22 por Guybrush92 |
Pegado: |
436 | 63507 | 07-03-2023 12:35:27 por kcdtv |
0 | 404 | 23-02-2023 17:09:39 por kcdtv | |
114 | 258443 | 19-02-2023 17:36:14 por chuchof |
Ultimo usuario registrado: trdmexico
Usuarios registrados conectados: 0
Invitados conectados: 10
Número total de usuarios registrados: 2,431
Número total de temas: 1,632
Número total de mensajes: 15,528
Atom tema feed - Impulsado por FluxBB