Use Alternate Authentication Material: Pass the Hash

Adversaries may "pass the hash" using stolen password hashes to move laterally within an environment, bypassing normal system access controls. Pass the hash (PtH) is a method of authenticating as a user without having access to the user's cleartext password. This method bypasses standard authentication steps that require a cleartext password, moving directly into the portion of the authentication that uses the password hash.

When performing PtH, valid password hashes for the account being used are captured using a Credential Access technique. Captured hashes are used with PtH to authenticate as that user. Once authenticated, PtH may be used to perform actions on local or remote systems.

Adversaries may also use stolen password hashes to "overpass the hash." Similar to PtH, this involves using a password hash to authenticate as a user but also uses the password hash to create a valid Kerberos ticket. This ticket can then be used to perform Pass the Ticket attacks.[1]

ID: T1550.002
Sub-technique of:  T1550
Platforms: Windows
Defense Bypassed: System Access Controls
Contributors: Blake Strom, Microsoft 365 Defender; Travis Smith, Tripwire
Version: 1.2
Created: 30 January 2020
Last Modified: 28 July 2023

Procedure Examples

ID Name Description
G0006 APT1

The APT1 group is known to have used pass the hash.[2]

G0007 APT28

APT28 has used pass the hash for lateral movement.[3]

G0050 APT32

APT32 has used pass the hash for lateral movement.[4]

S1081 BADHATCH

BADHATCH can perform pass the hash on compromised machines with x64 versions.[5]

G0114 Chimera

Chimera has dumped password hashes for use in pass the hash authentication attacks.[6]

S0154 Cobalt Strike

Cobalt Strike can perform pass the hash.[7]

S0488 CrackMapExec

CrackMapExec can pass the hash to authenticate via SMB.[8]

S0363 Empire

Empire can perform pass the hash attacks.[9]

G1016 FIN13

FIN13 has used the PowerShell utility Invoke-SMBExec to execute the pass the hash method for lateral movement within an compromised environment.[10]

G0093 GALLIUM

GALLIUM used dumped hashes to authenticate to other machines via pass the hash.[11]

S0376 HOPLIGHT

HOPLIGHT has been observed loading several APIs associated with Pass the Hash.[12]

G0094 Kimsuky

Kimsuky has used pass the hash for authentication to remote access software used in C2.[13]

S0002 Mimikatz

Mimikatz's SEKURLSA::Pth module can impersonate a user, with only a password hash, to execute arbitrary commands.[14][15][16]

C0002 Night Dragon

During Night Dragon, threat actors used pass-the-hash tools to obtain authenticated access to sensitive internal desktops and servers.[17]

S0122 Pass-The-Hash Toolkit

Pass-The-Hash Toolkit can perform pass the hash.[2]

S0378 PoshC2

PoshC2 has a number of modules that leverage pass the hash for lateral movement.[18]

G0102 Wizard Spider

Wizard Spider has used the Invoke-SMBExec PowerShell cmdlet to execute the pass-the-hash technique and utilized stolen password hashes to move laterally.[19]

Mitigations

ID Mitigation Description
M1026 Privileged Account Management

Limit credential overlap across systems to prevent the damage of credential compromise and reduce the adversary's ability to perform Lateral Movement between systems.

M1051 Update Software

Apply patch KB2871997 to Windows 7 and higher systems to limit the default access of accounts in the local administrator group.[20]

M1052 User Account Control

Enable pass the hash mitigations to apply UAC restrictions to local accounts on network logon. The associated Registry key is located HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy.

Through GPO: Computer Configuration > [Policies] > Administrative Templates > SCM: Pass the Hash Mitigations: Apply UAC restrictions to local accounts on network logons.[21]

M1018 User Account Management

Do not allow a domain user to be in the local administrator group on multiple systems.

Detection

ID Data Source Data Component Detects
DS0026 Active Directory Active Directory Credential Request

Monitor requests of new ticket granting ticket or service tickets to a Domain Controller. Windows Security events such as 4768 (A Kerberos authentication ticket (TGT) was requested) and 4769 (A Kerberos service ticket was requested) combined with logon session creation information may be indicative of an overpass the hash attempt.

DS0028 Logon Session Logon Session Creation

Monitor newly created logons and credentials used in events and review for discrepancies. Unusual remote logins that correlate with other suspicious activity (such as writing and executing binaries) may indicate malicious activity.

Note: Analytic Event ID is for Windows Security Log (Event ID 4624 - An account was successfully logged on). The successful use of Pass the Hash for lateral movement between workstations would trigger Event ID 4624, with an event level of Information, from the Windows Security log. This event would show an account logon with a LogonType of 3 using NTLM authentication, a logon that is not a domain logon, and the user account not being the ANONYMOUS LOGON account.

Analytic 1

logons = filter log_events where (event_id== "4624" AND target_user_name != "ANONYMOUS LOGON" ANDauthentication_package_name == "NTLM")

DS0002 User Account User Account Authentication

Monitor for user authentication attempts. From a classic Pass-The-Hash perspective, this technique uses a hash through the NTLMv1 / NTLMv2 protocol to authenticate against a compromised endpoint. This technique does not touch Kerberos. Therefore, NTLM LogonType 3 authentications that are not associated to a domain login and are not anonymous logins are suspicious. From an Over-Pass-The-Hash perspective, an adversary wants to exchange the hash for a Kerberos authentication ticket (TGT). One way to do this is by creating a sacrificial logon session with dummy credentials (LogonType 9) and then inject the hash into that session which triggers the Kerberos authentication process.

References

  1. US-CERT. (2019, April 10). MAR-10135536-8 – North Korean Trojan: HOPLIGHT. Retrieved April 19, 2019.
  2. CISA, FBI, CNMF. (2020, October 27). https://us-cert.cisa.gov/ncas/alerts/aa20-301a. Retrieved November 4, 2020.
  3. Metcalf, S. (2015, November 13). Unofficial Guide to Mimikatz & Command Reference. Retrieved December 23, 2015.
  4. The Australian Cyber Security Centre (ACSC), the Canadian Centre for Cyber Security (CCCS), the New Zealand National Cyber Security Centre (NZ NCSC), CERT New Zealand, the UK National Cyber Security Centre (UK NCSC) and the US National Cybersecurity and Communications Integration Center (NCCIC). (2018, October 11). Joint report on publicly available hacking tools. Retrieved March 11, 2019.
  5. Strategic Cyber LLC. (2020, November 5). Cobalt Strike: Advanced Threat Tactics for Penetration Testers. Retrieved April 13, 2021.
  6. McAfee® Foundstone® Professional Services and McAfee Labs™. (2011, February 10). Global Energy Cyberattacks: “Night Dragon”. Retrieved February 19, 2018.
  7. Nettitude. (2018, July 23). Python Server for PoshC2. Retrieved April 23, 2019.
  8. Shilko, J., et al. (2021, October 7). FIN12: The Prolific Ransomware Intrusion Threat Actor That Has Aggressively Pursued Healthcare Targets. Retrieved June 15, 2023.
  9. National Security Agency/Central Security Service Information Assurance Directorate. (2015, August 7). Spotting the Adversary with Windows Event Log Monitoring. Retrieved September 6, 2018.
  10. NSA IAD. (2017, January 24). MS Security Guide. Retrieved December 18, 2017.