Classify the artifact and its identity context
Needs: Artifact provenance and format; possible local/domain/application identity and compatible protocol
Client commands / example output
# Baseline
SOURCE -> MATERIAL/FORMAT -> LOCAL/DOMAIN/APPLICATION IDENTITY
-> POSSIBLE USE -> SERVICE/PROTOCOL -> AUTHENTICATION
-> AUTHORIZATION -> NEW ACCESS -> RE-ENUMERATION
Preserve the source and identity context, then identify the format
Record source, claimed identity, format evidence, possible uses, tested service, result and resulting rights together.
Material Recognition Compatible use Cleartext password Text tied to an identity/source Normal protocol/application login SSH private key OpenSSH/PEM private-key block SSH public-key authentication; recover passphrase offline if protected Linux password record USER:$id$salt$digest:...Offline recovery with complete record/format Application/file verifier Tool-specific $...$or documented digestOffline recovery with matching mode/parser NT hash Usually 32 hex from SAM/LSASS/NTDS context Offline recovery; PtH where NTLM and the client support it Net-NTLMv2 response USER::DOMAIN:challenge:proof:blobOffline recovery or live relay under specific conditions; not PtH material DCC2/MSCache v2 Username-dependent cached-domain verifier Offline recovery; not ordinary PtH material Kerberos ticket .kirbi, ccache or in-memory cacheTicket-specific access subject to realm, SPN, validity, clock and route Kerberos roast material $krb5asrep$...or$krb5tgs$...Offline recovery with matching enctype/mode Session/API token Cookie, bearer/JWT or application token Issuing application and authorization context only
Do not feed unknown strings into random modes. Preserve the source and identity context, then identify the format:
# Preserve the source and identity context, then identify the format
hashid HASH_OR_FILE
john --list=formats | grep -i KEYWORD
hashcat -hh | grep -i KEYWORD
hashcat --example-hashes | less
Output Type Immediate compatible possibilities Not valid as Cleartext password Reusable secret Password authentication, key derivation, DPAPI where applicable Proof of authorization NT hash NTLM key Offline crack; PTH where NTLM/service policy allows; Kerberos RC4 transition where supported Net-NTLM response or DCC2 AES128/AES256 key Kerberos long-term key Request Kerberos material using compatible tooling Direct NTLM authentication .kirbi/ ccacheKerberos ticket container Use while valid for its client/realm/SPN scope Password/hash DCC2/MSCache v2 Offline verifier Offline cracking PTH DPAPI key/blob Protected-data material Decrypt only with matching context/keys General logon credential Machine-account key Computer identity Map the computer account's rights and Kerberos/NTLM paths Human/domain-admin identity
Net-NTLMv2 relay is a live authentication path, not hash reuse
A captured Net-NTLMv2 response is suitable for offline recovery, but cannot be passed as an NT hash. A relay path instead needs a fresh inbound NTLM authentication event, a different reachable target that accepts the relayed protocol, target protections that permit the exchange, and useful authorization for the relayed identity.
For an explicitly selected SMB destination, inspect signing behavior before considering it a relay receiver:
# Net-NTLMv2 relay is a live authentication path, not hash reuse
nmap -p 445 --script smb2-security-mode TARGET
Every newly usable identity returns to Block 10 before movement
Interpret: signing required closes the ordinary SMB-to-SMB relay receiver path. Signing enabled but not required is only one prerequisite; it does not supply an authentication source, bypass EPA/channel binding on another protocol, or grant the relayed identity useful rights.
The current OSCP+ exam guide prohibits poisoning/spoofing. Do not use Responder-style name-resolution poisoning in the exam workflow. A direct, already-existing authentication source still needs a separately reviewed, scope-compliant relay procedure and an action-specific verification; the incomplete procedure is tracked as
RW09.
Every newly usable identity returns to Block 10 before movement:
# Every newly usable identity returns to Block 10 before movement
VERIFY MATERIAL -> AUTHENTICATE SAFELY -> CONFIRM IDENTITY
-> MAP GROUPS/RIGHTS/SHARES/HOSTS/ROUTES
Verify → Identify artifact type, source, account/domain and compatible next operation; record unknowns instead of guessing.
If it fails → A 32-character hexadecimal value is not enough to identify its algorithm. Use application/source evidence and converters. More detail ↓
Explanation & examples
Classify the artifact and its identity context
- USE WHEN
- A secret-like value, key file, stored hash, challenge response or ticket
- STARTING ACCESS
- A credential artifact with a recorded source and possible account context
- RESULT
- A typed credential record with a justified use or recovery path
Recognize the clue
Return to the file, database row, capture or session that produced the artifact; inspect structure and account labels before choosing a tool mode.
file FILE
head -c 160 FILE
Possible structures:
-----BEGIN OPENSSH PRIVATE KEY-----
USER::DOMAIN:CHALLENGE:RESPONSE:BLOB
USER:RID:LM_HASH:NT_HASH:::Means: Headers and producing context distinguish a private key, challenge response and stored NT verifier.
Confirm: Record the exact source, user/domain and complete format; identify compatible recovery/authentication operations.
- After validation
- Source and format agree on the type: route it to the matching recovery/use method.
- Ruled out in this context
- The value is an application identifier rather than an authentication artifact: reject the credential hypothesis.
- Still inconclusive
- A bare hexadecimal string without provenance does not identify its algorithm; investigate the producing application.
Troubleshooting: A 32-character hexadecimal value is not enough to identify its algorithm. Use application/source evidence and converters.
Record source, claimed identity, format evidence, possible uses, tested service, result and resulting rights together.
| Material | Recognition | Compatible use |
|---|---|---|
| Cleartext password | Text tied to an identity/source | Normal protocol/application login |
| SSH private key | OpenSSH/PEM private-key block | SSH public-key authentication; recover passphrase offline if protected |
| Linux password record | USER:$id$salt$digest:... | Offline recovery with complete record/format |
| Application/file verifier | Tool-specific $...$ or documented digest | Offline recovery with matching mode/parser |
| NT hash | Usually 32 hex from SAM/LSASS/NTDS context | Offline recovery; PtH where NTLM and the client support it |
| Net-NTLMv2 response | USER::DOMAIN:challenge:proof:blob | Offline recovery or live relay under specific conditions; not PtH material |
| DCC2/MSCache v2 | Username-dependent cached-domain verifier | Offline recovery; not ordinary PtH material |
| Kerberos ticket | .kirbi, ccache or in-memory cache | Ticket-specific access subject to realm, SPN, validity, clock and route |
| Kerberos roast material | $krb5asrep$... or $krb5tgs$... | Offline recovery with matching enctype/mode |
| Session/API token | Cookie, bearer/JWT or application token | Issuing application and authorization context only |
Do not feed unknown strings into random modes. Preserve the source and identity context, then identify the format:
Failure cue:
No hashes loaded, token/line-length errors or zero parsed hashes normally indicate wrong format, mode, damaged input or unsupported version—not a strong password.
| Output | Type | Immediate compatible possibilities | Not valid as |
|---|---|---|---|
| Cleartext password | Reusable secret | Password authentication, key derivation, DPAPI where applicable | Proof of authorization |
| NT hash | NTLM key | Offline crack; PTH where NTLM/service policy allows; Kerberos RC4 transition where supported | Net-NTLM response or DCC2 |
| AES128/AES256 key | Kerberos long-term key | Request Kerberos material using compatible tooling | Direct NTLM authentication |
.kirbi / ccache | Kerberos ticket container | Use while valid for its client/realm/SPN scope | Password/hash |
| DCC2/MSCache v2 | Offline verifier | Offline cracking | PTH |
| DPAPI key/blob | Protected-data material | Decrypt only with matching context/keys | General logon credential |
| Machine-account key | Computer identity | Map the computer account's rights and Kerberos/NTLM paths | Human/domain-admin identity |
Net-NTLMv2 relay is a live authentication path, not hash reuse
A captured Net-NTLMv2 response is suitable for offline recovery, but cannot be passed as an NT hash. A relay path instead needs a fresh inbound NTLM authentication event, a different reachable target that accepts the relayed protocol, target protections that permit the exchange, and useful authorization for the relayed identity.
For an explicitly selected SMB destination, inspect signing behavior before considering it a relay receiver:
Interpret: signing required closes the ordinary SMB-to-SMB relay receiver path. Signing enabled but not required is only one prerequisite; it does not supply an authentication source, bypass EPA/channel binding on another protocol, or grant the relayed identity useful rights.
The current OSCP+ exam guide prohibits poisoning/spoofing. Do not use Responder-style name-resolution poisoning in the exam workflow. A direct, already-existing authentication source still needs a separately reviewed, scope-compliant relay procedure and an action-specific verification; the incomplete procedure is tracked as RW09.
Every newly usable identity returns to Block 10 before movement:
Why it works
An NT hash, Net-NTLMv2 response and DCC2 verifier are not interchangeable. Source and format constrain cracking mode, reuse protocol and expected rights.
Worked example · hypothetical
Observation: a recovered value is labelled a hash. Test: inspect its format and producing source. Illustrative output: it is a challenge-response capture rather than an NT verifier. Interpretation: choose offline recovery; reject direct Pass-the-Hash.
New identity, privilege, host or route? Re-enumerate → All topic tasks →