Escritorio remoto a través de los ojos de un atacante

1 Introduccion

Las empresas que no contaban con sistemas de acceso remoto los implementaron urgentemente hace un par de meses. No todos los administradores estaban preparados para tal “calor”, que resultó en fallas de seguridad: configuración incorrecta de servicios o incluso instalación de versiones obsoletas de software con vulnerabilidades descubiertas previamente. Para algunos, estas omisiones ya han tenido un efecto boomerang, otros tuvieron más suerte, pero definitivamente todos deberían sacar conclusiones. La fidelidad al trabajo remoto ha aumentado exponencialmente y cada vez más empresas aceptan el trabajo remoto como un formato aceptable de forma continuada.

Por tanto, existen muchas opciones para proporcionar acceso remoto: varias VPN, RDS y VNC, TeamViewer y otros. Los administradores tienen mucho para elegir, según las características específicas de la construcción de una red corporativa y los dispositivos que contiene. Las soluciones VPN siguen siendo las más populares; sin embargo, muchas pequeñas empresas eligen RDS (servicios de escritorio remoto), ya que son más simples y rápidos de implementar.

En este artículo hablaremos más sobre la seguridad RDS. Hagamos una breve descripción general de las vulnerabilidades conocidas y también consideremos varios escenarios para lanzar un ataque a una infraestructura de red basada en Active Directory. Esperamos que nuestro artículo ayude a alguien a solucionar errores y mejorar la seguridad.

2. Vulnerabilidades recientes de RDS/RDP

Cualquier software contiene errores y vulnerabilidades que los atacantes pueden aprovechar, y RDS no es una excepción. Microsoft ha estado reportando frecuentemente nuevas vulnerabilidades últimamente, por lo que decidimos darles una breve descripción general:

Esta vulnerabilidad pone en riesgo a los usuarios que se conectan a un servidor comprometido. Un atacante puede obtener el control del dispositivo de un usuario o afianzarse en el sistema para tener acceso remoto permanente.

Este grupo de vulnerabilidades permite a un atacante no autenticado ejecutar de forma remota código arbitrario en un servidor que ejecuta RDS mediante una solicitud especialmente diseñada. También se pueden utilizar para crear gusanos (malware que infecta de forma independiente los dispositivos vecinos en la red). Por lo tanto, estas vulnerabilidades pueden poner en peligro toda la red de la empresa y sólo las actualizaciones oportunas pueden salvarlas.

El software de acceso remoto ha recibido una mayor atención tanto por parte de investigadores como de atacantes, por lo que pronto escucharemos sobre más vulnerabilidades similares.

La buena noticia es que no todas las vulnerabilidades tienen exploits públicos disponibles. La mala noticia es que no será difícil para un atacante con experiencia escribir un exploit para una vulnerabilidad basándose en la descripción o utilizando técnicas como Patch Diffing (nuestros colegas escribieron sobre esto en статье). Por lo tanto, le recomendamos que actualice periódicamente el software y supervise la aparición de nuevos mensajes sobre vulnerabilidades descubiertas.

3. Ataques

Pasamos a la segunda parte del artículo, donde mostraremos cómo comienzan los ataques a la infraestructura de red basada en Active Directory.

Los métodos descritos son aplicables al siguiente modelo de atacante: un atacante que tiene una cuenta de usuario y tiene acceso a Remote Desktop Gateway, un servidor de terminal (a menudo se puede acceder a él, por ejemplo, desde una red externa). Al utilizar estos métodos, el atacante podrá continuar el ataque a la infraestructura y consolidar su presencia en la red.

La configuración de la red en cada caso concreto puede diferir, pero las técnicas descritas son bastante universales.

Ejemplos de salida de un entorno restringido y aumento de privilegios

Al acceder a Remote Desktop Gateway, un atacante probablemente encontrará algún tipo de entorno restringido. Cuando se conecta a un servidor de terminal, se inicia una aplicación en él: una ventana para conectarse a través del protocolo de Escritorio remoto para recursos internos, Explorer, paquetes de Office o cualquier otro software.

El objetivo del atacante será obtener acceso para ejecutar comandos, es decir, ejecutar cmd o powershell. Varias técnicas clásicas de escape del entorno limitado de Windows pueden ayudar con esto. Considerémoslos más a fondo.

1 opción. El atacante tiene acceso a la ventana de conexión a Escritorio remoto dentro de la Puerta de enlace de Escritorio remoto:

Escritorio remoto a través de los ojos de un atacante

Se abre el menú "Mostrar opciones". Aparecen opciones para manipular archivos de configuración de conexión:

Escritorio remoto a través de los ojos de un atacante

Desde esta ventana puede acceder fácilmente al Explorador haciendo clic en cualquiera de los botones "Abrir" o "Guardar":

Escritorio remoto a través de los ojos de un atacante

Se abre el explorador. Su "barra de direcciones" permite iniciar archivos ejecutables permitidos, así como enumerar el sistema de archivos. Esto puede resultar útil para un atacante en los casos en que las unidades del sistema están ocultas y no se puede acceder a ellas directamente:

Escritorio remoto a través de los ojos de un atacante

Vídeo de demostración

Un escenario similar se puede reproducir, por ejemplo, cuando se utiliza Excel del paquete Microsoft Office como software remoto.

Vídeo de demostración

Además, no te olvides de las macros utilizadas en esta suite ofimática. Nuestros colegas analizaron el problema de la macroseguridad en este статье.

2 opción. Utilizando las mismas entradas que en la versión anterior, el atacante inicia varias conexiones al escritorio remoto bajo la misma cuenta. Cuando vuelvas a conectarte, el primero se cerrará y aparecerá en pantalla una ventana con una notificación de error. El botón de ayuda en esta ventana llamará a Internet Explorer en el servidor, después de lo cual el atacante podrá acceder a Explorer.

Vídeo de demostración

3 opción. Si se configuran restricciones para el inicio de archivos ejecutables, un atacante puede encontrar una situación en la que las políticas de grupo prohíban al administrador ejecutar cmd.exe.

Hay una manera de solucionar este problema ejecutando un archivo bat en el escritorio remoto con contenido como cmd.exe /K <comando>. En la siguiente figura se muestra un error al iniciar cmd y un ejemplo exitoso de ejecución de un archivo bat.

Escritorio remoto a través de los ojos de un atacante

4 opción. Prohibir el inicio de aplicaciones mediante listas negras basadas en el nombre de los archivos ejecutables no es una panacea; se pueden eludir.

Considere el siguiente escenario: hemos deshabilitado el acceso a la línea de comando, hemos impedido el inicio de Internet Explorer y PowerShell mediante políticas de grupo. El atacante intenta pedir ayuda, pero no obtiene respuesta. Al intentar iniciar PowerShell a través del menú contextual de una ventana modal, se llama con la tecla Shift presionada: aparece un mensaje que indica que el administrador prohíbe el inicio. Intenta iniciar PowerShell a través de la barra de direcciones; nuevamente no hay respuesta. ¿Cómo eludir la restricción?

Basta con copiar powershell.exe de la carpeta C:WindowsSystem32WindowsPowerShellv1.0 a la carpeta del usuario, cambiar el nombre a otro que no sea powershell.exe y aparecerá la opción de inicio.

De forma predeterminada, cuando se conecta a un escritorio remoto, se proporciona acceso a los discos locales del cliente, desde donde un atacante puede copiar powershell.exe y ejecutarlo después de cambiarle el nombre.

Vídeo de demostración

Hemos dado sólo algunas formas de eludir las restricciones; puede encontrar muchos más escenarios, pero todos tienen una cosa en común: el acceso al Explorador de Windows. Hay muchas aplicaciones que utilizan herramientas estándar de manipulación de archivos de Windows y, cuando se colocan en un entorno limitado, se pueden utilizar técnicas similares.

4. Recomendaciones y conclusión

Como podemos ver, incluso en un entorno limitado hay espacio para el desarrollo de ataques. Sin embargo, puedes hacerle la vida más difícil al atacante. Damos recomendaciones generales que te serán útiles tanto en las opciones que hemos barajado como en otros casos.

  • Limite los lanzamientos de programas a listas blancas y negras mediante políticas de grupo.
    Sin embargo, en la mayoría de los casos, sigue siendo posible ejecutar el código. Le recomendamos que se familiarice con el proyecto. LOLBÁS, para tener una idea de las formas no documentadas de manipular archivos y ejecutar código en el sistema.
    Recomendamos combinar ambos tipos de restricciones: por ejemplo, puede permitir el inicio de archivos ejecutables firmados por Microsoft, pero restringir el inicio de cmd.exe.
  • Deshabilite las pestañas de configuración de Internet Explorer (se puede hacer localmente en el registro).
  • Deshabilite la ayuda integrada de Windows a través de regedit.
  • Deshabilite la capacidad de montar discos locales para conexiones remotas si dicha limitación no es crítica para los usuarios.
  • Limite el acceso a las unidades locales de la máquina remota, dejando el acceso solo a las carpetas del usuario.

Esperamos que te haya resultado al menos interesante y, como máximo, que este artículo ayude a que el trabajo remoto en tu empresa sea más seguro.

Fuente: habr.com

Añadir un comentario