Hostapd-WPE (Wireless Pwnage Edition) es un parche para hostapd v2.2 creado por el grupo OpenSecurity Reasearch como reemplazo a FreeRadius-WPE. El parche WPE permite  dar soporte a hostapd para la realización de ataques de suplantación del servidor de autenticación IEEE 802.1x permitiendo obtener las credenciales de los clientes. El parche también implementa el ataque Cupido, a través del cual es posible la realización de ataques a clientes mediante la explotación de la vulnerabilidad Heartbleed (CVE-2014-0160) sobre conexiones EAP-PEAP/TLS/TTLS.

Este artículo nace tras la necesidad de disponer de un dispositivo portable para la realización de pruebas de seguridad inalámbricas en infraestructuras (802.11b/g/n y 802.11ac). Para ello se decidió adquirir un router TP-Link Archer C5 AC1200 (soportado por OpenWrt) y una batería recargable Powergorilla Portable Charger para dar autonomía al dispositivo.

Hostapd-wpe para OpenWrt Barrier Breaker 14.07 (hostapd 2014-06-04 – v2.2)

OpenWrt incluye  un paquete con las herramientas de la suite Aircrack-ng pero no dispone de ningún paquete por defecto para la realización de pruebas sobre entornos WPA-Enterprise, por lo que el equipo de Tarlogic Security (Acrylic WiFi) ha creado un paquete propio para OpenWrt 14.07 (Barrier breaker) dando soporte a Hostadp-WPE.

El parche WPE original  está diseñado para realizar las modificaciones sobre el código de hostapd v2.2, sin embargo el paquete hostapd de OpenWrt dispone de gran cantidad de parches que realizan modificaciones sobre el código con el objetivo de solucionar distintos tipos de errores, consecuentemente fue necesario aplicar manualmente los cambios del parche WPE.

Se han generado los paquetes OPKG (.ipk) de hostapd-WPE para todas las arquitecturas soportadas por OpenWrt y se han incluido distintos ficheros de configuración funcionales para levantar tanto un punto de acceso 802.11bgn como 802.11ac.

Los distintos paquetes OPKG, así cómo el código fuente y el paquete para la compilación de hostapd-WPE puede ser descargado en el siguiente enlace:

Este fichero, contiene los paquetes ya compilados para:

  • hostapd-wpe_2014-06-03.1-1_ar71xx.ipk
  • hostapd-wpe_2014-06-03.1-1_ar7.ipk
  • hostapd-wpe_2014-06-03.1-1_at91.ipk
  • hostapd-wpe_2014-06-03.1-1_atheros.ipk
  • hostapd-wpe_2014-06-03.1-1_au1000.ipk
  • hostapd-wpe_2014-06-03.1-1_brcm2708.ipk
  • hostapd-wpe_2014-06-03.1-1_brcm47xx.ipk
  • hostapd-wpe_2014-06-03.1-1_brcm63xx.ipk
  • hostapd-wpe_2014-06-03.1-1_cns21xx.ipk
  • hostapd-wpe_2014-06-03.1-1_cns3xxx.ipk
  • hostapd-wpe_2014-06-03.1-1_imx6.ipk
  • hostapd-wpe_2014-06-03.1-1_ixp4xx.ipk
  • hostapd-wpe_2014-06-03.1-1_kirkwood.ipk
  • hostapd-wpe_2014-06-03.1-1_lantiq.ipk
  • hostapd-wpe_2014-06-03.1-1_malta_mips64.ipk
  • hostapd-wpe_2014-06-03.1-1_malta_mipsel64.ipk
  • hostapd-wpe_2014-06-03.1-1_malta_mipsel.ipk
  • hostapd-wpe_2014-06-03.1-1_malta_mips.ipk
  • hostapd-wpe_2014-06-03.1-1_mpc85xx.ipk
  • hostapd-wpe_2014-06-03.1-1_octeon.ipk
  • hostapd-wpe_2014-06-03.1-1_ramips_24kec.ipk
  • hostapd-wpe_2014-06-03.1-1_ramips.ipk
  • hostapd-wpe_2014-06-03.1-1_realview.ipk
  • hostapd-wpe_2014-06-03.1-1_x86.ipk
  • hostapd-wpe_2014-06-03.1-1_xburst.ipk

Los paquetes ipk para cada arquitectura están disponibles en el directorio /ipk. En el caso del dispositivo TP-Link Archer C5 AC1200 será necesario instalar el paquete localizado en el directorio ipk/ar71xx/generic.

openwrt with hostapd-wpe cracking

A continuación se detalla además el proceso de compilación cruzada (cross-compiling) para la creación del paquete hostapd-WPE para cualquier arquitectura específica soportada por OpenWrt.

Compilación de hostapd-wpe para OpenWrt Barrier Breaker 14.07

A continuación se detallan los pasos para realizar la  compilación cruzada de  hostapd-WPE con el objetivo de generar binarios específicos para cada arquitectura concreta.

Requisitos previos para compilar hostapd-wpe en openwrt

 

  • Entorno de compilación de hostapd-wpe

El sistema operativo empleado para la compilación ha sido la distribución Linux Kali 1.1.0 x86-64, aunque también se ha probado con Debian 7.8.0.

Las herramientas del SDK requieren la instalación previa de los paquetes GNU C++, GNU AWK, ncurses, zlib, ccache, Git, Mercurial/Hg y subversion. El siguiente comando permite la descarga de los distintos paquetes:

apt-get install g++ libncurses5-dev git-core subversion mercurial gawk zlib1g-dev ccache

**NOTA: La lista de paquetes necesarios en caso de que se disponga de otra distribución se puede consultar en la siguiente URL: wiki.openwrt.org

  • Dispositivo con firmware OpenWrt Barrier Breaker 14.07
  • SDK para la arquitectura concreta del dispositivo.

Para la compilación del binario será necesario descargar el entorno de desarrollo (SDK) asociado a la arquitectura específica de cada dispositivo. OpenWrt dispone de SDKs para las arquitecturas soportadas y la versión del firmware concreta en su repositorio de descargas, accesible a través de la siguiente URL: https://downloads.openwrt.org/

  • Se deberá seleccionar la release del firmware, en este caso Barrier Breaker 14.07.
  • Seleccionar la arquitectura del dispositivo. En el caso del dispositivo TP-Link TP-Link Archer C5 AC1200 es ar71xx
  • Seleccionar el subtarget. En nuestro caso generic.
  • Descargar el archivo OpenWrt-SDK-XXXX -for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2

 

  • Paquete hostapd-WPE y ficheros de configuración.

Podéis descargar el paquete en el siguiente enlace: hostapd-wpe-for-OpenWrt-14.07.tar

La estructura de directorios se detalla a continuación:

  •  bootstrap: Scripts para la generación del certificado del servidor.
  • certs: Directorio con certificados por defecto.
  • config: Ficheros de configuración para puntos de acceso 802.11bgn y 802.11ac
  • dl: Contiene el código fuente de hostapd-wpe.
  • package: Paquete hostapd-wpe para su compilación con el SDK de OpenWrt.

 

Compilación cruzada (Cross-compiling) de hostapd-WPE para OpenWrt 14.07

Para realizar la compilación de hostapd-wpe para una arquitectura específica será necesario realizar las siguientes acciones:

  • Descomprimir el SDK bajado previamente.
  • Descomprimir el fichero hostapd-wpe-for-OpenWrt-14.07.tar y copiar el directorio /package/hostapd-wpe en {DIRECTORIO_SDK}/package
cp -R hostapd-wpe  {DIRECTORIO _SDK}/package/
  • Copiar el código fuente comprimido de hostapd-wpe (hostapd-2014-06-03.1.tar.bz2) en la carpeta dl del SDK.
cp -R ./dl/hostapd-2014-06-03.1.tar.bz2  {DIRECTORIO_SDK}/dl/
  • Finalmente desde el directorio raíz de SDK se podrá iniciar la compilación del paquete mediante la ejecución del siguiente comando.
cd {DIRECTORIO_SDK}make package/hostapd-wpe/compile

Tras la compilación se podrá se generará el ipk correspondiente accediendo en el siguiente directo.

{DIRECTORIO_SDK}/bin/{ARQUITECTURA}/packages/base/

A partir de este punto ya se podrá instalar el paquete de forma manual.

Instalación del paquete hostapd-WPE para OpenWrt Barrier Breaker 14.07

La instalación del paquete hostapd-wpe para openwrt de forma manual requerirá copiar el ipk generado al dispositivo haciendo uso de SCP, y a continuación instalarlo mediante el comando opkg.

opkg install hostapd-wpe_2014-06-03.1-1_ar71xx.ipk

El binario hostapd-wpe será desplegado en el directorio /usr/sbin del dispositivo. Los distintos ficheros de configuración se crearán en el directorio /usr/local/etc/hostapd-wpe/

En el siguiente artículo se explicará cómo usar hostapd-wpe con openwrt para crackear claves 802.1x