DC01

Máquina de dificultad fácil de la plataforma HackMyVM

Comprobación

Comenzamos con esta máquina creándonos como siempre un directorio con el mismo nombre de la máquina, metiéndonos dentro y con la utilidad “machine” nos creamos nuestros directorios de trabajo

Una vez que los tenemos nos vamos a reconocimiento y le lanzamos unas trazas ICMP a la máquina víctima para comprobar si la podemos ver a nivel de red

Como podemos observar la vemos sin ningún tipo de problema por lo que vamos a empezar con el escaneo de puertos

Puertos

Al igual que en todas las máquinas vamos a comenzar con un escaneo básico de puertos para descubrir qué puertos son los que están activos

Este es el escaneo que solemos hacer y en el que incluimos parámetros de nmap que nos ayudan a ir más rápido y a ser más sigilosos, por ejemplo el parámetro -sS nos permite no efectuar un three-way handshake lo que hace que sea más rápido y sigiloso ya que no deja evidencias de que se haya establecido una conexión, –min-rate 5000 nos permite especificarle a la herramienta que no queremos que se efectúe el escaneo con una velocidad menor a 5000 paquetes por segundo, -n le indica a nmap que no queremos que haga resolución DNS, -Pn para que no nos haga descubrimiento de hosts a través del protocolo ARP y por último -oG para exportar todas las evidencias en un formato que sea fácil de tratar más tarde con regex

Una vez que termina el escaneo, con la herramienta portsClean.sh vamos a poder extraer los datos más relevantes del escaneo

Podemos observar que tenemos muchos puertos, entre ellos el 88 que es el que utiliza Kerberos lo que nos puede indicar que seguramente estemos ante un controlador de dominio

Ahora que ya sabemos qué puertos están activos vamos a proceder a aplicarle un escaneo específico a estos puertos para ver qué servicios y versiones corren

De esta forma con -sC lanzamos los scripts principales que tiene nmap programados en Lua, con -sV determinamos qué servicio y versión están corriendo para esos puertos y por último con -oN exportamos todo el output que nos devuelve nmap en el mismo formato a un archivo llamado “versiones”

Una vez que termina el escaneo con nuestro cat (que es un alias de bat) le vamos a indicar que queremos que nos abra el archivo como si fuese un script en Ruby para que nos lo represente con colores

Lo primero que vamos a enumerar como siempre es ver qué versión de sistema operativo está corriendo detrás de esta máquina

Como podemos ver es un Windows Server 2022 y su dominio “SOUPEDECODE.LOCAL”

Si ahora le hacemos un ping a ese dominio la máquina no va a saber a qué IP apuntar ya que no está definido en el archivo /etc/hosts, pero hay un parámetro de netexec que nos reporta el dominio y la IP de la máquina en un formato perfecto para contemplarlo en este archivo

Una vez que tenemos el dominio contemplado en este archivo ya podemos empezar a ver y enumerar la máquina de hoy

Usuario sin privilegios

Si miramos los recursos compartidos a nivel de red que tiene la máquina, vemos lo siguiente

Vemos que IPC$ está disponible por lo que esto nos va a permitir listar todos los usuarios que están disponibles dentro del dominio

Básicamente cuando este recurso a nivel de red esté con capacidad de lectura, nos va a permitir hacer llamadas RPC como un usuario autenticado

Podemos ver que tenemos aproximadamente 1091 usuarios del dominio así que vamos a validar cuáles son válidos y cuáles no a través de kerbrute

Vemos que de todos los que se han probado 1069 son válidos, así que vamos a meternos a todos los usuarios que son válidos en un archivo y voy a efectuar con netexec un ataque para ver si algún usuario tiene como contraseña su propio nombre de usuario

Vemos que hay un usuario que sí que tiene su nombre igual que su contraseña, para validarlo al 100% vamos a autenticarnos como este usuario con netexec

Ahora que tenemos un usuario válido con su contraseña vamos a ver a qué recursos compartidos por smb puede acceder

Ahora tenemos acceso a muchos más recursos compartidos, pero en especial me llama la atención la carpeta “Users” ya que no es muy común encontrársela

Dentro vemos que hay directorios de varios usuarios

Dentro del usuario ybob317, podemos encontrar la flag de usuario no privilegiado

Ahora que tenemos la primera flag vamos a ver si podemos ganar acceso a la máquina y hacernos administrador del dominio

Privilegios

Después de ver los recursos compartidos a los que ahora teníamos acceso, no he visto nada interesante

Pero claro si tenemos un listado de usuarios y un usuario válido, podemos efectuar un kerberoasting para ver si podemos pillar algún TGS

Podemos ver que tenemos varios TGS de distintos usuarios así que con john vamos a intentar romper alguno de ellos

Vemos que ha encontrado una contraseña pero no sabemos de qué TGS es por lo que voy a hacer una lista con todos los usuarios a los que les hemos sacado el TGS y con netexec vamos a ir probando uno por uno para ver de quién es esta contraseña

Vemos que el usuario “file_svc$” tiene como contraseña “Password123!!” por lo que ahora vamos a ver a qué recursos nuevos a nivel de red podemos acceder con este usuario

Vemos el directorio “backup” el cual me interesa mucho ya que tampoco suele ser muy usual de encontrar, nos vamos a conectar con smbclient para ver qué es lo que tiene dentro

Podemos ver que dentro de los archivos hay unos hashes que parecen hashes net-ntlmv2 por lo que vamos a ir probando usuario por usuario para ver cuál pertenece al grupo Remote Management Users y nos permite conectarnos con un pass-the-hash

Después de probar con varios vemos que el usuario FileServer$ nos ha dejado conectarnos

Ahora que estamos conectados a la máquina vamos a ver de qué manera podemos escalar privilegios para convertirnos en un usuario administrador del dominio

Si hacemos un “whoami /groups” vemos que pertenecemos al grupo BUILTINAdministrators el cual nos va a permitir cambiarle la contraseña al usuario Administrator

Ahora que el usuario tiene la contraseña “password123” con netexec vamos a validar que se ha cambiado

Y podemos ver que efectivamente se la hemos cambiado, ahora nos conectamos con evil-winrm como el usuario Administrador y ya tendríamos la máquina terminada

PD: Si no hubiésemos tenido el permiso de BUILTINAdministrators, podríamos haber escalado privilegios con JuiciPotatoe ya que como usuario teníamos el permiso “SeImpersonatePrivilege” también asignado

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut