En esta segunda entrega del artículo vamos a llevar a cabo ciertas pruebas que nos vendrán bien a la hora de realizar una auditoría.
AUDITANDO LA SEGURIDAD
A continuación vamos a ver ciertas técnicas que podemos llevar a cabo durante un auditoría wifi:
AUDITANDO WPS PIN
Durante el escaneo de las redes wifi disponibles que hemos visto anteriormente, hemos utilizado el comando airodump-ng con el parámetro –wps . Este nos daba información sobre si el WPS se encontraba activado en el router:
Para comprobar la seguridad de esta configuración utilizaremos la herramienta bully que realizará fuerza bruta de pines al punto de acceso seleccionado. Lo ejecutaremos con el parámetro -b <bssid> como se muestra:
También podremos lanzarlo indicando el canal en el que emite el punto de acceso con –channel <canal> y el pin de siete dígitos máximo con -p <pin> por el que queremos que empiece a realizar fuerza bruta:
Hay que tener en cuenta que por lo general es un proceso que lleva bastante tiempo por lo que habrá que dejarlo ejecutando y revisarlo de vez en cuando ante posibles errores o bloqueos del punto de acceso.
AUDITANDO WPA2 ENTERPRISE
Las redes wifi más comunes son aquellas que nos piden una contraseña para poder conectarnos. Pero en el mundo empresarial, estas redes son un poco más seguras. Están configuradas con WPA2-Enterprise (802.11x) cuya autenticación se hace a través de usuario y contraseña y certificado (EAP-TLS) que serán validados contra un servidor RADIUS. Pero a pesar de todo esto, si los usuarios se conectan sin validar los certificados (EAP-MSCHAPv2), es posible capturar ciertos parámetros en la autenticación de un usuario (challenge y response) para poder obtener las credenciales a través de fuerza bruta.
Tendremos que instalar las librerías libnl-genl-3-dev y libssl-dev:
Seguidamente nos descargaremos con wget la versión específica de hostapd:
Descomprimiremos el paquete descargado y nos bajaremos de github la versión específica de hostapd-wpe:
Tendremos que entrar en el directorio descomprimido anteriormente y aplicar el patch:
Aplicado el patch, eliminaremos la # con el comandosed en el fichero .config y compilaremos:
Accederemos a la carpeta de los certificados y generaremos las claves necesarias para que todo funcione correctamente:
Después de todos estos pasos, configuraremos el fichero hostapd.conf :
La configuración que estableceremos es la que se corresponde con las siguientes tres imágenes:
El campo ssid debería coincidir con el de la red wifi legítima para llevar a cabo la auditoría. En este caso hemos elegido un nombre ficticio:
Con esto ya tenemos todo configurado y listo para la acción. Arrancaremos hostapd con el fichero de configuración anterior:
Ahora sólo nos queda esperar a que alguien se conecte a nosotros, por lo que tendremos dos opciones, desautenticar a los usuarios de la red corporativa (sería recomendable pedir permiso) o esperar a que alguien por error se conecte a nosotros… Y voilá, usuario capturado:
Observamos como aparece el nombre del usuario que se ha conectado, el challenge que envía el usuario al servidor y el response que envía el servidor al usuario. Estos parámetros son los que necesitaremos para pasárselos a la herramienta asleap que junto a un diccionario robusto, podrá extraer las credenciales del usuario:
Si los usuarios tienen configurada una contraseña con una buena política (mayúsuculas, minúsculas, números y símbolos) será casi imposible obtener las credenciales, pero se puede dar el caso de que pongan como credenciales nombres de familiares, mascotas, fechas de cumpleaños, etc…. que son fácilmente adivinables.
AUDITANDO ESSID OCULTOS
Al realizar una auditoría de una red wifi puede ser que el cliente requiera conocer las redes wifi ilegítimas, levantadas por ejemplo para tener internet saltándose la política de la empresa, que se encuentren ocultas dentro del edificio. Existen dos formas de identificar el ESSID oculto de esas redes wifi: de forma pasiva y de forma activa.
En este ejemplo nos hemos decantado por la forma pasiva. Haremos primeramente un descubrimiento de las redes wifi que están en nuestro alcance y que no disponen del ESSID ya que está oculto:
El siguiente paso sería identificar la dirección MAC del punto de acceso (campo BSSID) para utilizarla con el analizador de red Wireshark y filtrar los paquetes por esa dirección MAC. El filtro que aplicaríamos en Wireshark sería wlan.sa==XX:XX:XX:XX:XX:XX||wlan.da==XX:XX:XX:XX:XX:XX||wlan.ra==XX:XX:XX:XX:XX:XX||wlan.ta==XX:XX:XX:XX:XX:XX . Una vez establecido el filtro de captura, sólo nos quedaría esperar a que un cliente se conecte a esa red wifi oculta y se realice un envío de paquetes Probe_request – Probe Response para que se capture el nombre del ESSID :
La forma activa consistiría en realizar la misma prueba pero desautenticando a los clientes que se encuentren conectados al punto de acceso oculto de forma que se reconecten automáticamente, en vez de esperar a que alguno se conecte.