Muy buenas a todos!

Esta semana vamos a continuar atacando a través de nuestro protocolo favorito, el escritorio remoto de Microsoft. Utilizando algunos trucos y herramientas nos aprovecharemos de los sysadmin más incautos para conseguir nuestro objetivo.

Hace ya prácticamente un mes, os hablé de algunas de las vulnerabilidades del protocolo RDP utilizando técnicas de man-in-the-middle y abusando de la posibilidad de hacer un downgrade en la seguridad de la conexión. Os dejo aquí el enlace por si os lo perdisteis: Atacando RDP – Parte I (MitM con Seth)

En esta ocasión, el ataque será totalmente distinto. Pero antes de comenzar, primero es necesario entender qué estamos buscando y porqué tenemos tanto interés en explotarlo.

Desde la salida de Windows Vista en el año 2006, Microsoft incorporó en la pantalla de inicio de sesión una serie de features para facilitar el acceso a los equipos a personas con discapacidades físicas y visuales.

Como podéis ver en la imagen, ese pequeño icono de la izquierda será el responsable de concedernos acceso a la lupa, al narrador o al teclado en pantalla. Además, si pulsamos la tecla shift cinco veces también tendremos acceso a las teclas especiales de Microsoft, las Sticky Keys.

Llegados a este punto, os contaré porqué estamos hablando de todo esto. Cuando pulsamos sobre el icono de accesibilidad o invocamos a las teclas especiales, el sistema operativo siempre utilizará la cuenta NT Authority\System, cuenta que dispone de los máximos privilegios posibles en el sistema.

Esto se debe principalmente a que el usuario todavía no ha introducido sus credenciales, por lo que el sistema utilizará su propia cuenta para ejecutar los binarios correspondientes: utilman.exe y sethc.exe

Ahora bien, que pasaría si alguien remplazase cualquiera de estos dos ejecutables por un símbolo del sistema? Pues que obtendría una shell (oculta a simple vista) con la que podría reiniciar cualquier contraseña, crear o eliminar usuarios, deshabilitar el firewall o incluso destruir el sistema!

Debido a esto, muchos usuarios y administradores de sistemas han recurrido a este pequeño truco durante años para recuperar el acceso a sus equipos, sin saber que ellos mismos estaban creado un backdoor en el sistema. Lo mejor de todo, es que la mayoría de ellos nunca ha devuelto estos ficheros a su ubicación original, por lo que esta funcionalidad sigue estando activa y esperando nuestra llegada 😇

Para facilitarnos aún más las cosas, Zach Grace creó una herramienta llamada Sticky Keys Hunter, con el propósito de automatizar la tarea de buscar estas puertas traseras a través de la conexión a escritorio remoto. Ya que no es necesario introducir las credenciales de usuario, esta utilidad intentará ejecutar la consola de cinco formas diferentes y nos guardará un screenshot con el resultado.

Ahora que ya sabemos cómo funciona, vamos a ponerlo en práctica. Lo primero será descargar la herramienta desde el siguiente enlace: https://github.com/ztgrace/sticky_keys_hunter

A continuación instalaremos las dependencias necesarias y ejecutaremos la utilidad para visualizar los comandos disponibles.

Como podéis ver en la imagen, la sintaxis del programa es muy sencilla. Tan solo tenemos que introducir la IP de la víctima y este nos mostrará los resultados en pantalla. También existe la posibilidad de pasarle una lista en formato .txt con el siguiente comando: for i in $(cat list.txt); do ./stickyKeysHunter.sh «${i}»; done

Por último solo tendremos que echar un vistazo a las capturas para saber que servidores son vulnerables. A partir de aquí, podremos crear un usuario para entrar al sistema o secuestrar una de las sesiones activas, el límite es nuestra imaginación! 😋

Espero que os haya gustado y os resulte útil en vuestras próximas auditorías.

Nos vemos en la próxima!