EscapeTwo

Publicado: 2 de Julio de 2025 Autor: Josรฉ Miguel Romero aKa x3m1Sec Dificultad: โญ Easy OS: Windows

๐Ÿ“ Descripciรณn

Sequel es una mรกquina Windows de dificultad fรกcil que simula un entorno de Active Directory corporativo. La explotaciรณn comienza con credenciales vรกlidas proporcionadas para el usuario rose, las cuales nos permiten enumerar recursos SMB y descubrir archivos Excel con credenciales adicionales de usuarios y servicios.

La fase inicial involucra la enumeraciรณn de servicios como MSSQL, donde obtenemos acceso con la cuenta privilegiada sa y aprovechamos xp_cmdshell para ejecutar comandos del sistema. A travรฉs de tรฉcnicas de Password Spraying, logramos movimiento lateral hacia la cuenta ryan, que posee privilegios especiales sobre el objeto ca_svc en Active Directory.

La escalada de privilegios se realiza mediante ADCS (Active Directory Certificate Services) abuse, especรญficamente explotando la vulnerabilidad ESC4 que permite modificar plantillas de certificados. Utilizando tรฉcnicas de Shadow Credentials y manipulaciรณn de ACLs, transformamos una plantilla vulnerable en ESC1 para finalmente obtener un certificado vรกlido de administrador de dominio.

๐ŸŽฏ Puntos Clave

  • โœ… Enumeraciรณn inicial con credenciales vรกlidas de rose

  • โœ… Descubrimiento de credenciales en archivos Excel del recurso SMB

  • โœ… Explotaciรณn de MSSQL con cuenta privilegiada sa

  • โœ… Ejecuciรณn de comandos mediante xp_cmdshell

  • โœ… Movimiento lateral via Password Spraying hacia ryan

  • โœ… Abuso de privilegios WriteOwner sobre ca_svc

  • โœ… Shadow Credentials attack para tomar control de cuentas

  • โœ… ADCS ESC4 โ†’ ESC1 para escalada de privilegios

  • โœ… Obtenciรณn de certificado de administrador de dominio

๐Ÿ” Informaciรณn de la Mรกquina

Campo
Valor

IP

10.10.11.51

Dominio

sequel.htb

DC

DC01.sequel.htb

OS

Windows Server 2019

Servicios Principales

DNS, Kerberos, LDAP, SMB, MSSQL, WinRM


๐Ÿ”ญ 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

La mรกquina expone varios servicios tรญpicos de un Domain Controller:

  • Puerto 53 (DNS): Resoluciรณn de nombres del dominio

  • Puerto 88 (Kerberos): Autenticaciรณn del dominio

  • Puerto 389/636 (LDAP): Directorio activo

  • Puerto 445 (SMB): Recursos compartidos

  • Puerto 1433 (MSSQL): Base de datos SQL Server

  • Puerto 5985 (WinRM): Administraciรณn remota

๐Ÿ”‘ Credenciales Iniciales

Como es comรบn en las pruebas de penetraciรณn de Windows de la vida real, iniciarรก el cuadro de Administrador con las credenciales de la siguiente cuenta:

  • Nombre de usuario: rose

  • Contraseรฑa: KxEPkKe6R8su


๐ŸŒ Enumeraciรณn de Servicios

๐Ÿ  53 DNS

๐Ÿง  Desglose de flags y argumentos:

Flag/Argumento
Significado

-r

Desactiva la resoluciรณn inversa (no intenta hacer reverse lookup de IPs).

--dnsserver 10.10.11.51

Usa el servidor DNS 10.10.11.51 en lugar del predeterminado del sistema.

--enum

Activa enumeraciรณn completa, que incluye subdominios, transferencias de zona, etc.

-p 0

Desactiva la enumeraciรณn de hosts con nombres similares (similar domain guessing).

-s 0

Desactiva el escaneo de servicios (no intenta verificar si hay servicios activos en los subdominios).

-f /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-110000.txt

Utiliza este diccionario de subdominios para hacer fuerza bruta de nombres.

sequel.htb

Es el dominio objetivo para la enumeraciรณn.

En esta ocasiรณn no encontramos nada relevante.

๐Ÿ—‚๏ธ 445 SMB - Enumeraciรณn Inicial

Ya que disponemos de credenciales, comenzamos tratando de enumerar recursos compartidos, usuarios etc:

๐ŸŽซ Kerberoasting

Con las credenciales de rose, verificamos si hay alguna cuenta kerberoastable de la cual podamos obtener su TGS

Obtenemos dos TGS, uno para la cuenta del usuario sql_svc y otro para ca_svc. Intentamos crackear offline con hashcat pero las contraseรฑas no estรกn en rockyou.txt.

๐Ÿ—ƒ๏ธ 1433 MSSQL

Confirmamos que las credenciales del usuario rose son vรกlidas con este servicio usando impacket-mssqlclient con la flag -windows-auth para usar NTLM (Windows Authentication)

๐Ÿ“Š Enumeraciรณn de la versiรณn de base de datos

โŒ Intento fallido de habilitar xp_cmd_shell

El usuario rose no tiene permisos para habilitar xp_cmdshell:

๐ŸŽฃ Captura de hash NTLM

Iniciamos un servidor SMB e intentamos capturar credenciales mediante una peticiรณn a un recurso inexistente:

Desde la consola MSSQL ejecutamos:

Obtenemos el hash NTLMv2 del usuario sql_svc, pero no es crackeable con rockyou.

๐Ÿ“ Explorando recursos compartidos

Montamos los recursos SMB para explorar su contenido:

Encontramos archivos Excel con credenciales:

๐Ÿ”“ Extracciรณn de credenciales de archivos Excel

En Excel 2007, los archivos XLSX sustituyeron a los archivos .XLS como archivo estรกndar para guardar hojas de cรกlculo en Excel. A diferencia de los archivos XLS, que almacenan los datos de la hoja de cรกlculo en un รบnico archivo binario, los archivos XLSX se guardan en formato Open XML, que almacena los datos como archivos y carpetas independientes en un paquete Zip comprimido. El archivo incluye el fichero [Content_Types].xml, que describe la hoja de cรกlculo, y un fichero .XML para cada hoja de cรกlculo.

Esto significa que podemos extraer manualmente el archivo en nuestro host para ver el contenido de cada una de las hojas.

Como alternativa es posible usar algunas herramienta en lรญnea como:- https://jumpshare.com/viewer/xlsx

Analizando el contenido de los archivos XLSX (formato Open XML comprimido), obtenemos las siguientes credenciales:

First Name
Last Name
Email
Username
Password

Angela

Martin

angela@sequel.htb

angela

0fwz7Q4mSpurIt99

Oscar

Martinez

oscar@sequel.htb

oscar

86LxLBMgEWaKUnBG

Kevin

Malone

kevin@sequel.htb

kevin

Md9Wlq1E5bZnVDVo

NULL

NULL

sa@sequel.htb

sa

MSSQLP@ssw0rd!


๐Ÿ’€ Explotaciรณn Inicial

๐Ÿ” Acceso con cuenta sa en MSSQL

Probamos las credenciales de la cuenta sa (System Administrator) en MSSQL:

โœ… ร‰xito! La cuenta sa tiene privilegios elevados.

โš™๏ธ Habilitando xp_cmdshell

Con privilegios de sa podemos habilitar la ejecuciรณn de comandos:

๐Ÿš€ Obteniendo Reverse Shell

Generamos un payload de PowerShell codificado en base64 para obtener una reverse shell:

Obtenemos acceso como usuario sql_svc:


๐Ÿ”„ Movimiento Lateral

๐Ÿ” Enumeraciรณn del sistema

Usamos bloodhound-python como collector para obtener los objetos de dominio y cargarlos en bloodhound para analizar posibles vรญas potenciales para el movimiento lateral o escalada:

Durante la enumeraciรณn del sistema encontramos credenciales adicionales en el archivo C:\SQL2019\ExpressAdv_ENU\sql-Configuration.INI:

Credencial encontrada: sql_svc:WqSZAF6CysDQbGb3

๐Ÿ’ฅ Password Spraying

Verificamos si algรบn usuario reutiliza esta contraseรฑa usando netexec:

ยกBingo! El usuario ryan estรก reutilizando la contraseรฑa de sql_svc.

๐ŸŽฏ Acceso como ryan

Obtenemos la primera flag (user.txt) y confirmamos que ryan pertenece al grupo Certificate Service DCOM Access.


๐Ÿ” Escalada de Privilegios

๐Ÿฉธ Anรกlisis con BloodHound

Usando bloodhound-python recopilamos informaciรณn del dominio:

Hallazgo crรญtico: El usuario ryan tiene privilegio WriteOwner sobre el objeto CA_SVC.

Tomando el control de ca_svc

๐ŸŽฏ Contexto Inicial

Como usuario ryan, tenemos el privilegio WriteOwner sobre CA_SVC, lo que nos convierte en propietarios de la cuenta y nos permite escalar privilegios.

๐Ÿ“‹ Introducciรณn al privilegio WriteOwner

El privilegio WriteOwner nos permite diferentes tipos de ataques dependiendo del objeto:

Tipo de Objeto
Capacidades

Usuario

Asignar todos los derechos a otra cuenta para realizar: restablecimiento de contraseรฑa, Kerberoasting dirigido, o Shadow Credentials

Grupo

Aรฑadir/eliminar miembros despuรฉs de conceder privilegios totales al nuevo propietario

GPO

Modificar la polรญtica de grupo

๐Ÿ’ก Preferencia: Utilizaremos Kerberoasting dirigido o Shadow Credentials para evitar cambiar contraseรฑas de usuarios innecesariamente.


๐ŸŽฏ OPCIร“N 1: Targeted Kerberoasting

Prerrequisitos

Para realizar un ataque de kerberoasting necesitamos uno de estos privilegios:

  • โœ… WriteOwner (tenemos este)

  • GenericAll

  • GenericWrite

  • WriteProperty

  • Validated-SPN

  • WriteProperties

๐Ÿ”ง Proceso del Ataque

Funcionamiento:

  1. Adjuntar/generar un SPN para la cuenta de usuario

  2. Solicitar TGS para la cuenta de usuario

  3. Crackear el TGS (encriptado con el hash NTLM)

๐Ÿ’ป Ejecuciรณn

Herramienta utilizada: targetedKerberoast

๐Ÿ” Intento de Cracking

โŒ Resultado: La contraseรฑa no se encuentra en rockyou.txt


๐ŸŽฏ OPCIร“N 2: Shadow Credentials + ADCS Abuse

๐Ÿ“– Conceptos Clave

  • Shadow Credentials: Modificaciรณn del atributo msDS-KeyCredentialLink para agregar claves controladas por el atacante

  • ADCS Abuse: Explotaciรณn de plantillas de certificados mal configuradas para emitir certificados vรกlidos

๐Ÿš€ Proceso de escalada

Paso 1: Modificar el propietario

Conceder a Ryan control total sobre ca_svc

Paso 2: Garantizar privilegios totales

Asegurar que ryan tenga FullControl sobre ca_svc

Paso 3: Generar Shadow Credentials

Crear nuevas credenciales para autenticaciรณn basada en certificados

Paso 4: Buscar plantillas vulnerables


๐Ÿ”ฅ ESC4 (vรญa ESC1)

๐Ÿ“Š Anรกlisis de Vulnerabilidad

ESC4 ocurre cuando existen controles de acceso dรฉbiles en una plantilla de certificado.

๐Ÿ” Hallazgo: El grupo de editores de certificados tiene control total sobre la plantilla DunderMifflinAuthentication.

๐Ÿ› ๏ธ Explotaciรณn

Versiรณn Certipy 4.8.2

Paso 5: Modificar plantilla

Resultado esperado:

Paso 6: Solicitar certificado de administrador

Resultado esperado:

Versiรณn Certipy 5.0.2

Paso 5: Modificar plantilla (nueva sintaxis)

Paso 6: Solicitar certificado


๐Ÿ† Fase Final: Obtenciรณn de Acceso Administrativo

Paso 7: Recuperar hash NTLM del administrador

Paso 8: Pass-the-Hash para acceso completo

โœ… Verificaciรณn de Acceso


Last updated