IMPORTANT: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
current release documentation.
Command Shell Activity Started via RunDLL32
editCommand Shell Activity Started via RunDLL32
editIdentifies command shell activity started via RunDLL32, which is commonly abused by attackers to host malicious code.
Rule type: eql
Rule indices:
- winlogbeat-*
- logs-endpoint.events.*
- logs-windows.*
Severity: low
Risk score: 21
Runs every: 5 minutes
Searches indices from: now-9m (Date Math format, see also Additional look-back time
)
Maximum alerts per execution: 100
Tags:
- Elastic
- Host
- Windows
- Threat Detection
- Execution
Version: 5 (version history)
Added (Elastic Stack release): 7.11.0
Last modified (Elastic Stack release): 8.2.0
Rule authors: Elastic
Rule license: Elastic License v2
Potential false positives
editMicrosoft Windows installers leveraging RunDLL32 for installation.
Investigation guide
edit## Config If enabling an EQL rule on a non-elastic-agent index (such as beats) for versions <8.2, events will not define `event.ingested` and default fallback for EQL rules was not added until 8.2, so you will need to add a custom pipeline to populate `event.ingested` to @timestamp for this rule to work.
Rule query
editprocess where event.type == "start" and process.name : ("cmd.exe", "powershell.exe") and process.parent.name : "rundll32.exe" and process.parent.command_line != null and /* common FPs can be added here */ not process.parent.args : ("C:\\Windows\\System32\\SHELL32.dll,RunAsNewUser_RunDLL", "C:\\WINDOWS\\*.tmp,zzzzInvokeManagedCustomActionOutOfProc")
Threat mapping
editFramework: MITRE ATT&CKTM
-
Tactic:
- Name: Execution
- ID: TA0002
- Reference URL: https://attack.mitre.org/tactics/TA0002/
-
Technique:
- Name: Command and Scripting Interpreter
- ID: T1059
- Reference URL: https://attack.mitre.org/techniques/T1059/
Rule version history
edit- Version 5 (8.2.0 release)
-
- Formatting only
- Version 4 (7.13.0 release)
-
-
Updated query, changed from:
process where event.type in ("start", "process_started") and process.name : ("cmd.exe", "powershell.exe") and process.parent.name : "rundll32.exe" and /* common FPs can be added here */ not process.parent.args : "C:\\Windows\\System32\\SHELL32.dll,RunAsNewUser_RunDLL"
-
- Version 3 (7.12.0 release)
-
- Formatting only
- Version 2 (7.11.2 release)
-
- Formatting only