Attacktive Directory

Máquina de dificultad media de la plataforma TryHackMe

Comprobación

Lo primero que vamos a hacer antes de ponernos a ver los puertos de la máquina es ver si está activa, para ello vamos a lanzarle un ping a la máquina víctima para ver si tenemos conectividad con ella

Como vemos que tenemos conectividad con la máquina, vamos a proceder a crearnos el directorio de trabajo en el que vamos a operar, para ello podemos hacer uso de una función que tengo definida en la zshrc la cual me crea tres directorios de trabajo

Ahora que tenemos los tres directorios creados vamos a empezar con el escaneo de puertos

Escaneo de puertos

El primer escaneo que suelo mandar para descubrir qué puertos están activos es el siguiente

Esta manera de escanear puertos es perfecta porque nos saltamos algunas comprobaciones que realiza nmap de forma predeterminada

Con el parámetro “-p- –open” englobamos todos los puertos que existen (que en total son 65535), “-sS” aplicamos con este parámetro un escaneo de puertos más sigiloso ya que no se entabla un three way-handshake, “–min-rate 5000” indicamos que no queremos que la herramienta vaya más lenta de 5000 paquetes por segundo, “-n” con este otro parámetro indicamos que no queremos que se efectúe una resolución DNS, “-Pn” para que nmap no nos haga host Discovery a través del protocolo de resolución de direcciones (ARP) y por último “-oG” para exportar todo el resultado que nos dé el escaneo en un archivo llamado “puertos_” el cual va a estar en un formato con el que es fácil trabajar con expresiones regulares

Una vez que termina el escaneo, tenemos lo siguiente

Como este formato no se entiende vamos a utilizar una herramienta de mi GitHub llamada “portsClean” la cual nos va a reportar lo más importante de esta captura

Lo metemos en el archivo “puertos” y ahora vamos a poder ver que se ve todo de forma más clara

Al estar viendo tantos puertos y algunos clave como por ejemplo el 88 que es para kerberos, el 53 para dns, etc

Puedo pensar que estoy ante un DC

Ahora que sé qué puertos están abiertos vamos a realizar un escaneo exhaustivo contra esos puertos que sabemos que están abiertos, para ello vamos a hacerlo con nmap de la siguiente manera

Con el parámetro -sC ejecutamos los scripts principales de nmap (los cuales están programados en Lua), con -sV determinamos el servicio y la versión que corren para estos puertos y por último con -oN exportamos todas las evidencias en el mismo formato que nos lo muestra nmap por la consola en un archivo llamado “versiones”

Una vez que acaba podemos ver su contenido reflejado en el archivo

Vemos que hay muchos puertos abiertos por lo que vamos a seguir los pasos que siempre seguimos para enumerar un dominio

Usuario sin privilegios

Lo primero que vamos a hacer es determinar ante qué nos estamos enfrentando, S.O, dominio, entre otras cosas, para ello vamos a utilizar netexec

Podemos ver ahora mucha más información de la máquina a la que nos estamos enfrentando

Como mi máquina no sabe a quién hacer referencia cuando le especifico el dominio de la máquina víctima, lo que vamos a hacer es con un parámetro de netexec generar un archivo el cual vamos a meter en el /etc/hosts

Ahora mi máquina ya sabe a qué IP apuntar cuando hago referencia a ese dominio, por lo que ya podemos empezar a enumerar la máquina

Esta máquina realmente es muy fácil ya que la propia plataforma de TryHackMe nos comparte un listado de posibles usuarios y contraseñas por lo que vamos a tirar de ellos para ver qué usuarios están disponibles en el sistema, para ello vamos a emplear kerbrute

Podemos ver que el usuario “svc-admin” no requiere de autenticación previa de kerberos lo que significa que podemos solicitar un TGT para este usuario e intentar romperlo para obtener su contraseña

Aunque kerbrute ya nos ha proporcionado el TGT, voy a asegurarme de que es ese efectuando un AS-REP Roast Attack

Ahora que sabemos que 100% es ese vamos a romperlo con john

Ahí podemos ver que tenemos la contraseña en texto claro para el usuario svc-admin, ahora vamos a comprobar si es correcta autenticándonos con netexec en la máquina víctima

Y podemos ver que nos autentica sin problemas, por lo que esta contraseña es para este usuario

Usuario Administrador

Ahora que tenemos este usuario que sabemos que es válido con su contraseña, vamos a intentar obtener credenciales elevadas

Lo primero que vamos a ver es qué recursos compartidos a nivel de red tiene la máquina

Vemos que hay muchos directorios que son los comunes, menos uno que es “backup” que ese no suele ser común, por lo que vamos a ver qué es lo que tiene dentro

Podemos ver que hay un fichero llamado “backup_credentials.txt” por lo que vamos a conectarnos de manera interactiva con smbclient y vamos a traernos ese fichero a nuestra máquina

Dentro de este archivo está la contraseña en base64 por lo que al decodearla he podido ver lo siguiente

Vamos a comprobar de nuevo si esta contraseña es válida para este usuario, autenticándonos con netexec

Y vemos que efectivamente la contraseña para este usuario es la correcta

Podemos ver que la página de TryHackMe nos comparte una captura haciendo referencia a que el usuario “backup” tiene los siguientes permisos

Lo que nos va a permitir realizar un ataque DC Sync, este ataque nos va a permitir simular que somos un controlador de dominio y vamos a solicitar información para cuentas de usuario, hashes de contraseñas del controlador de dominio

Para poder efectuar este ataque vamos a utilizar netexec solicitando que el Domain Controller nos envíe todo el contenido de su base de datos ntds en la que se encuentran los hashes de todos los usuarios

Ahora que tenemos todos los hashes de todos los usuarios (incluido el Administrador de dominio) vamos a realizar un pass-the-hash con el hash nt del administrador para poder ganar acceso a la máquina

Y ya solamente queda mostrar las flags de usuarios sin privilegios y del administrador del dominio

Este es el final de la máquina, la verdad es que no es para nada de dificultad media, más bien diría que es de dificultad fácil tirando a muy fácil, pero bueno igual alguien que no se ha enfrentado nunca a un domain Controller puede tener dificultades

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut