0Pricing
Ethical Hacking Academy · Lesson

Pass-the-Hash

Reuse credentials.

Pass-the-Hash is a free Ethical Hacking Academy lesson on CoddyKit — lesson 3 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Ethical Hacking Academy learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.

What Is Pass-the-Hash?

Pass-the-Hash (PtH) is a technique where an attacker authenticates using a user's NTLM password hash instead of the plaintext password.

Because Windows NTLM authentication uses the hash itself as the secret, you never need to crack it to log in as that user.

The NTLM Hash

Windows stores account passwords as NTLM hashes (an MD4 of the UTF-16 password). During NTLM authentication, the hash, not the password, is what proves identity.

This design flaw means stealing the hash is functionally equivalent to stealing the password for NTLM-based logins.

Where Hashes Live

Hashes can be harvested from several places:

  • The SAM database on local machines.
  • LSASS process memory for logged-on users.
  • The NTDS.dit file on domain controllers.

Each source requires different privileges, but all yield reusable hashes.

Dumping with Mimikatz

Mimikatz is the classic tool for extracting credentials from LSASS memory. The sekurlsa::logonpasswords command reveals NTLM hashes of currently logged-on users.

Local admin (and often SeDebugPrivilege) is required to read LSASS.

mimikatz # sekurlsa::logonpasswords

Dumping with secretsdump

Impacket's secretsdump.py remotely extracts hashes from the SAM and the domain database using valid credentials.

It can also perform a DCSync to pull hashes straight from a domain controller if you have the right replication rights.

secretsdump.py corp.local/admin:Pass@10.0.0.10

Passing the Hash

Once you have a hash, tools let you authenticate with it directly. Impacket's psexec.py accepts a hash with the -hashes flag and gives you a remote shell.

The format is LMHASH:NTHASH; the LM portion is usually blank zeros on modern systems.

psexec.py -hashes :a1b2c3d4... administrator@10.0.0.20

Passing the Hash with Other Tools

Many tools support PtH:

  • CrackMapExec / NetExec: spray hashes across many hosts.
  • evil-winrm: WinRM shell with a hash.
  • wmiexec.py / smbexec.py: alternative execution methods.

Spraying a single local admin hash across a subnet can rapidly expand access.

netexec smb 10.0.0.0/24 -u admin -H a1b2c3d4... 

Lateral Movement

Pass-the-Hash is a core lateral movement technique. By reusing one machine's local admin hash on others (a problem when the same local admin password is shared), attackers hop from host to host.

Each new host may hold the hashes of more privileged users in memory.

Defenses

Mitigations include:

  • LAPS: unique random local admin passwords per machine.
  • Credential Guard: isolates LSASS secrets.
  • Restricting where privileged accounts log in (tiering).
  • Disabling NTLM in favor of Kerberos where possible.

Related Attacks

Pass-the-Hash has cousins:

  • Pass-the-Ticket: reuse a stolen Kerberos ticket.
  • Overpass-the-Hash: use an NTLM hash to request a Kerberos TGT.

These extend credential reuse into the Kerberos world.

NTLM vs Kerberos

Pass-the-Hash specifically abuses NTLM authentication. Environments that enforce Kerberos and disable NTLM shrink the attack surface considerably.

However, NTLM lingers in most networks for compatibility, so PtH remains broadly effective. This is why disabling NTLM is a recommended hardening step.

Quick Check

Recall why PtH does not require cracking.

Recap

You now understand Pass-the-Hash:

  • NTLM authentication accepts the hash as the secret, so no cracking is needed.
  • Hashes are dumped from SAM, LSASS, or NTDS.dit using Mimikatz or secretsdump.
  • Tools like psexec.py, NetExec, and evil-winrm reuse hashes for lateral movement.
  • Defend with LAPS, Credential Guard, and tiering.

Next you will map attack paths with BloodHound.

Frequently asked questions

Is the “Pass-the-Hash” lesson free?

Yes — the full text of “Pass-the-Hash” is free to read here on the web, and the Ethical Hacking Academy course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Ethical Hacking Academy course, upgrade to CoddyKit PRO.

What will I learn in “Pass-the-Hash”?

Reuse credentials. You practise Ethical Hacking Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.

Do I need any experience to start Ethical Hacking Academy?

No prior experience is required. Ethical Hacking Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 4, so you can start here or from the beginning and move at your own pace.

How long does the “Pass-the-Hash” lesson take?

Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.

Can I write and run code in this Ethical Hacking Academy lesson?

Yes. Every Ethical Hacking Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.

All lessons in this course

  1. AD Fundamentals
  2. Kerberoasting
  3. Pass-the-Hash
  4. BloodHound
← Back to Ethical Hacking Academy