AD Password Cracking Strategies
Generic wordlists rarely crack domain passwords. Complexity policies push users toward predictable patterns: company name with year, seasonal words, or department names with numbers. Extracting company metadata from LDAP before running hashcat substantially improves hit rates. A fast username-as-password check often finds misconfigurations before any cracking is needed.
Username as password
Before cracking anything, check whether any accounts use their own username as their password. The --no-bruteforce flag in nxc pairs each username with itself in a single pass. No cumulative lockout risk if the domain lockout policy allows at least one attempt per account, which is the default threshold.
SMB 10.10.10.10 445 DC01 [+] CORP\helpdesk:helpdesk SMB 10.10.10.10 445 DC01 [+] CORP\scanner:
Extract domain context from LDAP
Description fields on user and computer accounts are worth reading before building a wordlist. Admins store passwords in service account descriptions more often than expected. Department names, company names, and city fields feed the mutation step that follows.
sAMAccountName: svc-backup description: Default password: Backup2023! - change after setup department: IT Infrastructure company: CorpName
Hashcat modes for AD hash types
Each AD hash type requires a different hashcat mode:
-m 1000— NTLM — from secretsdump, DCSync, or SAM dump-m 5600— NetNTLMv2 — from Responder or ntlmrelayx capture-m 13100— Kerberoast TGS — from impacket-GetUserSPNs-m 18200— AS-REP — from impacket-GetNPUsers
fc525c9683e8fe067095ba2ddc971889:Password2024! b4b9b02e6f09a9bd760f388b67351e2b:CorpName2023!
Rules and masks
Rules mutate wordlist entries at runtime. best64.rule covers standard capitalisation, number appending, and character substitutions. When wordlist and rule passes fail, mask attacks directly target the password policy structure. Most AD complexity policies require at least one uppercase letter, one digit, and one special character.
NTLM hashes from secretsdump do not need cracking for pass-the-hash — use them directly. Only crack when plaintext is needed: Kerberos authentication, service logins that reject NTLM, or credential reuse across systems outside the NTLM context.
References
-
Mode reference and attack type documentation
-
NetExec (nxc) — GitHubgithub.com/Pennyw0rth/NetExec (opens in new tab)
--no-bruteforce flag and get-desc-users LDAP module
-
BloodyAD — GitHubgithub.com/CravateRouge/bloodyAD (opens in new tab)
LDAP attribute extraction for description, department, and company fields
Was this helpful?
Your feedback helps improve this page.