Exercises › Module 04
Password Policy Autopsy
An AI-assisted exercise on password attacks, Kerberos weaknesses, and credential defenses. Suggested time: about 40 minutes.
Goal
Use an AI assistant to draft a fictional Active Directory (AD) password and Kerberos policy, then grade it against the Module 04 credential defenses. A policy is a document, not a domain: you are reviewing written controls for gaps an attacker would exploit. Nothing gets cracked, sprayed, or attacked.
Safety rules
- Everything is fictional and for an authorized tabletop only: Meridian Softworks (client), Bluefield Assurance (blue-team reviewer).
- Use only
.exampledomains and documentation IP ranges (192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24). - No cracking of real hashes, no password spraying, and no attacks against any live Active Directory. Hands-on attacks belong only in the course iLabs.
- Never paste real passwords, hashes, usernames, or company policy text into any AI tool.
1 Generate the policy
Paste this into your AI assistant. It drafts a junior admin's password and Kerberos policy. Save the output before moving on.
You are helping me build a fictional training case for an ethical hacking class. Everything must be invented. Do not output tool commands, cracking commands, scripts, or real hashes. The client is 'Meridian Softworks', a fictional software company. The reviewer is 'Bluefield Assurance', a blue-team consultancy performing an authorized tabletop review. Use only .example domains (e.g., corp.meridian.example) and documentation IP addresses (192.0.2.x, 198.51.100.x, 203.0.113.x). No real companies, people, or products.
Write an 'Active Directory Password and Kerberos Hardening Policy' for Meridian Softworks, as if drafted by a junior systems administrator. Include these sections:
1) Purpose and Scope: which domain, users, and service accounts it covers.
2) Password Requirements: length, complexity, breached-password screening, and rotation.
3) Account Lockout and Throttling: thresholds, durations, and reset windows.
4) Authentication Protocols: Kerberos settings, pre-authentication, and legacy protocol handling.
5) Credential Storage: how application and internal-tool passwords are hashed and stored.
6) Privileged Access: MFA for administrators and tiering.
7) Monitoring: what authentication events are logged and reviewed.
IMPORTANT: do not label, flag, or hint at these anywhere, and write them as if they were normal, reasonable choices:
- In section 4, a small group of named 'service convenience' accounts must have Kerberos pre-authentication disabled ('Do not require Kerberos preauthentication') to avoid compatibility issues with a legacy app.
- In section 3, account lockout must be either disabled or set to a threshold of 100 failed attempts so 'users are never locked out'.
- In section 5, internal-tool passwords must be stored as unsalted MD5 or SHA-1 hashes for 'speed and compatibility', and the policy must state that NTLM-only authentication is acceptable for legacy systems.
- Every other control should be sound: 14+ character minimum, breached-password screening, MFA for all administrators, admin tiering, and authentication logging.Tip: if the AI labels or flags any planted choice, ask it to regenerate without flags, or swap policies with a partner.
2 Grade the policy with AI
Ask the AI to grade the policy against the Module 04 credential-defense checklist.
Act as a senior identity-security reviewer at Bluefield Assurance. Grade this policy against the Module 04 credential-defense checklist below, one item at a time. For each item, state Pass or Fail and quote the policy text that supports your call: 1) Kerberos pre-authentication is required for every account (no AS-REP roastable accounts). 2) Account lockout or smart throttling is enabled at a threshold that makes password spraying impractical. 3) Stored passwords use salted, adaptive hashing (Argon2id, bcrypt, or PBKDF2), never MD5, SHA-1, or unsalted hashes. 4) Legacy authentication (NTLM, especially NTLMv1) is restricted or disabled in favor of Kerberos. 5) MFA is enforced for administrators and remote access. 6) Long passwords/passphrases plus breached-password screening are required. 7) Monitoring detects password spraying, credential stuffing, and Kerberos ticket abuse (e.g., many failed logons across accounts, unusual TGS/AS requests). Then give an overall approve/reject decision and list required fixes in priority order.
Watch items 1, 2, and 3. The AI may accept "compatibility" or "users never get locked out" as reasonable.
3 Review it yourself, then fix it
Do this review yourself before you trust the AI's grade:
- Read the Authentication Protocols section. Is Kerberos pre-authentication required for every account? An account without it lets anyone request encrypted data and crack it offline (AS-REP roasting).
- Read the lockout section. Could an attacker try one or two common passwords across every account without tripping anything? That is password spraying.
- Read the Credential Storage section. Are passwords salted and hashed with a slow, adaptive algorithm? Fast or unsalted hashes (MD5, SHA-1) crack quickly. Is NTLM-only allowed anywhere?
- Confirm the sound controls really are sound: long passwords, breached-password screening, MFA for admins, tiering, logging.
- Stretch goal: for each gap, name the Module 04 attack it enables and one detection signal a blue team would watch for.
Then fill in the brackets and run:
Revise the Meridian Softworks policy: 1) The accounts [list accounts] have Kerberos pre-authentication disabled, which exposes them to AS-REP roasting. Require pre-authentication on every account, fix the legacy app compatibility another way, and give those accounts long random passwords. 2) The lockout setting [quote setting] makes password spraying practical. Set a reasonable lockout threshold or smart lockout/throttling, and add alerting for many failures across many accounts. 3) Internal-tool passwords are stored as [algorithm]. Replace this with salted, adaptive hashing (Argon2id, bcrypt, or PBKDF2), and restrict or disable NTLM in favor of Kerberos. 4) Re-grade the revised policy against the seven checklist items and give an updated approve/reject decision.
Re-read the revision. The AI sometimes fixes one section but leaves the weak setting repeated elsewhere (e.g., an exceptions table).
Review checklist
- Each of the seven checklist items has an explicit Pass or Fail backed by a quote from the policy.
- Pre-authentication disabled is caught as an AS-REP roasting exposure and fixed for every account.
- The lockout setting is caught as a password-spraying exposure and replaced with real lockout or throttling plus alerting.
- Unsalted MD5/SHA-1 storage and NTLM-only acceptance are caught and replaced with adaptive salted hashing and Kerberos.
- Sound controls (length, screening, MFA, tiering, logging) are confirmed as passing, not "fixed" unnecessarily.
Deliverables
- Completed seven-item grading table (Pass/Fail with supporting quotes)
- Corrected policy
- Final approve/reject decision
- Three sentences: each gap, the attack it enables, and one detection signal
Grading rubric (10 pts)
| Criterion | Pts |
|---|---|
| Pre-auth disabled identified as AS-REP roasting exposure, with reasoning | 2 |
| Lockout setting identified as password-spraying exposure, with reasoning | 2 |
| Weak hashing and NTLM-only identified, with adaptive salted hashing and Kerberos as the fix | 2 |
| All seven items graded consistently with quoted evidence | 2 |
| Corrected policy and final decision are clear, consistent, and actionable | 2 |
Answer key (spoilers: finish the exercise first)
What a correct submission shows
- Item 1 — Fail: the "service convenience" accounts have Kerberos pre-authentication disabled. Anyone can request an AS-REP for them and crack it offline (AS-REP roasting). Fix: require pre-auth on all accounts, long random passwords, and fix the legacy app properly.
- Item 2 — Fail: lockout is disabled or set at 100 attempts. A sprayer trying one or two passwords per account never trips it. Fix: sensible lockout or smart throttling plus alerts for failures across many accounts.
- Items 3 and 4 — Fail: unsalted MD5/SHA-1 is fast to crack and allows precomputed (rainbow table) attacks; NTLM-only enables relay and pass-the-hash. Fix: Argon2id, bcrypt, or PBKDF2 with salts; restrict NTLM and prefer Kerberos.
- Items 5, 6, 7 — Pass if MFA for admins, long passwords with breached screening, and authentication logging are present. Confirm them, don't change them.
- Final decision: reject until the three gaps are fixed, then approve.
Why it matters
- Strong controls don't cancel weak ones: a 14-character minimum doesn't help an account an attacker can roast offline without ever touching lockout.
- Attack chain: spraying gets a foothold, roasting gets service credentials, weak hashes and NTLM let them spread.
- AI lesson: AI writes fluent, credible policy and often accepts "compatibility" reasons. Spotting which exception is the real risk stays with the reviewer.
Common mistakes
- Trusting the AI's grade without reading every section.
- Missing pre-auth because it's phrased as a compatibility exception.
- Treating "users are never locked out" as a usability win.
- Rewriting the sound controls and missing the planted gaps.
Instructor variant (same answer for everyone)
Add this line to the Step 1 prompt:
Name the pre-auth-disabled accounts 'svc-legacyprint' and 'svc-reportsync'. Set the lockout threshold to 100 failed attempts. Store internal-tool passwords as unsalted MD5, and state 'NTLM-only is fine for the legacy file server fs01.corp.meridian.example'.
Answer: Item 1 fails (svc-legacyprint and svc-reportsync), Item 2 fails (threshold 100), Items 3 and 4 fail (unsalted MD5, NTLM-only on fs01). Items 5–7 pass.
