# NetBT

NetBT (también conocido como NBT) es un protocolo de red que permite que las aplicaciones informáticas heredadas que dependen de la API de NetBIOS se utilicen en redes TCP/IP modernas. Ello define cómo se implementan los servicios de red que proporcionan aplicaciones para posterior uso de los servicios inferiores. NBT proporciona la confianza necesaria a NetBiosAPI a través de aplicaciones para el uso del moderno protocolo TCP/IP. Fue desarrollado por IBM a comienzos de los años 1980 para una red de unos doce ordenadores. NBT es definido bajo los estándares RFC 1001 y RFC 1002. De este modo podemos hablar de NetBIOS sobre TCP/IP o NBNS, el equivalente a DNS en TCP/IP.

## Funcionalidad

NetBIOS proporciona a los programas una serie uniforme de comandos para solicitar los servicios de niveles inferiores necesarios para comunicar equipos a través de la red.

## Problemas

Se ha detectado que cuando NetBT construye las respuestas del servicio de nombres, asigna un buffer de mayor capacidad para que se pueda incluir la información necesaria para la respuesta. Este buffer no se inicializa correctamente antes de ser utilizado con lo que no se puede asegurar que esté realmente vacío. NetBT solamente escribirá en el buffer la cantidad de datos necesaria para la respuesta, pero ha de leer todo el contenido del buffer cuando envía la respuesta al sistema que la solicita. En consecuencia, la separación, o la diferencia entre los datos escritos y leídos en el buffer, podrían estar formadas por datos arbitrarios de una operación anterior de la memoria, ya que el buffer no se ha inicializado en primer lugar.
Se trata pues de un problema relacionado con la separación en los datagramas del nivel de red en el protocolo TCP/IP. Normalmente la cantidad de datos que se expone es de unos 15 bytes o menos, que es el espacio que se reserva para la respuesta.
Así pues se podría dar el caso en el que un atacante podría recibir datos aleatorios o arbitrarios de la memoria de otro equipo conectado en una red.
Puesto que la interfaz de programación de aplicaciones se desarrolla principalmente en redes de área local, esto puede suponer un gran problema sobre todo en grandes empresas.
Los servicios de nombre NetBIOS (NBNS) permiten buscar la dirección IP de una máquina a partir de su nombre NetBIOS o viceversa. Esta vulnerabilidad es aleatoria, es decir, al realizar una consulta del servicio de nombres NetBIOS puede, ser transferidos aparte de los resultados para dicho consulta contener partes de código HTML o datos aleatorios de la memoria del sistema destino. Esta información no se puede controlar. A simple vista son datos aleatorios pero si el atacante es capaz de obtener acceso al sistema de destino a través de NetBT el problema se complica.

## Posibles soluciones

El seguimiento de las medidas de seguridad estándar y el bloqueo del puerto UDP 137 en el servidor de seguridad imposibilitan los ataques desde Internet.
Para aprovechar la vulnerabilidad anteriormente comentada, un atacante debería ser capaz de enviar una solicitud NetBT especialmente diseñada al puerto 137 del sistema de destino y, a continuación, inspeccionar la respuesta para comprobar si contiene datos aleatorios de la memoria de ese sistema. En los entornos conectados a una Intranet, estos puertos suelen estar accesibles, pero en las máquinas conectadas a Internet, estos puertos están normalmente bloqueados por un servidor de seguridad.