Vulnerabilidades épicas: Windows RDP CVE-2012–0002

A finales de Febrero y principio de Marzo de 2012, en algunos foros Chinos empezaron aparecer unos PoC para explotar una vulnerabilidad que afecta a la función de escritorio remoto de Windows (RDP) y que podría permitir a un atacante ejecutar código remoto.

Esta vulnerabilidad ya había sido reportada a Microsoft el 24 de Agosto de 2011 por Luigi Auriemma, es decir 7 meses antes, lo que conllevó a fuerte sospechas sobre que los datos de explotación de la vulnerabilidad que se facilitaron a la ZDI habían sido filtrados, ya que el paquete de la PoC encontrada en los foros Chinos coinciden según comenta en un tweet el propio investigador.

Es así que el 13 de Marzo de 2012 Microsoft publica su boletín de seguridad Ms12–020 en el cual soluciona los errores en RDP. Si bien disponer del parche significaba una solución inmediata para mitigar la vulnerabilidad, esta debería de ser acompañada de una fuerte campaña de concientización para su corrección, debido a que se disparó una carrera en la que incluso se ofrecieron recompensas para el primero que escribiera un exploit funcional.

En la actualidad

El protocolo RDP aun sigue siendo utilizado por los usuarios Windows como la forma de poder acceder remotamente a la administración de sus sistemas. El desconocimiento de las vulnerabilidades de los servicios expuestos en los sistemas es un problema que convive desde hace mucho tiempo en las empresas y con los administradores de sistemas particularmente.

En la actualidad RDP es utilizado en al rededor 174.994 implementaciones de acceso público, solamente en Latinoamérica. Este número aumenta a gran escala a nivel mundial, si bien no todas las implementaciones son vulnerables, por razonamiento lógico sabemos que en muchas aun no han aplicado el parche que fue lanzado en 2012, dejándolas aún vulnerable.

Gráfico que muestra las implementaciones con el protocolo RDP expuestas en internet y en Latinoamérica — Resultados obtenidos con Shodan — Busqueda: port:”3389" country:”ve,br,cl,co,uy,ar,mx,ec,pe,pa,bo,py”

Windows RDP CVE-2012–0002

Resumen: La aplicación Remote Desktop Protocol (RDP) de Microsoft Windows XP SP2 y SP3, Windows Server 2003 SP2, Windows Vista SP2, Windows Server 2008 Service Pack 2, R2 y R2 SP1, y Windows 7 Gold y SP1 no procesa correctamente los paquetes en la memoria, lo que permite a atacantes remotos ejecutar código arbitrario mediante el envío de paquetes RDP modificados que provocan acceso a un objeto que (1) no se ha inicializado correctamente o (2) se suprime, también conocido como “Remote Desktop Protocol Vulnerability.”

Tipo de impacto: Compromiso total de la integridad del sistema + Compromiso total de la confidencialidad del sistema + Compromiso total de la disponibilidad del sistema.

Mas info: CVE-2012–0002

Chequeo

Usar Metasploit

msf > use auxiliary/scanner/rdp/ms12_020_check
msf auxiliary(ms12_020_check) > show actions
…actions…
msf auxiliary(ms12_020_check) > set ACTION <action-name>
msf auxiliary(ms12_020_check) > show options
…show and set options…
msf auxiliary(ms12_020_check) > run

Este módulo de Metasploit comprueba la vulnerabilidad MS12–020 para un host o para un rango de hosts. Esto no causa un ataque DoS en el objetivo.

Explotación

Usar Metasploit

msf > use auxiliary/dos/windows/rdp/ms12_020_maxchannelids
msf auxiliary(ms12_020_maxchannelids) > show actions
…actions…
msf auxiliary(ms12_020_maxchannelids) > set ACTION <action-name>
msf auxiliary(ms12_020_maxchannelids) > show options
…show and set options…
msf auxiliary(ms12_020_maxchannelids) > run

Este módulo de Metasploit explota la vulnerabilidad MS12–020 RDP. La falla puede encontrarse en la forma en que el paquete T.125 ConnectMCSPDU se maneja en el campo maxChannelIDs, que dará como resultado un puntero no válido. Esta vulnerabilidad puede causar un compromiso de todo el sistema. Los intentos fallidos que se causan al aprovechar esta vulnerabilidad puede causar una denegación de servicio para RDP.

Mitigación

El ataque será efectivo si no se tiene activado el NLA.

NLA (Network Level Authentication) No activado

Para mitigar, se deberá de activar NLA en las opciones de RDP como se muestra a continuación.

Adicionalmente algunas buenas practicas de mitigacion:

Existen opciones, configuraciones común o prácticas generales recomendadas, que podría reducir la gravedad de una vulnerabilidad. Los siguientes factores mitigatorios podrían ser útiles en una situación particular:

  • Por defecto, el protocolo de escritorio remoto no está habilitado en cualquier sistema operativo Windows. Los sistemas que no tienen habilitado RDP no están en riesgo. Tenga en cuenta que en Windows XP y Windows Server 2003, Asistencia remota puede permitir RDP. En caso de no ser necesario, deshabilitar RDP sería una buena opción, sobre todo para equipos que están expuestos a internet.
  • Reglas en el firewall y las configuraciones de firewall del sistema pueden proteger a las redes de los ataques que se originan fuera del perímetro de la empresa. Se recomienda denegar cualquier petición RDP que venga fuera del perímetro de red de la empresa, los sistemas conectados directamente a Internet deberían de tener una cantidad mínima de puertos expuestos.

Enlaces de interés:

Datos técnicos de la vulnerabilidad reportada por Luigi Auriemma: http://aluigi.altervista.org/adv/termdd_1-adv.txt

Exploit en Python:

Nmap Script para ms12-020

http://seclists.org/nmap-dev/2012/q1/att-662/rdp-ms12-020.nse

Howlermonkey — CVE-2012–0002

http://app.howlermonkey.io/cve/?id=CVE-2012-0002