Exfiltración de credenciales a través de WLAN SSIDs

"Aparcó el coche lo más cerca posible de las oficinas y reflejado en los cristales de sus ventanas, ahora convertidas por la luz del día en auténticos espejos, veíamos la silueta de nosotros, como observadores furtivos contemplando ante nosotros una muralla infranqueable. Teníamos como misión robar las credenciales del director ejecutivo para acceder a su cuenta de correo en la nube y poder interceptar ciertos mensajes, pruebas irrefutables para destapar al mundo su podrida corrupción.

Mi socio acarició la tapa de su portátil cuidadosamente decorada por varias pegatinas testigos de su presencia en mil y una conferencias de hacking, la abrió y observó pensativo la pantalla de login, que proyectaba un tenue reflejo sobre su (sin embargo) relajado rostro. A continuación desbloqueó su blackphone y, como por arte de magia, una de las redes WiFi a su alcance tenía como nombre el anhelado usuario y contraseña del director, en seguida comprobó el acceso al correo y desaparecimos raudos del lugar con tremebundo trofeo.

Al día siguiente, un caso más de corrupción abría las portadas de todos los telediarios matinales e instigados por el CISO, los equipos de redes escudriñaron palmo a palmo los paquetes que atravesaron los firewalls, el tráfico de cada dispositivo de seguridad perimetral, cada log de navegación del proxy, cada una de las alertas generadas por los IPS, ... pero no encontraron ni rastro de la exfiltración de las credenciales. Nadie imaginó que durante unas horas la contraseña fue emitida al aire en un SSID ligeramente ofuscado, y nadie pudo demostrar nunca que nosotros la obtuvimos simplemente viendo las redes dentro del alcance de un simple smartphone, pues cualquiera que pasaba por ahí las podría haber leído..."


Con esta breve historia quiero ilustrar que hasta las técnicas más rocambolescas, más inesperadas, pueden ser de una efectividad máxima. Y es que aunque los nombres de SSID admiten un máximo de 32 bytes pueden ser utilizados para exfiltrar información tan sensible como una contraseña. Precisamente, Nikhil SamratAshok Mittal se dió cuenta de llo jugando con la característica de Windows Hosted Network y elaboró un script de PowerShell que permite hacerlo, es decir, exfiltrar datos usando sólo nombres SSID.

El script es Invoke-SSIDExfil.ps1 y proporciona múltiples opciones para exfiltrar datos. Usa la lógica de Invoke-CredentialsPhish de Nishang para mostrar un mensaje de credenciales al usuario y poder capturar las credenciales en texto claro. Las credenciales capturadas se codifican mediante ROT13, crea una red Windows Hosted y se inicia con el nombre SSID con el formato Dominio: Nombre de usuario: Contraseña. 

A continuación se muestra el script en acción. Ten en cuenta que el script se debe ejecutar desde un shell con privilegios:


Y, si tenemos proximidad física con el objetivo - veremos el SSID tal que así:


Ahora, podemos decodificar las credenciales de usuario usando la opción -Decode del script:


El script se puede utilizar como payload en ataques dirigidos al cliente, dispositivos de interfaz humana (Kautilya), ejecución de comandos autenticados y otras técnicas.

Utilizando los parámetros -StringToExfiltrate y -ExfilOnly, también es posible exfiltrar un pequeño fragmento de datos sin mostrar un mensaje de solicitud de credenciales al usuario.

Además, el autor creó un backdoor llamado Gupt que es capaz de ejecutar comandos recibiendo las órdenes mediante redes WiFi cercanas con SSID con nombres especiales. ¡Impresionante!

Fuentes:
- Exfiltration of User Credentials using WLAN SSID
- Introducing Gupt: A Backdoor which uses Wireless network names for command execution

1 comentarios :

  1. Genial, gracias por compartir y excelente la historia, además hace unas horas ni sabia que era la powershell, soy re noob :P. No me codifica si la pass son numeros, sanskri.. :)

    ResponderEliminar