Múltiples clientes RDP vulnerables a ejecución remota de código

Un servidor malicioso sería capaz de ejecutar código en 3 de los principales clientes RDP: FreeRDP, rdesktop y mstsc.exe (el cliente de serie de Microsoft). No existe un parche para este último.

RDP (Remote Desktop Protocol) es un popular protocolo desarrollado por Microsoft para controlar equipos mediante interfaz gráfica de forma remota, para el que existen múltiples clientes tanto de software libre, como el propietario de Microsoft. Tras analizar el cliente oficial (mstsc.exe) y otros dos de software libre (FreeRDP y rdesktop), se ha encontrado que los 3 permitirían la ejecución remota de código en el cliente.

En el caso de FreeRDP, el más popular y maduro de los disponibles de software libre, se han encontrado 4 vulnerabilidades de tipo heap overflow (CVE 2018-8784 hasta CVE 2018-8787) que provocarían una corrupción de memoria, y probablemente la ejecución de código remoto. También se han encontrado otras dos de escritura fuera de límites (CVE-2018-8788 y CVE-2018-8789), ocasionando la primera corrupción de memoria con posible RCE (Remote Code Execution) y la segunda Denegación de Servicio (Segfault).

rdesktop, incluido de serie en Kali Linux y también bastante popular, es de los tres analizados el peor parado, con 11 vulnerabilidades graves, junto con otras 19 de diferente transcendencia. Los identificadores abarcan desde el CVE-2018-8791 hasta CVE-2018-8800, y desde CVE 2018-20174 hasta CVE-2018-20182. La mayoría de vulnerabilidades son de tipo lectura fuera de límites y diferentes tipos de overflow.

Finalmente, Mstsc.exe, el oficial de Microsoft, también sería vulnerable a un fallo RCE, aunque esta vez a través del portapapeles. El portapapeles, compartido entre servidor y cliente, presenta como principal problema que ambas partes podrían revelar información sensible como contraseñas que se hayan copiado, lo que podría considerarse una ‘feature’. No obstante, lo que se ha descubierto va más allá, al no controlar el cliente que la ruta de los archivos en el portapapeles no tengan un path traversal (como ‘..\file.txt’).

Un posible ejemplo de explotación, sería un usuario con una conexión RDP abierta a un servidor malicioso, que copia unos archivos (no necesariamente remotos) y los pega en un directorio local de su máquina. El servidor malicioso, al poder modificar el portapapeles, podría añadir un archivo adicional que se escribiría en una ruta del sistema, con los programas de arranque, y sin que el usuario pueda darse cuenta de que su portapapeles ha sido modificado.

El error ha sido notificado a Microsoft, pero ésta ha respondido que aunque reconoce el fallo, no considera el reporte válido al no cumplir sus criterios (Microsoft Security Servicing Criteria for Windows). Debido a esto, el error no puede tener CVE, y no cuenta con un parche. En caso de necesitar utilizar el cliente RDP de Microsoft, se recomienda desactivar el portapapeles compartido para evitar ser víctima de un posible ataque.

Fuente: Reverse RDP Attack: Code Execution on RDP Clients:
https://research.checkpoint.com/reverse-rdp-attack-code-execution-on-rdp-clients/

Share

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.