Detect Command and Scripting Interpreter in Splunk
Adversaries may abuse command and script interpreters to execute commands, scripts, or binaries. These interfaces and languages provide ways of interacting with computer systems and are a common feature across many different platforms. Most systems come with some built-in command-line interface and scripting capabilities, for example, macOS and Linux distributions include some flavor of Unix Shell while Windows installations include the Windows Command Shell and PowerShell. There are also cross-platform interpreters such as Python, as well as those commonly associated with client applications such as JavaScript and Visual Basic. Adversaries may abuse these technologies in various ways as a means of executing arbitrary commands.
MITRE ATT&CK
- Tactic
- Execution
- Technique
- T1059 Command and Scripting Interpreter
- Canonical reference
- https://attack.mitre.org/techniques/T1059/
SPL Detection Query
index=wineventlog sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
(Image="*\\powershell.exe" OR Image="*\\pwsh.exe" OR Image="*\\cmd.exe" OR Image="*\\wscript.exe" OR Image="*\\cscript.exe" OR Image="*\\mshta.exe" OR Image="*\\python.exe" OR Image="*\\python3.exe" OR Image="*\\node.exe" OR Image="*\\AutoHotkey.exe" OR Image="*\\AutoIt3.exe")
(ParentImage="*\\winword.exe" OR ParentImage="*\\excel.exe" OR ParentImage="*\\powerpnt.exe" OR ParentImage="*\\outlook.exe" OR ParentImage="*\\wmiprvse.exe" OR ParentImage="*\\svchost.exe" OR ParentImage="*\\explorer.exe")
| eval IsOfficeParent=if(match(ParentImage, "(winword|excel|powerpnt|outlook)\.exe$"), 1, 0)
| eval IsWMI=if(match(ParentImage, "wmiprvse\.exe$"), 1, 0)
| eval IsSvchost=if(match(ParentImage, "svchost\.exe$"), 1, 0)
| table _time, host, User, Image, CommandLine, ParentImage, ParentCommandLine, IsOfficeParent, IsWMI, IsSvchost
| sort - _time Detects suspicious execution of scripting interpreters spawned by unusual parent processes using Sysmon Event ID 1. Identifies script engines launched from Office applications, WMI provider host, or service host — common patterns in macro-based attacks, lateral movement via WMI, and exploitation chains.
Data Sources
Required Sourcetypes
False Positives & Tuning
- Legitimate Office macros that invoke scripting engines for approved business automation
- WMI-based management tools (SCCM, Intune) that spawn script interpreters for system configuration
- Svchost launching script interpreters as part of scheduled tasks or Windows Update processes
Other platforms for T1059
Testing Methodology
Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Office Macro Simulation — Word spawns PowerShell
Expected signal: Sysmon Event ID 1: Process Create for cmd.exe spawning powershell.exe. Security Event ID 4688 with command line details showing the full chain.
- Test 2WScript Execution of VBScript File
Expected signal: Sysmon Event ID 1: Process Create with Image=wscript.exe and CommandLine containing the .vbs file path. Sysmon Event ID 11: File Create for the .vbs file in the temp directory.
- Test 3MSHTA Executing Inline VBScript
Expected signal: Sysmon Event ID 1: Process Create with Image=mshta.exe and CommandLine containing 'vbscript:Execute'. Child process creation event for calc.exe spawned by mshta.exe.
References (6)
- https://attack.mitre.org/techniques/T1059/
- https://learn.microsoft.com/en-us/defender-endpoint/advanced-hunting-deviceprocessevents-table
- https://docs.splunk.com/Documentation/SplunkCloud/latest/SearchReference/CommonStatsFunctions
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1059/T1059.md
- https://github.com/SigmaHQ/sigma/tree/master/rules/windows/process_creation
- https://lolbas-project.github.io/
Unlock Pro Content
Get the full detection package for T1059 including response playbook, investigation guide, and atomic red team tests.