Forest

Publicado: 20 de Junio de 2025 Autor: José Miguel Romero aKa x3m1Sec Dificultad: ⭐ Easy OS: Windows
📝 Descripción
Forest es una máquina Windows de dificultad fácil que simula un entorno de Active Directory típico de una organización corporativa. La máquina presenta un controlador de dominio Windows Server 2016 con múltiples servicios expuestos, incluyendo LDAP, SMB, Kerberos y WinRM.
El vector de ataque principal implica la explotación de configuraciones incorrectas en Active Directory, específicamente:
Enumeración de usuarios a través de conexiones nulas (null sessions) en SMB y LDAP
AS-REP Roasting contra una cuenta de servicio sin pre-autenticación Kerberos
Escalada de privilegios mediante la explotación de permisos de grupo en Exchange Windows Permissions
DCSync para extraer credenciales del controlador de dominio
Esta máquina es ideal para practicar técnicas de pentesting en entornos de Active Directory, cubriendo desde la enumeración inicial hasta la escalada completa de privilegios a Domain Admin.
🎯 Objetivos de Aprendizaje
Enumeración de servicios en Active Directory
Explotación de null sessions en SMB/LDAP
Técnicas de AS-REP Roasting
Uso de BloodHound para análisis de AD
Escalada de privilegios mediante ACLs
Ataques DCSync contra controladores de dominio
🔭 Reconocimiento
🏓 Ping para verificación en base a TTL
💡 Nota: El TTL cercano a 128 sugiere que probablemente sea una máquina Windows.
🚀 Escaneo de puertos
🔍 Enumeración de servicios
⚠️ Añadimos el siguiente vhost a nuestro fichero /etc/hosts:
📋 Análisis de Servicios Detectados
53
DNS
Servicio de nombres de dominio
88
Kerberos
Autenticación de dominio
135
RPC
Llamadas a procedimientos remotos
139/445
SMB
Compartición de archivos
389/3268
LDAP
Directorio activo
5985
WinRM
Administración remota PowerShell
🌐 Enumeración de Servicios
🗂️ 445 SMB
No tenemos credenciales, así que tratamos de enumerar recursos haciendo uso de una null sesion:
Primero lo intentamos con la herramienta smbclient pero no obtenemos nada
Tratamos de enumerar con el script de enum4linux y comenzamos a obtener información:
👥 Usuarios Descubiertos
🔐 Política de Contraseñas
🏛️ Grupos de Dominio
🔍 Enumeración de usuarios SMB
También podemos tratar de enumerar usuarios usando netexec con los siguiente parámetros:

🌐 Enumeración de usuarios LDAP
Realizamos un proceso de numeración similar al anterior pero esta vez contra LDAP y al observar la salida, vemos un usuario nuevo que no teníamos con la anterior enumeración svc_alfresco

🎯 Explotación Inicial
🔑 AS-REP Roasting
Podemos verificar si existe algún usuario que no tenga habilitada la pre-autenticación de kerberos.
🎯 Resultado clave: Encontramos que la cuenta
svc-alfrescono tiene la pre-autenticación de kerberos activada y logramos obtener su hash AS-REP.
💥 Cracking del Hash
Procedemos a crackear el hash obtenido:

Alternativamente, usando hashcat:

🏆 Credenciales Obtenidas
🔓 Acceso Inicial
Verificamos si podemos autenticarnos con las credenciales obtenidas:

Obtenemos acceso via WinRM:
🚩 User Flag
Capturamos la primera flag en el directorio Desktop del usuario svc-alfresco:
🔝 Escalada de Privilegios
🩸 Análisis con BloodHound
Tras enumerar la máquina en busca de posibles vías de explotación, procedemos a usar BloodHound para un análisis más profundo. Subimos la herramienta SharpHound.exe para extraer la información de dominio:
Una vez cargada la información en BloodHound, seleccionamos la cuenta del usuario svc-alfresco como "Owned Users" y analizamos las relaciones:

🎯 Identificación de Ruta de Ataque
Utilizamos la siguiente consulta Cypher para encontrar el camino más corto hacia los administradores de dominio:

🔓 Explotación de Permisos
El análisis revela que:
svc-alfrescoes miembro de Account OperatorsAccount Operators tiene control total (GenericAll) sobre el grupo Exchange Windows Permissions
Exchange Windows Permissions tiene privilegios WriteDACL sobre el dominio
👤 Creación de Usuario Malicioso
Aprovechamos estos permisos para crear un nuevo usuario y añadirlo a los grupos necesarios:
Verificamos que se ha creado la cuenta y pertenece al grupo requerido:

🛠️ Configuración de Privilegios DCSync
A continuación transferimos la herramienta powerview.ps1 al host :
Ejecutamos el bypass de AMSI y otorgamos privilegios DCSync:
💎 Extracción de Credenciales
Con el usuario john ahora teniendo privilegios DCSync, procedemos a extraer todas las credenciales del dominio:
👑 Acceso como Administrator
Realizamos Pass-the-Hash con las credenciales del administrador:

🏁 Root Flag
Con acceso de administrador, capturamos la flag final:
Last updated