Una vulnerabilidad crítica que ha estado presente en el Servidor DNS de Windows de Microsoft durante casi dos décadas y podía explotarse para obtener privilegios de Administrador de Dominio y comprometer toda la infraestructura corporativa detrás de ella. Microsoft la ha solucionado hoy.
La vulnerabilidad recibió el identificador de seguimiento CVE-2020-1350 y el nombre SigRed. Es una Ejecución Remota de Código que afecta a las versiones de Windows Server 2003 a 2019 y recibió la calificación de gravedad máxima, 10 de 10.

La vulnerabilidad es crítica porque es «wormable», lo que significa que un exploit puede propagarse automáticamente a máquinas vulnerables en la red sin interacción del usuario. Esta característica lo coloca en la misma categoría de riesgo que EternalBlue en Server Message Block (SMB) y BlueKeep en Remote Desktop Protocol (RDP).

Paquete DNS mal formado

El sistema de DNS es un modelo es jerárquico y descentralizado, por lo que si un servidor DNS reenvía las consultas a las que no tiene respuesta. En la parte superior de la jerarquía hay 13 servidores DNS raíz que tienen toda la información. Los investigadores de Check Point descubrieron una falla en la implementación de DNS de Microsoft que puede explotarse cuando el servidor analiza una consulta entrante o una respuesta a una solicitud reenviada.

Encontraron un desbordamiento de enteros que conduce a un desbordamiento de heap-based buffer en «dns.exe! SigWireRead», la función que analiza los tipos de respuesta para consultas tipo «SIG». Para resumir, al enviar una respuesta DNS que contenga un registro SIG grande (mayor que 64 KB), se puede causar un desbordamiento del búfer basado en el almacenamiento dinámico de aproximadamente 64 KB en un pequeño búfer asignado.
Para hacer que el servidor DNS de Windows objetivo analice las respuestas desde su máquina, los investigadores hicieron lo siguiente:

  • Configurar los registros NS a un dominio propio (deadbeef.fun) para que apunten a un servidor DNS malicioso (ns1.41414141.club)
  • Consultar a la víctima del servidor DNS de Windows para obtener registros NS de deadbeef.fun
  • El DNS de la víctima, que aún no conoce la respuesta para esta consulta, reenvía la consulta al servidor DNS que se encuentra arriba (8.8.8.8)
  • El servidor autorizado (8.8.8.8) conoce la respuesta y responde que el NameServer de deadbeef.fun es ns1.41414141.club
  • El NS Server de Windows procesa y almacena en caché esta respuesta
  • La próxima vez que solicitemos un subdominio de deadbeef.fun, el servidor DNS de Windows de destino también consultará a ns1.41414141.club por su respuesta, ya que es el NameServer para este dominio.

Los investigadores descubrieron que un actor dalino que explota SigRed no tiene que estar en la misma red que el servidor DNS de destino, ya que los datos DNS pueden transportarse a través de una conexión TCP, compatible con Windows DNS. Como tal, el servidor de destino analizará los datos como una consulta DNS, incluso si está empaquetada como una carga HTTP.
Check Points señala que debido a que el servidor DNS de Windows admite «Reutilización de conexión» y «Canalización», un atacante puede iniciar varias consultas a través de una conexión TCP sin tener que esperar una respuesta. Estas características permiten enviar al servidor una solicitud HTTP POST con datos binarios que tiene otra consulta DNS en los datos POST, para ser procesadospor separado.
Esto es posible en navegadores menos populares que permiten solicitudes al puerto 53 utilizadas por DNS. Google Chrome y Mozilla Firefox no permiten solicitudes HTTP a este puerto.
La vulnerabilidad ha existido en el código de Microsoft por más de 17 años y los investigadores que lo encontraron dicen que no es descabellado suponer que otros actores también pueden haberlo encontrado.

«Una violación del servidor DNS es un problema crítico. La mayoría de las veces, coloca al atacante a solo una pulgada de distancia de violar a toda la organización. Solo hay un puñado de estos tipos de vulnerabilidad lanzados alguna vez» dijo Omri Herscovici de CheckPoint.

Es fundamental que las organizaciones grandes y pequeñas prioricen la aplicación de los parches que Microsoft lanzó hoy para SigRed.

 Actualización 16:30: como una solución temporal, hasta que se aplique el parche, sugerimos establecer la longitud máxima de un mensaje DNS (sobre TCP) en 0xFF00, lo que debería eliminar la vulnerabilidad. Se puede hacer ejecutando los siguientes comandos:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters" /v
   "TcpReceivePacketSize" /t REG_DWORD /d 0xFF00 /f
net stop DNS && net start DNS
Fuente noticia: blog.segu-info.com.ar
Fuente foto: freepik.es