Skip to content

Active Directory Investigation Decision Tree

The Active Directory Investigation Decision Tree structures investigative reasoning, transforming raw, high-volume event logs into actionable forensic conclusions.

It pivots across 4 decisive architectural bifurcations:

  1. Branch 1: Authenticating Authority (Local SAM vs Active Directory Domain).
  2. Branch 2: Negotiated Protocol (Kerberos vs NTLM).
  3. Branch 3: Cryptographic Token Validity (Legitimate KDC vs Synthetic Forgery).
  4. Branch 4: Effective Host Action (Telemetry Discovery vs Lateral Movement vs Host Compromise).

Suspicious Authentication Alert: Event 4624 (Successful Logon) on a Server
β”‚
β”œβ”€β”€ [Q1] Does TargetDomainName match the local machine hostname?
β”‚ β”‚
β”‚ β”œβ”€β”€ YES ──► LOCAL SAM AUTHENTICATION
β”‚ β”‚ β”‚
β”‚ β”‚ β”œβ”€β”€ [Q1.1] Is the password reused across other fleet endpoints?
β”‚ β”‚ β”‚ β”œβ”€β”€ YES ──► HIGH RISK: Cascading local Pass-the-Hash (Absence of LAPS).
β”‚ β”‚ β”‚ └── NO ──► Incident strictly isolated to this host.
β”‚ β”‚
β”‚ └── NO ──► ACTIVE DIRECTORY DOMAIN AUTHENTICATION
β”‚ β”‚
β”‚ β”œβ”€β”€ [Q2] What protocol is recorded in LogonProcessName?
β”‚ β”‚ β”‚
β”‚ β”‚ β”œβ”€β”€ NtLmSsp (NTLM)
β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”œβ”€β”€ [Q2.1] Is source IP internal and does Event 4776 exist on the DC?
β”‚ β”‚ β”‚ β”‚ β”œβ”€β”€ YES ──► Pass-the-Hash or NetExec via IP. Hunt source endpoint.
β”‚ β”‚ β”‚ β”‚ └── NO ──► NTLM Relay or authentication coercion (PetitPotam).
β”‚ β”‚ β”‚
β”‚ β”‚ └── Kerberos
β”‚ β”‚ β”‚
β”‚ β”‚ β”œβ”€β”€ [Q3] Do matching Event 4768 (TGT) and 4769 (TGS) exist on DCs?
β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”œβ”€β”€ YES ──► STANDARD KERBEROS TRANSACTION
β”‚ β”‚ β”‚ β”‚ Audit TicketEncryptionType (0x17 = RC4 anomaly).
β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ β”œβ”€β”€ 4769 present WITHOUT preceding 4768 ──► GOLDEN TICKET DETECTED!
β”‚ β”‚ β”‚ β”‚ (Tier 0 krbtgt compromise -> Consecutive double reset required).
β”‚ β”‚ β”‚ β”‚
β”‚ β”‚ β”‚ └── ZERO 4768 or 4769 records on DCs ──► SILVER TICKET DETECTED!
β”‚ β”‚ β”‚ (Target machine or service account key compromised).
β”‚ β”‚
β”‚ └── [Q4] Was the logon followed by malicious execution?
β”‚ β”‚
β”‚ β”œβ”€β”€ Event 5140 (ADMIN$ / C$) WITHOUT Event 7045 or 4688
β”‚ β”‚ └── NetExec (Pwn3d!) reconnaissance without payload execution.
β”‚ β”‚
β”‚ β”œβ”€β”€ Event 7045 (New Service) or Event 4688 under SYSTEM
β”‚ β”‚ └── Active lateral movement (PsExec, smbexec, WMI). Host compromised!
β”‚ β”‚
β”‚ └── Event 4662 on DC with replication Extended Right GUID
β”‚ └── DCSync Attack! Directory NTDS database extracted.

  1. Query Event ID 4624 on target host:
    • Record TargetDomainName, TargetUserName, TargetUserSid, LogonType, LogonProcessName, IpAddress.
  2. Compare TargetDomainName with local machine hostname:
    • If identical $\rightarrow$ Follow the Local SAM branch.
    • If different $\rightarrow$ Follow the Active Directory Domain branch.
  1. If NTLM:
    • Query primary DC for Event ID 4776 filtered by TargetUserName.
    • If present: credentials were verified by AD; check Event 8004 for Netlogon routing.
  2. If Kerberos:
    • Search forest KDCs for Event ID 4769 matching the user and service within the preceding 10 hours.
    • If present with ServiceName: krbtgt $\rightarrow$ Legitimate cross-domain referral.
    • If completely absent on DCs $\rightarrow$ Confirm Silver Ticket forgery.
  1. Filter events occurring within 120 seconds post-logon:
    • Event ID 5140 / 5145: Shared files and folders accessed.
    • Event ID 7045: Services installed.
    • Event ID 4688 / Sysmon 1: Child processes spawned (cmd.exe, powershell.exe).

Decision Tree OutcomeSeverityImmediate Containment Action
Local Pass-the-Hash (SAM)High (Host)Network-isolate host, rotate local administrator password, audit LAPS.
NetExec (Pwn3d!) without ExecutionMediumReset compromised account password, trace source IP.
Active Lateral Movement (Event 7045)CriticalIsolate endpoint, acquire volatile memory (RAM), terminate active sessions.
Silver Ticket DetectedCritical (Workload)Isolate server, reset host computer/service account password.
Golden Ticket DetectedEMERGENCY (T0)Initiate forest recovery protocol: consecutive double krbtgt password reset.
DCSync Detected (Event 4662)EMERGENCY (T0)Sever network path to caller, commence enterprise-wide secret rotation.

  • PowerShell Rapid Classifier:
    Terminal window
    param([string]$Username)
    $DomainSID = (Get-ADDomain).DomainSID.Value
    $User = Get-ADUser -Filter "SamAccountName -eq '$Username'" -ErrorAction SilentlyContinue
    if (-not $User) {
    Write-Warning "[!] Account absent from domain directory. Suspect local SAM or Golden Ticket."
    } else {
    Write-Host "[+] Verified Domain Account: $($User.DistinguishedName)"
    Write-Host "[+] Domain SID: $($User.SID)"
    }

  • Triage must immediately differentiate between local SAM and domain authentications.
  • Kerberos lacking Event 4768 = Golden Ticket; Kerberos lacking any DC events = Silver Ticket.
  • A network logon (4624 Type 3) represents an active threat only when accompanied by concrete execution (5145, 7045, 4688).