HACK THE BOX / RETIRADA

VulnEscape
- Sistema
- Windows
- Dificultad
- Easy
- Resolución
- Completada
- Fecha
- 2 de sept de 2026
Escape de kiosco y recuperación de una credencial almacenada
La resolución completa parte de un único servicio RDP, entra en una sesión de kiosco sin contraseña, convierte una aplicación permitida en vía de exploración local, evade una allowlist basada en el nombre del ejecutable y recupera una credencial administrativa desde Remote Desktop Plus antes de elevar mediante UAC.
1. Preparación y enumeración
La práctica se realizó dentro del laboratorio autorizado de Hack The Box. Antes de comenzar se validaron la VPN y la ruta hacia la instancia; las direcciones dinámicas de aquella sesión se excluyen de esta publicación.
El barrido TCP completo encontró únicamente RDP en el puerto 3389. Esto convirtió al escritorio remoto en la superficie de acceso inicial, no en un servicio auxiliar dentro de una cadena más amplia.
2. Acceso inicial al kiosco
La cuenta de kiosco aceptaba una sesión RDP con contraseña vacía. La conexión se realizó forzando TLS porque el cliente intentaba reutilizar un realm Kerberos de otra práctica; ese error pertenecía al estado local de Kali y no era evidencia de esta máquina.
La sesión ofrecía una interfaz restringida, pero todavía permitía abrir Microsoft Edge desde el menú Inicio. Esa capacidad indirecta fue el punto de partida para escapar de las limitaciones del kiosco.
3. Navegación local desde una aplicación permitida
Edge aceptaba rutas file:// y, por tanto, funcionaba como un explorador local limitado. Esto permitió revisar el sistema de archivos, localizar componentes instalados y alcanzar archivos o ejecutables que la interfaz del kiosco no exponía.
La navegación local no otorgó privilegios por sí sola. Su valor estuvo en ampliar la superficie accesible desde una aplicación que la política consideraba confiable.
4. Bypass de la allowlist
La política de ejecución confiaba en el nombre msedge.exe en lugar de verificar de forma sólida la identidad del binario. Al guardar una copia de otra herramienta con ese nombre permitido fue posible abrir una consola y luego PowerShell bajo el contexto del usuario del kiosco.
El hallazgo demuestra por qué una regla basada solo en el nombre o en una ruta escribible no constituye una allowlist efectiva: el control validaba una etiqueta, no el editor, el hash ni una ubicación protegida.
5. Remote Desktop Plus y el perfil administrativo
La enumeración reveló Remote Desktop Plus y un archivo profiles.xml legible desde la sesión restringida. El perfil administrativo incluía una contraseña protegida que no podía usarse directamente como texto plano.
Al cargar el perfil en la aplicación legítima, Remote Desktop Plus descifró la contraseña y la colocó en un control gráfico enmascarado. El error al intentar conectar no invalidaba la hipótesis: bastaba con que el campo permaneciera cargado en memoria.
6. Recuperación de la credencial
Una herramienta de inspección de controles de contraseña permitió leer el valor situado detrás de las viñetas. Para ejecutarla dentro del kiosco se reutilizó el mismo defecto de la allowlist; SmartScreen y Defender habían bloqueado intentos anteriores y sus alertas se trataron como evidencia defensiva, no como fallos del navegador.
La contraseña recuperada y el valor protegido del XML se omiten. El punto técnico importante es que el secreto no se crackeó: fue observado después de que la propia aplicación lo descifrara.
7. Cambio de usuario y elevación
Con la credencial validada se abrió PowerShell bajo la cuenta administrativa mediante runas. Ese cambio de identidad todavía utilizaba un token sin elevar debido a UAC.
Una segunda acción solicitó una consola elevada con la aprobación de UAC. La verificación del grupo y el acceso al escritorio de Administrator confirmaron el compromiso completo; los valores de las flags no se conservan ni se publican.
8. Cadena de confianza rota
La cadena fue: RDP expuesto, cuenta de kiosco sin contraseña, Edge autorizado, navegación file://, suplantación del nombre permitido, PowerShell, perfil de Remote Desktop Plus, contraseña revelada desde la interfaz, cambio a la cuenta administrativa y elevación mediante UAC.
Ningún paso aislado necesitó una vulnerabilidad de memoria. El compromiso surgió de controles que confiaban entre sí de forma incorrecta y de una credencial privilegiada accesible desde una sesión de bajo privilegio.
9. Causas raíz
- Cuenta RDP accesible con contraseña vacía.
- Superficie de escritorio mayor que la necesaria para un kiosco.
- Navegación local file:// disponible desde una aplicación autorizada.
- Allowlist basada en un nombre de archivo reutilizable.
- Archivos administrativos legibles por el usuario restringido.
- Credencial privilegiada almacenada y descifrada por una aplicación de escritorio.
- Campo enmascarado recuperable desde la memoria de la interfaz.
- Cuenta administrativa capaz de aprobar una elevación UAC dentro de la sesión.
10. Remediaciones
- Eliminar contraseñas vacías y restringir RDP mediante VPN, firewall y Network Level Authentication.
- Aplicar Assigned Access, AppLocker o WDAC con reglas por editor, hash y rutas no escribibles.
- Bloquear file:// y reducir las capacidades indirectas del navegador en modo kiosco.
- Restringir las ACL de los archivos administrativos y separar las cuentas por función y privilegio.
- No almacenar credenciales administrativas reutilizables en perfiles de aplicaciones de escritorio.
- Investigar alertas de Defender o SmartScreen sobre binarios descargados, renombrados o ejecutados desde Downloads.
11. Troubleshooting y aprendizajes
- Un error Kerberos puede proceder del cliente y no del objetivo; hay que separar estado local de evidencia remota.
- Que una aplicación no abra no demuestra que el archivo falte: puede indicar que la política impidió su ejecución.
- Un error de conexión de Remote Desktop Plus no impedía analizar el campo de contraseña ya descifrado.
- Los campos con viñetas ocultan visualmente un secreto, pero no garantizan su protección en memoria.
- runas cambia de usuario; la elevación UAC es un paso diferente.
- Un único puerto expuesto puede contener la ruta completa de compromiso.
12. Resultado
Se completaron la enumeración del servicio RDP, el acceso al kiosco, el escape de la restricción, la recuperación de la credencial administrativa, el cambio de contexto y la elevación final. La publicación conserva el razonamiento y las lecciones defensivas, pero excluye datos efímeros, credenciales y flags.