1. Fase de Reconocimiento y Enumeración
El objetivo inicial es identificar la superficie de ataque y los servicios expuestos en el objetivo.
1.1. Descubrimiento de Puertos (TCP Connect/SYN)
Para minimizar el ruido y maximizar la velocidad, se realizó un escaneo inicial agresivo sobre todos los puertos posibles.
Comando ejecutado:
Lógica:
-p-: Evalúa el rango completo (1-65535) para no perder servicios en puertos no estándar.
--min-rate 5000: Fuerza el envío de paquetes a alta velocidad.
-sS: Escaneo SYN (semi-abierto), más rápido y discreto que un connect completo.
1.2. Enumeración de Servicios y Versiones
Tras identificar los puertos abiertos, se procedió a un escaneo exhaustivo utilizando scripts de reconocimiento (-sC) y detección de versiones (-sV) para perfilar el sistema operativo y los servicios.
Comando ejecutado:
Resultado Crítico: Se identificó el dominio SOUPEDECODE.LOCAL y el hostname DC01.
Acción Inmediata: Para interactuar con los servicios que requieren resolución de nombres (como Kerberos), es imperativo añadir el objetivo a nuestro archivo de hosts local.
Configuración de resolución de nombres:
2. Acceso Inicial: Enumeración de Usuarios
Al detectar el puerto 445 (SMB) abierto, se evaluaron los permisos de acceso anónimo o de invitado, un vector común de fuga de información en entornos Windows.
2.1. Enumeración de Recursos Compartidos (Null Session)
Comando ejecutado:
Hallazgo: Acceso de lectura (READ) al recurso IPC$. Aunque no contiene archivos, este recurso permite enumerar usuarios mediante consultas RPC.
2.2. RID Cycling (Extracción de Usuarios)
Aprovechando el acceso a IPC$, se utilizó la técnica de RID Cycling. Se consulta secuencialmente al Security Account Manager (SAM) mapeando IDs numéricos a nombres de usuario.
Comando ejecutado:
2.3. Procesamiento y Limpieza de Datos
La salida bruta contiene información innecesaria. Para realizar ataques de diccionario posteriores, se depuró la lista utilizando herramientas de procesamiento de texto de Linux, extrayendo únicamente los nombres de usuario.
Comando ejecutado:
Lógica:
awk '{print $6}': Selecciona la columna que contiene DOMINIO\Usuario.
cut -d '\' -f2: Elimina el prefijo del dominio, dejando solo el nombre del usuario.
2.4. Password Spraying (Fuerza Bruta Dirigida)
Se ejecutó un ataque de "Password Spraying" probando una vulnerabilidad lógica común: usuarios que utilizan su propio nombre como contraseña. Esto evita el bloqueo de cuentas que ocurriría con fuerza bruta tradicional.
Comando ejecutado:
Éxito: El usuario ybob317 utiliza la contraseña ybob317.
2.5. Obtención de la Primera Bandera
Con credenciales válidas, se verificaron los permisos del usuario y se accedió a su directorio personal.
Verificación de permisos:
Acceso y exfiltración:
Dentro de la consola interactiva SMB:
Lectura de la evidencia:
3. Escalada de Privilegios Lateral: Kerberoasting
Con un usuario validado en el dominio, se procedió a atacar el protocolo Kerberos. Cualquier usuario autenticado puede solicitar Tickets de Servicio (TGS) para cuentas que ejecutan servicios (Service Principal Names).
3.1. Solicitud y Extracción de Hashes (TGS-REP)
Comando ejecutado:
Lógica: Se solicitan tickets para servicios registrados. La respuesta incluye el ticket de servicio (TGS) cifrado con la clave secreta de la cuenta de servicio que ejecuta el SPN (file_svc y firewall_svc).
3.2. Cracking Offline (Hashcat)
Se intentó romper el cifrado del ticket TGS (tipo 23) utilizando fuerza bruta basada en diccionarios.
Comando ejecutado:
Resultado: Se recuperó la contraseña en texto plano del usuario file_svc: Password123!!.
4. Movimiento Lateral: Análisis de Información Sensible
Utilizando las nuevas credenciales de file_svc, se enumeraron recursos compartidos previamente inaccesibles. Se detectó acceso al recurso backup.
4.1. Exfiltración de Datos de Respaldo
Acceso al recurso:
Dentro de la consola SMB:
4.2. Análisis y Minería de Datos
El archivo backup_extract.txt contenía un volcado de credenciales NTLM de varias cuentas de máquina (identificadas por el sufijo $). Se procedió a separar los usuarios y los hashes NT para automatizar el ataque de Pass-the-Hash.
Lectura del archivo:
Extracción de Usuarios:
Extracción de Hashes (NT):
5. Movimiento Lateral Final y Compromiso del Dominio
Con las listas de usuarios y hashes preparadas, se validó qué cuentas tenían privilegios administrativos autenticándose mediante NTLM Pass-the-Hash, sin necesidad de conocer la contraseña en texto plano (Técnica: Pass-the-Hash).
5.1. Validación de Credenciales Administrativas
Comando ejecutado:
Resultado Crítico: La cuenta de máquina FileServer$ devolvió el estado (Pwn3d!), indicando acceso administrativo exitoso sobre el Domain Controller.
5.2. Acceso Final y Obtención de Root Flag
Para interactuar con el sistema de archivos como administrador, se utilizó impacket-smbclient inyectando el hash recuperado.
Comando ejecutado:
Nota Técnica: Se antepuso : al hash para indicar un valor vacío para la parte LM del hash, formato requerido por la librería Impacket (LM:NT).
Navegación final hacia el objetivo:
Conclusión Técnica
La cadena de compromiso fue posible debido a múltiples fallos de seguridad encadenados:
Enumeración de Usuarios: Permisos excesivos en IPC$ permitieron listar usuarios válidos.
Contraseñas Débiles: El uso del nombre de usuario como contraseña (ybob317) facilitó el acceso inicial.
Kerberoasting: Cuentas de servicio (file_svc) con contraseñas vulnerables a diccionario.
Información Expuesta: Almacenamiento inseguro de hashes NTLM en recursos compartidos de red (backup).