Escape – Writeup (Vulnlab)

Search for a command to run...

No comments yet. Be the first to comment.
Flameshot is one of those tools I end up using all the time. It is simple, lightweight, and just works for quick screenshots. You can capture, annotate, blur sensitive data, and copy straight to the c

After 6 or 7 years on Hack The Box, competing, failing, learning, and coming back again, I finally reached the Top 7 worldwide. The number itself is not what matters most, but everything behind it: ti

Anonymous SMB and NTLM theft enable Kerberoasting; forged silver tickets and MSSQL/token impersonation achieve SYSTEM.

In the Cybersecurity world, paranoia is part of daily life. We usually talk about flaws in terms of exploits, payloads, or bypasses. However, not all failures are due to bugs. Sometimes, it's the product design itself, which can be even more alarming...

INFO: Ports and Services 53/tcp open domain 88/tcp open kerberos-sec 135/tcp open msrpc 139/tcp open netbios-ssn 389/tcp open ldap 445/tcp open microsoft-ds 464/tcp open kpasswd5 593/tcp open http-rpc-epmap 636/tcp open ldapssl 32...

Para mi sorpresa, solo encontramos el puerto 3389/TCP disponible, lo cual es inusual ya que generalmente se espera encontrar más puertos abiertos en un sistema. Este puerto es conocido por ser utilizado para conexiones de escritorio remoto, lo que nos da una pista sobre cómo podríamos interactuar con el sistema.
PORT STATE SERVICE REASON
3389/tcp open ms-wbt-server syn-ack ttl 127
Dado que el puerto 3389 está abierto, decidimos aprovecharlo para establecer una conexión de escritorio remoto. En mi caso, utilizo xfreerdp en Arch Linux para conectarme.
xfreerdp /v: < IP > -sec-nla -tls-seclevel:0
Ni bien logueamos nos encontramos con la siguiente pantalla:

Al ingresar con el usuario KioskUser0, nos damos cuenta de que el entorno está bastante restringido. Todo parece estar bloqueado, lo que refuerza la idea de que estamos en un entorno de quiosco. Sin embargo, el nombre de la máquina, 'escape', sugiere que hay una forma de sortear estas restricciones.

Dentro de la carpeta _admin/, encontramos archivos de configuración del Remote Desktop Plus. Estos archivos parecen contener configuraciones para el perfil de administrador, pero la contraseña está encriptada, lo que representa un desafío adicional.


ProfileName -> admin
Username -> 127.0.0.1
Password -> JWqkl6IDfQxXXmiHIKIP8ca0G9XxnWQZgvtPgON2vWc=
Explorando el escritorio del usuario KioskUser0, encontramos la flag de usuario. Este es un paso importante en nuestro progreso, ya que confirma que estamos en el camino correcto.

Después de varios intentos de interactuar con el sistema, nos damos cuenta de que la única aplicación que podemos ejecutar libremente es Microsoft Edge. Esto nos lleva a la idea de que podríamos renombrar el intérprete de comandos, como “cmd.exe” o “powershell.exe”, para que se ejecute como si fuera el navegador.
En la barra de direcciones me dirijo directamente al path donde esta el cmd.exe:
C:\Windows\system32\cmd.exe

Lo renombramos a “msdege”. Al hacerlo, el icono cambia al del navegador, lo que nos permite ejecutarlo. Con el intérprete de comandos abierto, podemos intentar descifrar la contraseña que encontramos anteriormente.

Utilizamos BulletPassView para revelar la contraseña sin necesidad de un método de crackeo complejo. Importamos el archivo profiles.xml desde la ubicación C:_admin al Remote Desktop Plus y luego ejecutamos BulletPassView para obtener la contraseña.
C:\Program Files (x86)\Remote Desktop Plus
Y luego importamos el archivo profile.xml.



A su vez ejecutamos el BulletPassView y nuestro password sera revelado:

Con la contraseña revelada, podemos ejecutar el comando runas desde PowerShell para abrir una nueva sesión como administrador.

Verificando con whoami /all vemos todo los privilegios que tenemos, los cuales somos administradores localmente. Abrimos una nueva powershell.exe esta vez con privilegios elevados:
start-process powershell.exe -Verb runas
Finalmente podemos obtener la root flag.

Pwn3d!
shkz.