🔏
RootGuard
HomeSOC OperationsIncident ResponseWindows ForensicsLinux ForensicsKQL Investigations
  • Welcome
    • RootGuard
      • Who Am I?
        • Professional Profile
  • Resources Hub
    • Blogs
      • Articles
        • Safeguarding SMEs: The Strategic Importance of a Security Operations Center (SOC)
      • Posts
        • Roadmap to Becoming a Cybersecurity Specialist
        • Starting a Career in Cybersecurity
        • A Guide to Landing Your First Cybersecurity Analyst Role
        • Moving from Intermediate to Expert Incident Responder
  • SOC Operations
    • Introduction
      • Development Resources
        • SOC Analysts Roadmap
        • Becoming A SOC Analyst
        • SOC Analysts Prep Interview Questions
    • Essential Skills
      • Critical Windows EventIDs to Monitor
    • Junior Analyst Skills
      • Splunk Use Cases
      • KQL Use Cases
        • Reconnaissance (TA0043)
        • Initial Access (TA0001)
        • Execution (TA0002)
        • Persistence (TA0003)
        • Privilege Escalation (TA0004)
        • Defence Evasion (TA0005)
        • Credential Access (TA0006)
        • Discovery (TA0007)
        • Lateral Movement (TA0008)
        • Collection (TA0009)
        • Command and Control (TA0011)
        • Exfiltration (TA0010)
        • Impact (TA0040)
      • Investigating Common Attacks
        • Domain Dominance Attacks - Detection & Analysis
        • Investigating a Suspected AD FS Distributed Key Management (DKM) Attack
        • Authentication From Suspicious DeviceName
        • Identifying Interactive or RemoteInteractive Session From Service Account
        • Identifying Split or Part Archive File Transfers
        • Detect Potential Cleartext Credentials in Command Line
        • Detecting Command Line Interpreters Launched via Scheduled Tasks
        • Detecting Files Containing Potentially Sensitive Data
        • Detecting DeviceNetworkEvents From Windows Processes and Domains by TLD
        • Detecting Silent cmd.exe Execution With Redirected STDERR & STDOUT
        • Detecting Low Prevalence DLL Loaded From Process In User Downloads Directory
        • Detecting Virtual Drive Mounted From Archive
        • Identify Execution of Script From User's Downloads Folder
        • Identify Potential RDP Tunneled Sessions
        • Identify Instances of PowerShell Invoke-WebRequest, IWR or Net.WebClient
        • Identify Processes Launched by PowerShell Remoting (WSMProvHost.exe)
        • Detect DeviceNetworkEvents for LOLBAS with Download or Upload Functions
        • Detect Execution of PSEXESVC via Remote Systems
        • Identify Suspicious String in Service Creation ImagePath
        • Identify File with Double Extensions
        • Detect Potential Cleartext Credentials in Commandline
        • Detect When Large Number of Files Downloaded From OneDrive or SharePoint
        • Identify and Investigate Phishing Attacks with KQL
      • PowerShell for SecOps
        • Powershell Remoting
        • Reconnaissance Discovery
        • Initial Access Discovery
        • Execution Discovery
        • Persistence Discovery
        • Privilege Escalation Discovery
        • Defence Evasion Discovery
        • Credential Access Discovery
        • Discovery
        • Lateral Movement Discovery
        • Collection Discovery
        • Command & Control (C2) Discovery
        • Exfiltration Discovery
        • Impact Discovery
      • Packet Analysis (pcap)
        • Tcpdump
        • Tcpdump (Intermediate)
        • Tshark
        • Ngrep
      • Investigating Suspicious Emails Using KQL
    • Intermediate and Advanced Skills
      • Investigate Using MITRE ATT&CK Methodology
        • Reconnaissance (TA0043) Techniques
        • Resource Development (TA0042) Techniques
        • Initial Access (TA0001) Techniques
        • Command Execution (TA0002) Techniques
        • Persistence (TA0003) Techniques
        • Privilege Escalation (TA0004) Techniques
        • Defence Evasion (TA0005) Techniques
        • Credential Access (TA0006) Techniques
        • Discovery (TA0007) Techniques
        • Lateral Movement (TA0008) Techniques
        • Collection (TA0009) Techniques
        • Command and Control (C2) (TA0011) Techniques
        • Exfiltration (TA0010) Techniques
        • Impact (TA0040) Techniques
    • Vulnerability Management
    • Malware Analysis
  • DFIR
    • Incident Response
      • Incident Triage
        • Triage Types and Processes
        • PowerShell for Detection and Analysis
          • Malware or Compromise Investigation
          • Lateral Movement Discovery
        • Registry Analysis
        • Sysinternals Intrusion Analysis
        • PowerShell Intrusion Analysis
        • Velociraptor Intrusion Analysis
        • Zimmerman Tools Intrusion Analysis
      • KAPE Artifacts Analysis
      • Velociraptor Artifacts Analysis
      • Using The Unified Kill Chain Model to Analyse Individual Cyber Attacks
        • Phase 1 - Gaining an Initial Foothold
          • Gaining Access to the Network
          • Establishing a Foothold
          • Network Discovery
      • Response Strategies
        • Privilege Escalation Assessment
        • Command and Control Assessment
        • Command Execution Assessment
        • Defence Evasion Assessment
        • Detection Assessment
        • Discovery Assessment
        • Exfiltration Assessment
        • Initial Access Assessment
        • Initial Impact Assessment Techniques
        • Lateral Movement Assessment
        • Persistence Assessment
    • Windows Forensics
      • Evidence of Execution
      • Window Artifact Analysis
        • Account Usage
        • User Activity Tracking (Event Logs)
        • Program Execution
        • File and Folder Opening
        • File Download
        • Browser Usage
        • Deleted File or File Knowledge
        • External Device & USB Usage
    • Linux Forensics
      • Linux Commandline Basics
      • Host Compromise Assessment
    • KQL for Defender & Sentinel
      • MDO (Office)
      • MDI (Identity)
      • MDE (Endpoint)
    • Memory Forensics
      • Memory Forensics (Volatility 3)
    • Playbooks
      • First Responder DFIR Playbook
        • Device Isolation
        • Evidence Collection
          • Acquire Triage Image Using KAPE
          • Acquire Triage Data Using Velociraptor
          • Acquire Triage Data Using Powershell
          • Acquire Triage Memory Image
          • Acquire Image Using FTK
          • AXIOM Cyber Data Collection
        • Windows Forensic Artefacts
          • Application Execution
          • File & Folder Knowledge
          • External Device Usage
          • Network Activity
          • Windows Event Logs
        • Initial Analysis
          • Memory Analysis (Vol 3)
          • Axiom Cyber Examiner
  • Detection Engineering
    • AD Attack Detections & Mitigations
      • Kerberoasting
      • Authentication Server Response (AS-REP) Roasting
      • Password Spraying
      • MachineAccountQuota Compromise
      • Unconstrained Delegation
      • Password in Group Policy Preferences (GPP) Compromise
      • Active Directory Certificate Services (AD CS) Compromise
      • Golden Certificate
      • DCSync
      • Dumping ntds.dit
      • Golden Ticket
      • Silver Ticket
      • Golden Security Assertion Markup Language (SAML)
      • Microsoft Entra Connect Compromise
      • One-way Domain Trust Bypass
      • Security Identifier (SID) History Compromise
      • Skeleton Key
      • Active Directory Security Controls
      • Active Directory Events for Detecting Compromise
    • Attack Triage Playbooks (KQL Triage)
      • Windows Malware Detection Playbook
      • Linux Host Intrusion Detection Playbook (CLI)
      • Linux Intrusion Detection Playbook
      • Large-Scale Compromise Detection Playbook
      • Ransomware Detection Playbook
      • Phishing Email Compromise Detection Playbook
      • Scam Detection Playbook
      • Customer Phishing Detection Playbook
      • Insider Abuse Detection Playbook
      • Information Leakage Detection Playbook
      • Social Engineering Detection Playbook
      • Malicious Network Behaviour Detection Playbook
      • Windows Intrusion Detection Playbook
      • Vulnerability Detection Playbook
      • Business Email Compromise Detection Playbook
    • Process Execution (KQL Triage)
    • Threat Hunting
      • Hunting Ransomware Indicators
      • Hunting With KQL
        • Detecting Malware Infection (MITRE ATT&CK: T1566, T1059)
        • Discovery Activities (MITRE ATT&CK: T1016, T1083, T1046)
        • Credential Theft (MITRE ATT&CK: T1003, T1078)
        • Lateral Movement (MITRE ATT&CK: T1076, T1021)
        • Data Theft (MITRE ATT&CK: T1041, T1071)
        • Detecting CommandLine Executions (MITRE ATT&CK: T1059)
        • Windows Security Logs (Identity and Logon Activities)
      • Hunting With Splunk
Powered by GitBook
On this page
  • Phase 1: Understand Windows Event Logs & KQL Basics
  • Phase 2: Detect Suspicious Process Execution
  • Phase 3: Investigate and Analyse
  • Phase 4: Respond and Mitigate
  • Phase 5: Continuous Monitoring & Improvement
  • Final Thoughts
Edit on GitHub
  1. Detection Engineering

Process Execution (KQL Triage)

Investigating suspicious process execution using Windows Security Logs, Microsoft Defender XDR, and KQL (Kusto Query Language) in Microsoft Sentinel. Below are extensive KQL query examples to help you detect, analyse, and respond to malicious activity effectively.


Phase 1: Understand Windows Event Logs & KQL Basics

Objective: Gain foundational knowledge of Windows Event Logs and KQL for querying logs in Microsoft Sentinel.

Key Actions:

  1. Learn the Basics of Windows Event Logs:

    • Log Types:

      • Security Logs: Track authentication, privilege changes, and access control.

      • System Logs: Record system-level events like service startups and hardware issues.

      • Application Logs: Log application-specific events.

    • Event IDs:

      • Process Creation: Event ID 4688 (native Windows logging).

      • Account Logon: Event ID 4624 (successful logon) and 4625 (failed logon).

      • File Access: Event ID 4663 (file access attempts).

  2. Understand KQL in Microsoft Sentinel:

    • Learn how to write queries in KQL to filter, analyse, and visualise data in Sentinel.

    • Use the Schema Explorer in Sentinel to explore available tables (e.g., SecurityEvent, DeviceEvents).

  3. Set Up a Lab Environment:

    • Use Windows 10/11 or Windows Server in a virtual machine (e.g., VirtualBox, VMware).

    • Simulate malicious activity using tools like Atomic Red Team, Cobalt Strike, or Metasploit.

    • Connect your lab environment to Microsoft Sentinel for log ingestion.

  4. Basic KQL Queries:

    • Example: Query all process creation events from Security Logs:

SecurityEvent
| where EventID == 4688
| project TimeGenerated, Account, NewProcessName, ParentProcessName, Process, SubjectAccount, Activity, CommandLine

Example: Query Defender XDR process creation events:

DeviceEvents
| where ActionType == "ProcessCreated"
| project Timestamp, DeviceName, FileName, InitiatingProcessFileName, CommandLine

Phase 2: Detect Suspicious Process Execution

Objective: Use KQL to detect suspicious process execution patterns in Sentinel and Defender XDR.

Key Actions:

  1. Focus on Key Event IDs:

    • Process Creation: Event ID 4688 (native Windows logging).

    • Network Connections: Use Defender XDR logs (DeviceNetworkEvents) to track network activity.

  2. Write Advanced KQL Queries:

    • Detect Unusual Parent-Child Relationships:

      • Look for explorer.exe spawning powershell.exe:

SecurityEvent
| where EventID == 4688
| extend ParentProcessName = tostring(parse_json(EventData).ParentProcessName)
| where ParentProcessName contains "explorer.exe" and ProcessName contains "powershell.exe"
| project TimeGenerated, Account, ParentProcessName, ProcessName, CommandLine

Detect Suspicious Command-Line Arguments:

  • Look for encoded PowerShell commands:

SecurityEvent
| where EventID == 4688
| where ProcessName contains "powershell.exe" and CommandLine contains "-EncodedCommand"
| project TimeGenerated, Account, ProcessName, CommandLine

Detect Processes in Unexpected Locations:

  • Look for processes running from AppData or Users\Public:

SecurityEvent
| where EventID == 4688
| where ProcessName has_any ("C:\\Users\\Public", "C:\\Users\\AppData")
| project TimeGenerated, Account, ProcessName, CommandLine

Detect Lateral Movement via PsExec:

  • Look for PsExec usage, which is often used for lateral movement:

SecurityEvent
| where EventID == 4688
| where ProcessName contains "psexec.exe"
| project TimeGenerated, Account, ProcessName, CommandLine

Detect Scheduled Task Creation:

  • Look for scheduled tasks being created:

SecurityEvent
| where EventID == 4698
| project TimeGenerated, Account, TaskName, TaskContent

Detect Remote Logons:

  • Look for remote logons (Event ID 4624 with Logon Type 10):

SecurityEvent
| where EventID == 4624
| extend LogonType = tostring(parse_json(EventData).LogonType)
| where LogonType == "10"
| project TimeGenerated, Account, IpAddress, LogonType

Correlate Events with Defender XDR:

  • Combine process creation logs with Defender XDR logs to identify suspicious outbound traffic:

let SuspiciousProcesses = SecurityEvent
| where EventID == 4688
| where ProcessName contains "powershell.exe" and CommandLine contains "-EncodedCommand"
| project ProcessId, ProcessName, CommandLine;
DeviceNetworkEvents
| join kind=inner (SuspiciousProcesses) on $left.ProcessId == $right.ProcessId
| project Timestamp, ProcessName, CommandLine, RemoteIP, RemotePort

Use Defender XDR for Detection:

  • Query Defender XDR logs for suspicious process execution:

DeviceEvents
| where ActionType == "ProcessCreated"
| where FileName contains "powershell.exe"
| project Timestamp, DeviceName, FileName, InitiatingProcessFileName, CommandLine
  • Detect suspicious file modifications:

DeviceFileEvents
| where ActionType == "FileCreated" or ActionType == "FileModified"
| where FolderPath has_any ("C:\\Users\\Public", "C:\\Users\\AppData")
| project Timestamp, DeviceName, FileName, FolderPath, InitiatingProcessFileName

Phase 3: Investigate and Analyse

Objective: Perform in-depth analysis of suspicious process execution.

Key Actions:

  1. Extract IOCs (Indicators of Compromise):

    • Extract file paths, command-line arguments, IP addresses, and user accounts from logs:

SecurityEvent
| where EventID == 4688
| extend IOC = extract("http[s]?://([a-zA-Z0-9.-]+)", 1, CommandLine)
| where isnotempty(IOC)
| distinct IOC

Map Activity to MITRE ATT&CK:

  • Map suspicious PowerShell activity to Execution (T1059):

SecurityEvent
| where EventID == 4688
| where ProcessName contains "powershell.exe"
| extend Technique = "T1059 - Command and Scripting Interpreter"
| project TimeGenerated, ProcessName, CommandLine, Technique

Reconstruct the Attack Chain:

  • Build a timeline of events by correlating process creation, network connections, and file modifications:

let ProcessCreation = SecurityEvent
| where EventID == 4688
| project TimeGenerated, ProcessId, ProcessName, CommandLine;
let NetworkConnections = DeviceNetworkEvents
| project Timestamp, ProcessId, RemoteIP, RemotePort;
ProcessCreation
| join kind=inner (NetworkConnections) on $left.ProcessId == $right.ProcessId
| project TimeGenerated, ProcessName, CommandLine, RemoteIP, RemotePort

Detect Persistence Mechanisms:

  • Look for registry modifications that could indicate persistence:

SecurityEvent
| where EventID == 4657
| extend RegistryKey = tostring(parse_json(EventData).ObjectValueName)
| where RegistryKey contains "Run" or RegistryKey contains "Startup"
| project TimeGenerated, Account, RegistryKey, NewValue

Detect Credential Dumping:

  • Look for processes accessing sensitive files like lsass.exe:

DeviceProcessEvents
| where FileName == "lsass.exe"
| where InitiatingProcessFileName contains "procdump.exe" or InitiatingProcessFileName contains "mimikatz.exe"
| project Timestamp, DeviceName, FileName, InitiatingProcessFileName, InitiatingProcessCommandLine

Phase 4: Respond and Mitigate

Objective: Automate detection and response workflows using KQL in Sentinel and Defender XDR.

Key Actions:

  1. Automate Detection:

    • Create detection rules in Sentinel for suspicious process execution:

SecurityEvent
| where EventID == 4688
| where ProcessName contains "powershell.exe" and CommandLine contains "-EncodedCommand"
| extend Severity = "High"
| project TimeGenerated, ProcessName, CommandLine, Severity

Develop Playbooks:

  • Use Azure Logic Apps to automate responses:

    • Example: Isolate a device when suspicious PowerShell activity is detected:

DeviceEvents
| where ActionType == "ProcessCreated"
| where FileName contains "powershell.exe" and InitiatingProcessCommandLine contains "-EncodedCommand"
| extend Action = "IsolateDevice"
| project DeviceName, Action

Leverage Threat Intelligence:

  • Enrich logs with threat intelligence feeds:

let ThreatIntel = externaldata(RemoteIP:string, ThreatType:string)
[@"https://example.com/threat-intel-feed.csv"];
DeviceNetworkEvents
| join kind=inner (ThreatIntel) on $left.RemoteIP == $right.RemoteIP
| project Timestamp, RemoteIP, ThreatType

Phase 5: Continuous Monitoring & Improvement

Objective: Continuously monitor and improve detection capabilities.

Key Actions:

  1. Review and Update Queries:

    • Regularly review KQL queries to adapt to evolving threats.

    • Example: Add new IOCs or behaviours to existing queries.

  2. Leverage Defender XDR Analytics:

    • Use Defender XDR’s built-in analytics to detect advanced threats and correlate them with custom KQL queries.

  3. Contribute to the Community:

    • Share your KQL queries, playbooks, and findings with the cybersecurity community.

Final Thoughts

While there are different approaches to investigating suspicious process execution using Windows Security Logs, Microsoft Sentinel, and Defender XDR with KQL, by leveraging the KQL query examples provided, you’ll be able to detect, analyse, and respond to malicious activity effectively.

PreviousBusiness Email Compromise Detection PlaybookNextThreat Hunting

Last updated 4 months ago