Unauthenticated User Enumeration
Before any credentials exist, a valid username list enables AS-REP roasting against accounts with pre-authentication disabled, and password spraying once a common password is identified. Multiple protocols expose user lists without authentication — use whichever responds.
Kerbrute — Kerberos username validation
Kerbrute sends an AS-REQ for each candidate username and distinguishes valid accounts from invalid ones by the KDC error code. Accounts with pre-authentication disabled return the AS-REP hash directly without a password.
[+] VALID USERNAME: [email protected] [+] VALID USERNAME: [email protected] [!] [email protected] - Valid user, no pre-auth required
Accounts flagged no pre-auth required are immediately roastable — feed them to impacket-GetNPUsers without waiting for a full user list. See AS-REP Roasting.
RID brute — impacket-lookupsid
SIDs in AD follow a predictable pattern: domain SID plus an incremented RID. lookupsid iterates RIDs and resolves each to an account name. Works via null session or guest account on most default configurations.
500: CORP\Administrator (SidTypeUser) 501: CORP\Guest (SidTypeUser) 1103: CORP\jsmith (SidTypeUser) 1104: CORP\svc-backup (SidTypeUser) 1105: CORP\DC01$ (SidTypeComputer)
nxc — anonymous SMB user listing
nxc's --users flag enumerates domain users via null session or guest authentication. Output is cleaner than rpcclient for scripting.
SMB 10.10.10.10 445 DC01 jsmith Badpwdcount: 0 SMB 10.10.10.10 445 DC01 svc-backup Badpwdcount: 0
rpcclient — null session fallback
rpcclient null session enumeration is less reliable on modern DCs but still works in older or misconfigured environments.
user:[jsmith] rid:[0x44f] user:[svc-backup] rid:[0x450] user:[Administrator] rid:[0x1f4]
With a valid user list, check the password policy in Password Policy and Spray Surface before running any spray. Accounts identified by kerbrute as having pre-authentication disabled go directly to AS-REP Roasting.
References
-
Kerbrute — GitHubgithub.com/ropnop/kerbrute (opens in new tab)
Kerberos username enumeration via AS-REQ probing, no credentials required
-
Impacket — GitHubgithub.com/fortra/impacket (opens in new tab)
lookupsid for RID brute-forcing domain users via null session
-
NetExec (nxc) — GitHubgithub.com/Pennyw0rth/NetExec (opens in new tab)
anonymous SMB user enumeration with --users flag
-
SecLists — GitHubgithub.com/danielmiessler/SecLists (opens in new tab)
Usernames/xato-net wordlist for kerbrute user enumeration
Was this helpful?
Your feedback helps improve this page.