El pasado martes entre todas las actualizaciones y parches que publicó Microsoft se corregía por fin una que ha estado oculta y latente en las últimas décadas y que afecta a todos los sistemas operativos Microsoft Windows, desde Windows 95 hasta Windows 10. Concretamente el boletín MS16-077 que incluye el parche para la vulnerabilidad bautizada como BadTunnel que, básicamente, puede permitir a un atacante redireccionar todo el tráfico de la víctima mediante un NetBIOS-spoofing a través de red.

Su descubridor, el chino Yang Yu del lab Xuanwu de Tencent en Pekín que recibió 50.000$ de Microsoft, afirma que "esta vulnerabilidad tiene un impacto masivo en la seguridad - probablemente el mayor impacto en la historia de Windows [...] No sólo se puede aprovechar a través de muchos canales diferentes, si no que también existe en todas las versiones de Windows liberadas durante los últimos 20 años. Puede ser explotada en silencio con una tasa de éxito casi perfecta".

BadTunnel no es el error típico de programación: es una combinación de aspectos que en conjunto permiten la explotación de una vulnerabilidad. "Esta vulnerabilidad se debe a una serie de implementaciones aparentemente correctas, que incluyen un protocolo de capa de transporte, un protocolo de capa de aplicación, el uso un poco específico del protocolo de aplicación por el sistema operativo y varias implementaciones de protocolo utilizadas por firewalls y dispositivos NAT" explica Yu.

Puede ser explotado a través de todas las versiones de Microsoft Office, Edge, Internet Explorer y a través de varias aplicaciones de terceros en Windows. A diferencia de la mayoría de los ataques ni siquiera requiere de malware, aunque un atacante podría instalar programas maliciosos. Eso hace que sea aún más difícil de detectar. Además, un atacante también podría ejecutar el ataque a través de servidores IIS y Apache Web, así como a través de una unidad de disco USB.

Mediante un spoofing de netbios "en remoto", el atacante puede obtener acceso al tráfico de red sin estar en la red de la víctima, y también pasar por alto los firewalls y gateways (NAT) entre medias. El típico escenario sería el siguiente:

1. Alice y Bob pueden estar ubicados en redes distintas y separadas por firewalls y pasarelas que hagan NAT, siempre y cuando el puerto 137/UDP de Bob sea alcanzable por Alice.

2. Bob cierra los puertos 139 y 445 pero escucha en el 137/UDP.

3. Alice intenta acceder a una URI o ruta UNC para acceder a un archivo de Bob, y a otro hostname como "http://wpad/x.jpg" o "http://fileserver/x.jpg". Alice envía una consulta NBNS NBSTAT a Bob, y también envía una consulta NBNS NB a la dirección de difusión de LAN.

4. Si Bob bloquea el acceso a los puertos 139 y 445 utilizando un firewall, Alice envía una consulta NBNS NBSTAT después de aproximadamente 22 segundos. Si en vez de eso Bob bloquea ambos puertos mediante la desactivación del Servicio de servidor de Windows o NetBIOS sobre protocolo TCP/IP, Alice no necesita esperar al timeout de conexión antes de enviar la consulta.

5. Cuando Bob recibe la consulta NBNS NBSTAT enviada por Alice, Bob crea una respuesta NBNS NB mediante la predicción de la identificación de la transacción, y la envía a Alice. Si un paquete de heartbeat se envía cada pocos segundos, y la mayoría de cortafuegos y pasarelas mantendrán el túnel 137/UDP <-> 137/UDP abierto.

6. Alice añadirá la dirección resuelta enviada por Bob a la caché NBT. El TTL predeterminado para la entrada de la caché NBT es de 600 segundos.

De esta manera Bob puede secuestrar el tráfico de red de Alice haciéndose pasar por un servidor WPAD (Web Proxy Auto-Discovery Protocol) o ISATAP (Intra-Site Automatic Tunnel Addressing Protocol (ISATAP). Elaborado y muy impresionante, ¿Verdad?

La solución: bloquear el puerto 137/UDP de cara a Internet e inmediatamente después parchear con MS16-077 y, si se tiene un sistema no soportado como XP pues desactivar Netbios sobre TCP.

Fuentes:
- BadTunnel: a vulnerability all Windows users need to patch
- Windows 'BadTunnel' Attack Hijacks Network Traffic
- 'BadTunnel' Bugs Left Every Microsoft Windows PC Vulnerable For 20 Years
- Windows ‘BadTunnel’ Attack Hijacks Network Traffic

- BadTunnel: a vulnerability all Windows users need to patch