Lateral movement is the phase where a threat actor pivots from their initial foothold to other systems in the environment — hunting for credentials, data, and ultimately privileged access. Every second it goes undetected, the attacker's blast radius grows.
This SOP covers the full response cycle: Background on what you're dealing with, Identification using KQL and SPL queries, Containment to stop the spread, Eradication to clean the environment, and Escalation criteria. Work through each section in order — do not skip to containment without completing identification first.
Applicable alert sources: Microsoft Defender for Endpoint lateral movement alerts, Microsoft Sentinel UEBA anomalies, Identity Protection risky sign-in alerts, and custom detection rules on Event ID 4624/4648/4776.
◈ Table of Contents
Background
CONTEXTLateral movement is an attacker technique used to progressively access additional systems within a network after gaining an initial foothold. The attacker reuses stolen credentials, exploits trust relationships between hosts, or abuses legitimate remote administration tools to reach higher-value targets — file servers, domain controllers, backup systems, or databases holding sensitive data.
Common objectives: credential harvesting, data exfiltration staging, ransomware deployment prep, persistence on critical systems, and reaching a Domain Controller to perform DCSync or Golden Ticket attacks.
| Technique | MITRE ATT&CK | What Happens | Key Indicator |
|---|---|---|---|
| Pass-the-Hash (PTH) | T1550.002 | Attacker dumps NTLM hash from LSASS on compromised host, authenticates to another host without knowing the plaintext password | NTLM auth, LogonType 3, source IP = workstation (not DC) |
| Pass-the-Ticket (PTT) | T1550.003 | Kerberos TGT or service ticket stolen from memory (mimikatz sekurlsa::tickets), injected into current session to impersonate user | Ticket used from different host than it was issued for; Event 4769 from unusual source |
| PsExec / SMB exec | T1021.002 | Attacker copies executable to Admin$, creates and runs a service on the target host via SMB | psexesvc.exe on target, Event 7045 (service install), SMB 445 from attacker host |
| WMI Remote Exec | T1021.006 | wmic.exe or PowerShell Invoke-WmiMethod used to execute commands on remote host without writing a file via SMB | WmiPrvSE.exe spawning child processes, wmiprvse.exe network connections |
| RDP / WinRM | T1021.001 / T1021.006 | Attacker uses stolen credentials for RDP (port 3389) or WinRM (5985/5986) remote sessions | LogonType 10 (RDP), new RDP connections from non-IT hosts, Event 4624 Type 10 |
| Token Impersonation | T1134 | Attacker steals access token from higher-privileged process on same host using SeImpersonatePrivilege | Process creating thread with different user token; Potato exploits (JuicyPotato, RoguePotato) |
Log Sources
| Source | Key Tables / Indexes | What to Look For |
|---|---|---|
| Defender for Endpoint | DeviceLogonEvents, DeviceNetworkEvents, DeviceProcessEvents | LogonType 3/10, SMB connections, process lineage from remote exec |
| Microsoft Sentinel / Entra ID | IdentityLogonEvents, SigninLogs, AuditLogs | Kerberos ticket anomalies, NTLM auth from unexpected hosts, admin sign-ins |
| Windows Security Log | SecurityEvent (Event IDs: 4624, 4625, 4648, 4776, 4769, 7045) | Network logon events, explicit credential use, service installation |
| Splunk | index=windows WinEventLog:Security, index=sysmon | Same event IDs via Splunk TA for Windows |
Severity Scale
| Severity | Condition |
|---|---|
| LOW | Single isolated logon anomaly, standard user account, no admin access, first-time connection to internal host — likely FP |
| MEDIUM | Logon anomaly on 2–3 hosts, standard user but elevated local rights, PTH pattern without success after failure |
| HIGH | Confirmed lateral movement to 3+ hosts, privileged account used, PsExec/WMI evidence, admin share access (Admin$, C$) |
| CRITICAL | Domain Admin credentials used laterally, DC reached, DCSync detected, Kerberos TGT abuse, krbtgt hash exposure suspected |
Identification
INVESTIGATEAnswer these before spending time investigating. A NO to all five = probable FP. Any YES = continue investigation.
- 1Is the account a privileged account (Domain Admin, local admin, service account with broad rights)? If YES — escalate to L2 immediately while continuing investigation.
- 2Did the source host have a malware or EDR alert in the last 24 hours? Pull the alert timeline in Defender:
security.microsoft.com → Incidents & Alerts → filter by device - 3Is the logon type 3 (Network) or 10 (Remote Interactive / RDP)? LogonType 2 = interactive console = not lateral movement. LogonType 3/10 between two workstations = suspicious.
- 4Is this a first-time connection between the source and destination host in the last 30 days? Baseline the pair — first-time connections are high-signal.
- 5Did the logon result in process execution on the destination host immediately after? (WMI child process, service install Event 7045, cmd.exe / powershell.exe spawned by WmiPrvSE)
Map every network logon out of the source host. This tells you how many systems the attacker touched and with which accounts. Replace DEVICE_NAME with the source device from the alert.
- List of destination hosts (RemoteDeviceName / WorkstationName)
- List of accounts used — are any privileged?
- First seen timestamp — when did lateral movement start?
- Protocol: NTLM = PTH risk; Kerberos = PTT risk
PTH generates NTLM authentication from workstations (not the DC). Normal NTLM auth routes through DCs. When you see NTLM auth where the target accepts it directly from another workstation, that's PTH.
NTLM auth between two workstations (bypassing DC) is almost always PTH or a serious misconfiguration. Treat as TP until proven otherwise. Check the source host for LSASS dump artifacts immediately (see SOP-03 Malware Triage for LSASS detection).
PTT reuses a stolen Kerberos TGT. The telltale sign: a service ticket (Event 4769) being requested for a service on a host that the legitimate user never accessed, or a TGS request from an unexpected source IP.
Encryption type 0x17 (RC4) in Event 4769 is a Kerberoasting or downgrade indicator. Encryption type 0x12 (AES256) is normal. Flag any 0x17 tickets on high-value service accounts (SQL, IIS, admin services).
After lateral logon, attackers execute code on the target. Look for the classic remote execution patterns on the destination host(s) you identified in I2.
Determine the full blast radius before containing. This query maps the account across the entire fleet in the last 24 hours. Run this before isolating — you need the full list.
- Full list of affected hosts with timestamps
- Earliest activity timestamp (patient zero / lateral start)
- Any DC hostname in the list (escalate immediately if yes)
- Any backup server, file server, or data store in the list
Use this to make the call before escalating. Document your verdict and evidence in the incident ticket.
| Signal | Verdict Weight | Notes |
|---|---|---|
| NTLM auth workstation-to-workstation | TP — HIGH | Legitimate auth routes via DC. This bypasses DC = PTH. |
| Same account on 3+ hosts within 30 min | TP — HIGH | Users don't authenticate to 3+ machines in 30 min naturally. |
| WmiPrvSE.exe / services.exe spawning cmd.exe on target | TP — CRITICAL | Remote code execution on target. Confirm lateral movement. |
| Admin$ / C$ share access from non-IT host | TP — HIGH | Admin shares are legitimate for IT management — from non-IT hosts, this is suspicious. |
| Prior malware alert on source host same day | TP — CRITICAL | Attacker on source = confirmed lateral pivot attempt. |
| IT admin doing routine management | FP — LIKELY | Check: is the source an IT mgmt host (SCCM, Ansible, RMM tool)? Is the account in IT admin group? |
| Automated backup / patch job | FP — LIKELY | Check scheduled task or backup software running at that time on source. |
| First occurrence on this pair, Kerberos auth, business hours | INVESTIGATE | Could be legitimate first-time remote access. Confirm with account owner. |
Containment
STOP THE SPREADComplete the full scope check in I6 BEFORE isolating. If you isolate the source host before knowing the full blast radius, you lose telemetry on active lateral movement from the other affected hosts. Map first, contain second.
Isolate every host in your blast radius list from I6. Use Full Isolation — this blocks all network except Defender telemetry, so you keep visibility while cutting the attacker off.
- 1Go to
security.microsoft.com → Assets → Devices - 2Search for the device. Click the device name to open the device page.
- 3Click ... → Isolate device → Full isolation. Add incident number in the comment field.
- 4Repeat for every host in the blast radius list. Prioritize: source host first, then hosts with admin shares accessed, then general workstations.
- 5Confirm isolation status: device page shows "Isolated" badge under device name.
You can bulk-isolate using the Devices page checkboxes if you have multiple hosts. Select all affected devices → Actions → Isolate. Faster than one-by-one when blast radius is large.
Block the compromised account entirely while investigation continues. Do this in this order — each step escalates the lockdown.
- 1Block sign-in:
portal.azure.com → Entra ID → Users → [user] → Edit properties → Account enabled → NO → Save - 2Revoke all active sessions:
Users → [user] → Revoke sessions— kills all current tokens and refresh tokens immediately. - 3Reset password:
Users → [user] → Reset password → Auto-generate → copy temp password— out-of-band delivery to user's manager, not email (attacker may have inbox access). - 4Clear MFA methods and force re-registration:
Users → [user] → Authentication methods → Delete all methods— prevents attacker from approving MFA prompts. - 5Confirm risky user in Identity Protection:
Entra ID → Security → Identity Protection → Risky users → [user] → Confirm user compromised
If the compromised account is a service account — coordinate with the owning application team before resetting the password. A service account password reset without coordination will break services. Identify all services using the account first via Entra ID Enterprise Applications.
Block the attacker's movement channels while you eradicate. These are temporary rules — remove after eradication is confirmed.
- 1Block SMB inbound on affected hosts (port 445, 139) via host firewall or NSG rule targeting the attacker's source IP range. In Defender:
security.microsoft.com → Settings → Endpoints → Indicators → IP addresses → Add indicator → Block - 2Block RDP inbound (port 3389) from all non-IT subnets to the affected hosts. If RDP is not required between workstations — block it fleet-wide at the firewall.
- 3Block WinRM (5985/5986) inbound if WMI exec was detected. Check with IT before applying — this may break legitimate management tools.
- 4Conditional Access block for compromised account:
Entra ID → Security → Conditional Access → New policy → Users: [compromised account] → Grant: Block access → Enable policy
If I6 showed the compromised account reached a DC, or if DCSync activity is detected, these actions are non-negotiable. Escalate to L3 / IR Team before proceeding — these steps affect the entire domain.
- 1Isolate all DCs that the attacker touched via Defender XDR — same process as C1.
- 2Disable all attacker-touched admin accounts at the DC level via ADUC or PowerShell:
Disable-ADAccount -Identity "username" - 3Check for DCSync: In Defender Advanced Hunting, look for replication requests from non-DC sources:
IdentityQueryEvents | where QueryType == "Dcerpc" | where ActionType == "LdapSearch" | where Protocol == "MS-DRSR" - 4Initiate first krbtgt password reset (two resets required, 10h apart). Coordinate with L3 / Domain Admin — this will force all existing Kerberos tickets to be re-issued. Do NOT do this without L3 sign-off.
A single krbtgt reset is not enough. Golden Ticket attacks require TWO resets (10 hours apart) to invalidate all existing tickets, because DCs cache the previous password hash. Document the time of each reset. Second reset = after 10h minimum.
Eradication
CLEAN THE ENVIRONMENTLateral movement often drops persistence before moving on. Check all affected hosts for these artifacts via Live Response in Defender XDR.
Access Live Response
- 1
security.microsoft.com → Assets → Devices → [device] → Initiate Live Response session
Attackers frequently create backdoor admin accounts or add themselves to privileged groups. Audit this during the attacker's activity window.
- 1For every attacker-created account found:
Entra ID → Users → [account] → Delete - 2For every unauthorized group membership:
Entra ID → Groups → [group] → Members → Remove [account] - 3For local accounts on endpoint: Live Response →
run cmd /c "net user ATTACKER_ACCOUNT /delete"
If PTH was confirmed, the attacker has the NTLM hash. A session revoke is NOT enough — the hash remains valid until the password is changed. Reset all accounts that were logged on to any of the compromised hosts during the attack window.
- 1Pull all accounts that had active sessions on compromised hosts during the attack window from DeviceLogonEvents.
- 2Force password reset for each:
Entra ID → Users → [user] → Reset password → Require change at next sign-in - 3For on-prem AD accounts:
Set-ADAccountPassword -Identity "username" -Reset -NewPassword (ConvertTo-SecureString "TempPass123!" -AsPlainText -Force)thenSet-ADUser -Identity "username" -ChangePasswordAtLogon $true - 4If PTT confirmed: initiate second krbtgt reset 10h after the first reset from C4.
After all cleanup steps are complete, re-run the identification queries from Section 2 on a 1-hour window from current time. Expected result: zero new lateral movement events from the attacker's accounts and hosts. If you still see activity — the attacker has another foothold. Loop back to I2.
- Zero new lateral logons from compromised accounts in last 1h
- All attacker-created accounts deleted from AD and Entra ID
- All unauthorized group memberships removed
- PsExec / scheduled task artifacts removed from all affected hosts
- Affected hosts show clean in Defender (no active alerts)
- krbtgt reset completed (both rounds if DC was reached)
Document the full attack timeline and close the vector that enabled lateral movement. Without closing the entry point, the same attacker or another actor will repeat the same path.
- 1Identify patient zero: The host where the NTLM hash or Kerberos ticket was stolen from. Use the earliest timestamp from I2 and trace backward — what happened on that host before the lateral movement started? (Cross-reference with SOP-03 for malware triage on patient zero.)
- 2Close the vector: PTH? → Enable LAPS, enforce Credential Guard, disable NTLM where possible. PTT? → Enforce AES256 Kerberos, disable RC4. PsExec? → Block Admin share access via GPO. RDP? → Restrict via Conditional Access + IP allowlist.
- 3Document the timeline in the incident ticket: T0 (initial compromise), T1 (first lateral move), T2 (containment), T3 (eradication complete). Include all affected hosts and accounts.
Escalation
TIERS & TRIGGERSEscalate from L1 to L2 when any of the following are true. Do not wait 30 minutes — if the trigger is met, escalate immediately and continue working in parallel.
- 1L1 cannot determine TP vs FP within 30 minutes of initial triage
- 2The compromised account is a privileged account (Domain Admin, local admin on servers, service account with elevated rights)
- 3Lateral movement confirmed across 3 or more hosts
- 4Any server (file server, database, backup server, domain controller) is in the affected host list
- 5PTH or PTT is confirmed — NTLM hash or Kerberos ticket stolen
- Incident ticket number with full timeline
- Compromised account(s) and current status (blocked / not yet blocked)
- Full affected host list from I6 with timestamps
- Lateral movement technique confirmed (PTH / PTT / PsExec / WMI / RDP)
- Containment actions already taken (what is isolated, what is not)
- Current confidence level: TP confirmed / suspected
- 1Lateral movement reached a domain controller — any DC in affected host list
- 2DCSync detected — replication requests from non-DC source (check IdentityQueryEvents)
- 3Ransomware indicators on any affected host (file renames, shadow copy deletion) — cross-reference SOP-05
- 4Data exfiltration suspected — large outbound transfers, cloud upload tools, compress-and-send patterns detected in DeviceNetworkEvents
- 5Attacker has maintained access for more than 4 hours undetected before this alert — dwell time investigation required
- 1Domain Admin credentials compromised — entire domain potentially under attacker control
- 2krbtgt hash exposure suspected — Golden Ticket attack possible; requires domain-wide remediation
- 3Customer data, PII, or regulated data at risk (GDPR, PCI-DSS, HIPAA) — legal and compliance notification timelines start now
- 4Attacker has reached critical infrastructure systems (production databases, ERP, financial systems, OT/SCADA)
- 5Active ransomware deployment in progress across multiple hosts
| Trigger | External Party | Action |
|---|---|---|
| Domain compromise / Golden Ticket suspected | Microsoft DART / MSSP | Engage Microsoft Detection and Response Team or contracted MSSP for forensic investigation of DC and AD forest |
| Forensic imaging required (legal hold) | Digital Forensics Vendor | Do NOT wipe or reimage any affected host before forensic image is taken. Engage vendor for evidence-grade imaging. |
| Regulatory breach (GDPR / PCI / HIPAA) | Legal & Compliance Team | GDPR: 72h notification window from discovery. PCI: notify card brands and acquiring bank. Engage legal immediately. |
| Nation-state TTPs suspected | Law Enforcement / CISA | Notify CISA via cisa.gov/report. Preserve all evidence before any cleanup. Law enforcement coordination through legal team. |
This SOP was authored by Rudra Verma | Senior Security Architect | CyberHawk Consultancy. For the full SOC SOP library, threat intelligence feeds, and analyst tooling, visit app.cyberhawkthreatintel.com — sign up free.
Authorized security research and penetration testing only. Unauthorized use of these techniques is illegal.
◈ Stay Connected
Follow CyberHawk Threat Intel for threat intelligence, SOC SOPs, and hands-on analyst tooling.
"They can't exploit you if you are the Exploit."