Ledger

Información General

  • Nombre de la máquina: Ledger (actuando como DC: LABYRINTH.thm.local)

  • Dirección IP: 10.10.120.231

  • Sistema Operativo: Windows 10 / Server 2019 Build 17763 x64

  • Objetivo: Obtener acceso como nt authority\system en el controlador de dominio.


Parte 1: Reconocimiento

Teoría

El reconocimiento inicial es crucial para identificar los servicios activos, puertos abiertos y posibles versiones de software en el objetivo. Esta información forma la base para las fases posteriores de enumeración y explotación, permitiendo enfocar los esfuerzos en los vectores de ataque más probables.

Herramientas y Comandos

Se utilizaron dos escaneos nmap para identificar puertos abiertos y servicios en la IP 10.10.120.231.1. Escaneo rápido de todos los puertos TCP: Este comando realiza un escaneo SYN (-sS) en todos los puertos TCP (-p-), deshabilita la resolución de nombres (-n) y la prueba de ping (-Pn), y establece una tasa mínima de envío de paquetes para acelerar el proceso (-min-rate 5000). La salida se guarda en formato "grepable" (-oG ports).

nmap -sS -p- -Pn -n -min-rate 5000 -oG ports 10.10.120.231
Host: 10.10.120.231 ()	Status: Up
Ports:
    53/open/tcp//domain///
    80/open/tcp//http///
    88/open/tcp//kerberos-sec///
    135/open/tcp//msrpc///
    139/open/tcp//netbios-ssn///
    389/open/tcp//ldap///
    443/open/tcp//https///
    445/open/tcp//microsoft-ds///
    464/open/tcp//kpasswd5///
    593/open/tcp//http-rpc-epmap///
    636/open/tcp//ldapssl///
    3268/open/tcp//globalcatLDAP///
    3269/open/tcp//globalcatLDAPssl///
    3389/open/tcp//ms-wbt-server///
    7680/open/tcp//pando-pub///
    9389/open/tcp//adws///
    47001/open/tcp//winrm///
    49664/open/tcp/////
    49665/open/tcp/////
    49666/open/tcp/////
    49667/open/tcp/////
    49669/open/tcp/////
    49670/open/tcp/////
    49671/open/tcp/////
    49675/open/tcp/////
    49678/open/tcp/////
    49683/open/tcp/////
    49707/open/tcp/////
    49710/open/tcp/////
    49715/open/tcp/////
Ignored State: closed (65505)

2. Escaneo de servicios y versiones en los puertos comunes detectados: Este comando realiza un escaneo de versiones (-sV) y ejecuta scripts por defecto (-sC) en una lista específica de puertos TCP que se encontraron abiertos o son comunes.

Parte 2: Enumeración

Teoría

Con base en los servicios expuestos, se procederá a enumerar el Active Directory. Específicamente, se buscarán usuarios, recursos compartidos SMB y políticas de grupo, aprovechando el posible acceso anónimo o con credenciales débiles a LDAP y SMB. El objetivo es identificar cuentas de usuario, especialmente aquellas con contraseñas débiles o reutilizadas, o con descripciones que puedan revelar información sensible.

Herramientas y técnicas

Se utilizó nxc (NetExec) para enumerar SMB y LDAP contra la IP 10.10.120.231 y el dominio thm.local. Enumeración SMB con credenciales de invitado:

Enumeración de usuarios LDAP con credenciales de invitado:

Se identificó al usuario IVY_WILLIS con una contraseña (CHANGEME2023!) en el campo de descripción. Posteriormente, las acciones se realizan con SUSANNA_MCKNIGHT y la misma contraseña.

Verificación de acceso SMB con las credenciales encontradas:

El usuario SUSANNA_MCKNIGHT tiene acceso de lectura a NETLOGON y SYSVOL.


Parte 3: Explotación

Teoría

Las credenciales SUSANNA_MCKNIGHT:CHANGEME2023! obtenidas durante la enumeración permiten el acceso al sistema si el usuario tiene permisos de inicio de sesión remoto. El servicio RDP (puerto 3389) está abierto en 10.10.120.231, lo que lo convierte en un vector viable para el acceso inicial.

Herramienta o script utilizado

nxc para verificar el acceso RDP y xfreerdp3 para la conexión RDP.

Comando y resultado

Verificación de acceso RDP con nxc:

El resultado indica que las credenciales son válidas para RDP. Conexión RDP:

Se establece una sesión RDP con el usuario SUSANNA_MCKNIGHT. Se obtuvo la flag de usuario desde el escritorio del usuario.


Parte 4: Escalada de Privilegios

Teoría

La escalada de privilegios se intentará mediante la explotación de configuraciones incorrectas en Active Directory Certificate Services (AD CS). Específicamente, se buscarán plantillas de certificado vulnerables a ataques como ESC1, donde un usuario con bajos privilegios puede solicitar un certificado en nombre de un usuario con privilegios elevados (como un administrador) si la plantilla permite al solicitante especificar un Subject Alternative Name (SAN) y la plantilla es válida para autenticación de cliente. El objetivo es el DC labyrinth.thm.local en 10.10.120.231.

Método aplicado

Se utilizó certipy-ad para encontrar plantillas vulnerables, solicitar un certificado en nombre del Administrador y luego usar ese certificado para obtener un Ticket Granting Ticket (TGT) y el hash NT del Administrador. Finalmente, se usó smbexec.py para ejecutar comandos como nt authority\system.

Comando y resultado

Búsqueda de plantillas de certificado vulnerables:

La plantilla ServerAuth es vulnerable a ESC1.

Solicitud de certificado para Administrator@thm.local usando la plantilla ServerAuth:

Se generó el archivo administrator.pfx. Autenticación con el certificado y obtención del hash NT del Administrador:

Se obtuvo el TGT para el administrador y su hash NT: aad3b435b51404eeaad3b435b51404ee:07d677a6cf40925beb80ad6428752322. Ejecución de comandos como SYSTEM usando Pass-the-Hash con smbexec.py:

Se obtuvo una shell como nt authority\system en el host 10.10.120.231.


Parte 5: Post-Explotación (opcional)

Con acceso nt authority\system, se tiene control total sobre la máquina 10.10.120.231 (LABYRINTH.thm.local). Las acciones de post-explotación podrían incluir:

  • Dump de credenciales de SAM/LSASS.

  • Movimiento lateral a otras máquinas del dominio.

  • Establecimiento de persistencia.

  • Búsqueda y exfiltración de información sensible.

  • Obtención de la flag de root/administrador.


Parte 6: Flags o evidencias obtenidas

  • Root Flag:


Recomendaciones de Seguridad

  1. Corregir Vulnerabilidad AD CS (ESC1):

    • Revisar las plantillas de certificado, especialmente ServerAuth.

    • Deshabilitar la opción "Enrollee supplies subject" (o CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT) si no es estrictamente necesario.

    • Si se requiere, implementar controles de aprobación para la emisión de certificados o restringir qué EKU (Extended Key Usages) se permiten.

    • Limitar los permisos de inscripción en plantillas sensibles.

  2. Gestión de Contraseñas:

    • Implementar políticas de contraseñas robustas y auditorías regulares.

    • No almacenar contraseñas o pistas en campos de descripción de Active Directory u otros lugares inseguros.

    • Asegurar que los usuarios cambien las contraseñas predeterminadas o temporales inmediatamente.

  3. Principio de Menor Privilegio:

    • Asegurar que los usuarios solo tengan los permisos necesarios para realizar sus funciones.

    • Limitar los derechos de inicio de sesión RDP a los usuarios que lo requieran explícitamente.

  4. Monitoreo y Detección:

    • Monitorear la creación y el uso de certificados, especialmente aquellos solicitados con SANs alternativos.

    • Auditar logs de autenticación para detectar intentos de acceso anómalos o uso de credenciales comprometidas.

  5. Seguridad SMB/LDAP:

    • Deshabilitar el acceso anónimo o de invitado a SMB y LDAP si no es esencial para las operaciones.

    • Requerir firma SMB para mitigar ataques de retransmisión.

Última actualización