All modules

Module 06 · Operator

Credentials, Passwords & Initial Access

Offline cracking methodology, intelligent wordlists and rules, careful online authentication testing, and how credential weaknesses become initial access — taught for authorized labs and scoped engagements only.

2 lessons
12 deep sections
~125 min guided
Progress…

Authorized testing only. Practice on systems you own, isolated labs, or targets with written permission. Unauthorized access is illegal.

Outcomes

  • Identify hash types and crack with a disciplined attack-mode progression
  • Perform careful online auth testing with lockout and MFA awareness
  • Explain password policy findings with metrics rather than anecdotes
  • Build and apply wordlists and rules intelligently for organizational context
  • Frame credential issues as business risk with constructive remediation

Lessons

Lesson 1
65 min6 sections

Offline cracking methodology

Hash identification through attack modes, rules, masks, and professional reporting of crackability. Learn to treat offline cracking as policy evidence and risk demonstration — not a contest to recover every personal password from bulk dumps. Practice only on hashes you are authorized to attack (labs, CTFs, client-approved samples).

Learning objectives

  • Identify hash formats with haiti/name-that-hash and select correct hashcat/john modes
  • Progress through dictionary, rule-based, hybrid, and mask attacks deliberately
  • Generate target-relevant wordlists (CeWL, org themes) instead of only rockyou defaults
  • Report crack rates and policy weakness without careless handling of personal data
  • Choose GPU hashcat vs john based on format support, hardware, and engagement constraints

Deep teach-through

Authorization, ethics, and the goal of offline cracking

Offline cracking is dual-use. In professional work you crack hashes obtained under authorization to demonstrate weak password policy, reuse, or storage failures. You do not attack personal dumps from breaches for fun, and you do not retain client credentials longer than the engagement policy allows. Store loot in controlled folders; redact samples in reports.

The usual professional goal is evidence: 'X of Y service accounts used passwords recoverable within Z minutes using public wordlists and common rules' or 'the single domain admin hash recovered was Password1!, proving policy enforcement gaps.' Cracking everything in a 50,000-user dump is rarely necessary and often unethical if it expands personal data exposure without need.

Authorized lab only for skill building: known hash sets from training platforms, passwords you set yourself in lab AD/web apps, and CTF challenges. Never crack hashes from systems outside scope.

Identification before speed

Wrong mode wastes hours. Use haiti, name-that-hash, or hashcat's example hashes documentation to classify MD5, NTLM, bcrypt, sha512crypt, Kerberos etypes, and application-specific formats. Note salts and iterations: bcrypt and modern KDF slow cracking dramatically — that is itself a positive control when reporting.

Normalize input files: one hash per line, correct username:hash formats for john when needed, remove junk prefixes carefully. A single corrupted line can abort or skew a run. Keep an uncracked and cracked potfile discipline so results are reproducible.

Record mode numbers and tool versions in notes. Retests and teammates must be able to replay the methodology, not guess which -m flag you used.

Attack mode progression

Start cheap: straight dictionary with rockyou or a quality base list. Next apply rules (best64, OneRule) that model human mutations (years, !, capitalization). Hybrid attacks append/prepend digits. Masks (-a 3) encode policy guesses: ?u?l?l?l?l?l?d?d?s for 'common corporate shapes' when you know length and complexity requirements.

Do not jump to huge keyspaces first. Measure: if 30% crack under dictionary+rules in minutes on NTLM, you already have a policy finding. Spend remaining budget on high-value accounts (admins, service accounts) with targeted masks and custom lists.

hashcat shines with GPUs and large parallelizable hashes (NTLM, MD5). john is convenient for odd formats, automated format detection, and CPU-friendly workflows. Both benefit from --show / potfile hygiene. Pause and resume long runs rather than losing state.

Wordlists with context

Generic lists miss org-specific passwords: product names, city+year, merger names, sports teams. CeWL spiders an authorized site to build a custom base list; combine with rules. Employee naming patterns and season/event themes appear constantly in real assessments — still only against authorized hash sets.

SecLists and specialized lists (for Wi-Fi, defaults, common service accounts) expand coverage. Curate a personal library with dates and sources. Quality beats quantity when GPU time is limited.

For service accounts, also try username-as-password, season+year, and well-known defaults from vendor docs — again only in lab or authorized internal tests. Document default credential findings separately because the fix is configuration, not user training.

Interpreting results for reports

Metrics matter: percentage cracked within time budget, distribution of password length/complexity among cracked set (aggregated), examples of patterns (not full username:password tables in the main report). Provide a few redacted examples to prove weakness, keep full cracked material in secure evidence storage.

Connect to controls: lack of banned-password lists, missing MFA on high-value accounts, reversible storage or weak hash algorithms, shared local admin passwords (ties to AD modules). Recommend fine-grained password policies, MFA, secret vaults for services, and monitoring for password-spray patterns.

If hashes were unsalted MD5 from an application, the finding is primarily storage/crypto failure; cracking ease is the impact proof. If bcrypt hashes still cracked heavily, the finding is policy and user behavior under a good algorithm.

Operational discipline and pitfalls

Never upload client hashes to public cracking websites. Use your own hardware or approved private infrastructure. Be aware of cloud GPU legal/policy constraints and data residency.

Watch thermal and power limits on lab rigs; long runs fail silently when devices throttle. Verify cracked passwords against a sample authentication in lab only when needed — production verification of cracked user passwords can lock accounts or violate RoE if not planned.

Close the loop: after the engagement, destroy or return hash material per contract. Personal practice pots should not contain real client secrets.

Key concepts

Hash mode
Tool-specific identifier for algorithm and format (e.g., hashcat -m 1000 for NTLM).
Rule-based attack
Programmatic mutations applied to dictionary words to model human password habits.
Mask attack
Keyspace search defined by character sets and positions when policy shape is known or guessed.
Potfile
Local store of cracked hash:plaintext pairs used to avoid re-cracking and to export results.
Crackability evidence
Measured demonstration that stored secrets fall to realistic attacker resources within a time budget.

Common mistakes

  • Cracking with the wrong hash mode for hours without verifying format
  • Uploading client hashes to third-party online crackers
  • Dumping full username:password lists into client PDFs
  • Using only rockyou when org-themed lists would crack high-value accounts faster
  • Treating bcrypt slowness as tool failure instead of expected KDF cost

Defender view

  • Strong KDFs, salted hashes, banned-password lists, and MFA shrink the offline attack window.
  • Service account vaulting and unique local admin secrets stop reuse chains after a single crack.
  • Monitoring for bulk hash theft (LSASS, NTDS, app DB) matters as much as password complexity lectures.

Operator checklist

  • Hashes are authorized and stored in the engagement-controlled location
  • Format identification is recorded with mode numbers before long runs
  • Attack plan progresses dictionary → rules → targeted masks
  • Report metrics use aggregates and redacted examples only
  • Potfiles and plaintext are handled per data-retention rules

Example commands & patterns

# Authorized lab hashes only
haiti '$2y$10$examplehash...'
hashcat -m 1000 -a 0 ntlm.txt /usr/share/wordlists/rockyou.txt
hashcat -m 1000 -a 0 ntlm.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule
hashcat -m 1000 -a 3 ntlm.txt '?u?l?l?l?l?l?d?d'
cewl https://lab.example.local -d 2 -m 5 -w wordlists/lab-cewl.txt
john --format=nt --wordlist=rockyou.txt hashes.txt

Practice drills

  1. Crack a lab NTLM or MD5 hash set with rockyou, then again with a rule file; compare rates
  2. Generate a custom list with CeWL against a site you own or a local lab app
  3. Identify five mystery hashes with haiti/name-that-hash and select correct modes
  4. Write a sample finding: crack rate, time budget, two redacted examples, remediation
  5. Run a mask attack that models a known lab password policy and document the keyspace math

Next: Apply the same caution online: authentication testing where lockouts and MFA change the rules.

Lesson 2
60 min6 sections

Online authentication testing

Hydra, Medusa, Kerbrute, lockout awareness, MFA gaps, default credentials, and when not to spray. Online attacks touch live systems and can cause business impact — treat them as high-risk techniques under strict authorization and rate control.

Learning objectives

  • Design safe password spray and brute strategies that respect lockout and RoE
  • Test protocol authentication (SSH, HTTP, RDP, SMB) only in labs or explicit scope
  • Document MFA gaps and password-only external exposure constructively
  • Identify default and reused credentials without causing account mass lockouts
  • Know hard stop conditions when authentication testing threatens availability or users

Deep teach-through

Online vs offline: different risk profiles

Offline cracking hammers your GPU; online testing hammers the client's authentication services and user accounts. Failed logons trigger SOC alerts, lockouts, and helpdesk load. Professionals get explicit permission for spraying, agree on user lists, timing windows, and max attempts, and often coordinate with blue teams so alerts are expected.

Prefer offline analysis when you already have hashes. Prefer single-account careful tests or default-credential checks on appliances before enterprise-wide sprays. When sprays are allowed, one password across many users (spray) is usually safer than many passwords against one user (classic brute), but both can lock environments if misconfigured.

Authorized lab only for learning hydra/medusa/kerbrute patterns. Production-like labs (GOAD, HTB Academy AD, your own domain) teach timing and noise without harming real users.

Lockouts, MFA, and stop conditions

Before any spray: learn lockout thresholds (if discoverable from policy docs, client interview, or careful lab enumeration — not by locking real users). Set tool attempt rates below thresholds with margin. Stagger attempts, avoid overnight unmanaged runs against production, and maintain a kill switch.

MFA changes the game. Password-only success against a portal that also needs a second factor may still be a finding if legacy protocols (IMAP, older VPN, basic auth APIs) bypass MFA. Map which pathways enforce MFA and which do not. Phishing-resistant MFA (FIDO2) differs from SMS OTP in attacker cost; report accurately.

Stop conditions: unexpected mass lockouts, degraded auth service, RoE window end, or discovery that accounts are shared break-glass identities. Document stops in the timeline; continuing for ego is unprofessional.

Protocol-aware testing technique

HTTP forms need correct failure signatures, CSRF tokens, and success detection strings — hydra/http-post modules fail silently when configured wrong. Always validate with a known good and known bad lab account first. SSH, FTP, RDP (crowbar/hydra), and SMB each have different rate and lockout behaviors.

Kerberos pre-auth spraying (kerbrute) is popular on internal Windows estates: it can be quieter or different in logs than SMB logons, but it is still noisy and still requires authorization. Understand that failed pre-auth is a detectable event on modern monitoring.

Default credentials on printers, SAN UIs, dev tools, and monitoring stacks remain high-value, low-attempt wins. Check vendor defaults only against in-scope appliances. One success with admin/admin is often more impactful than a 10,000-attempt spray that finds nothing.

Password reuse and initial access narratives

Initial access in real networks often looks like: phished password reused on VPN; spray hits a service account exempt from MFA; default community string or web UI on a jump host; credential from a public Git leak still valid. Your online tests should be designed to simulate plausible attacker paths allowed by RoE — not every theoretical brute force.

When you gain a session, immediately note MFA presence, password age signals if available, and whether the account is privileged. That context drives whether the finding is 'external password spray possible' versus 'Domain Admin with Password123 on RDP open to the internet' — wildly different risk stories.

Coordinate with Module 7: a cracked or sprayed domain user may enable Kerberoasting or BloodHound collection. Do not race into post-ex without updating notes and confirming scope for internal pivoting.

Tooling with control

hydra and medusa are flexible; wrong flags cause false negatives. Prefer small controlled lists. Use -t low thread counts for auth services. Log successes and failures to files for evidence. For web, Burp Intruder with collab-free careful throttling is sometimes safer than fire-and-forget CLI tools.

kerbrute userenum vs passwordspray are different operations with different ethics: username enumeration may be allowed when password guessing is not, or vice versa. Read the RoE. In labs, practice both and compare Windows event noise.

Never point these tools at random internet hosts, shared cloud tenants outside scope, or third-party IdPs that are not explicitly authorized — even if a client 'uses' them. Scope is the control.

Reporting authentication findings

Good findings specify protocol, endpoint, whether MFA applied, attempt rate used, and proof of success with a test account or redacted session evidence. Remediation: enforce MFA on all internet-facing auth, block legacy auth, implement smart lockout and CAPTCHA where appropriate, ban common passwords, monitor spray patterns, close unused external listeners.

Avoid recommending 'longer passwords only' when the real issue is password-only RDP on 0.0.0.0/0. Align remediation with architecture. Include detection opportunities for purple-team minded clients: which events should fire when sprays occur.

If testing was limited by lockout risk, say so in limitations — honesty about coverage builds trust.

Key concepts

Password spray
Trying a small set of common passwords across many accounts to avoid per-account lockout thresholds.
Lockout threshold
Policy-defined failed-attempt count that disables or throttles an account or source.
MFA bypass surface
Authentication pathway that accepts factors weaker than the primary portal (legacy protocols, older APIs, alternate apps).
Default credentials
Unchanged vendor or documentation usernames and passwords still accepted by a service.
RoE high-risk technique
Any auth test that can deny service to users or generate high alert volume without careful control.

Common mistakes

  • Spraying production without confirming lockout policy and change windows
  • High thread counts against AD or SSO until the helpdesk melts
  • Ignoring MFA-exempt legacy protocols in the finding narrative
  • False negatives from misconfigured success/failure detection strings
  • Testing third-party SaaS tenants not covered by the client's authorization

Defender view

  • Phishing-resistant MFA, legacy auth blocks, and spray detection stop most commodity initial access.
  • Unique passwords plus vaulting for service accounts limit blast radius after a single success.
  • Coordinated purple-team sprays improve detection better than surprise lockouts during a pentest.

Operator checklist

  • Written approval covers online guessing/spraying for these protocols and users
  • Lockout assumptions and max attempts are written down before the first attempt
  • Rate limits and thread counts are conservative; a stop plan exists
  • Success is validated and evidenced without abusing the account
  • Findings distinguish MFA gaps, defaults, and policy weakness clearly

Example commands & patterns

# Labs only — tiny lists, low parallelism
hydra -L users.txt -p 'Summer2024!' ssh://192.168.56.20 -t 2 -f
hydra -l admin -P /usr/share/seclists/Passwords/Common-Credentials/10k-most-common.txt 192.168.56.20 http-post-form '/login:user=^USER^&pass=^PASS^:F=Invalid' -t 2
kerbrute passwordspray -d lab.local --dc 192.168.56.10 users.txt 'Welcome1'
# Always verify module syntax with known good/bad accounts first

Practice drills

  1. Brute a lab SSH with a tiny wordlist you control; capture success evidence and rate settings
  2. Write a one-page policy note: when spraying is out of scope and what must be agreed first
  3. In a lab web login, configure hydra or Burp Intruder with correct failure detection
  4. Map MFA vs non-MFA pathways on a lab or demo identity stack; document gaps
  5. Draft a client finding for password-only external RDP with architecture-level remediation

Next: Carry valid credentials into internal AD methodology in Module 7 — still only on authorized ranges.