Suspicious Microsoft Diagnostics Wizard Executionedit

Identifies potential abuse of the Microsoft Diagnostics Troubleshooting Wizard (MSDT) to proxy malicious command or binary execution via malicious process arguments.

Rule type: eql

Rule indices:

  • logs-endpoint.events.*
  • winlogbeat-*
  • logs-windows.*

Severity: high

Risk score: 73

Runs every: 5 minutes

Searches indices from: now-9m (Date Math format, see also Additional look-back time)

Maximum alerts per execution: 100

References:

Tags:

  • Elastic
  • Host
  • Windows
  • Threat Detection
  • Defense Evasion

Version: 1

Added (Elastic Stack release): 8.3.0

Rule authors: Elastic

Rule license: Elastic License v2

Investigation guideedit

## 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 queryedit

process where event.type in ("start", "process_started") and
(process.pe.original_file_name == "msdt.exe" or process.name :
"msdt.exe") and ( process.args : ("IT_RebrowseForFile=*", "ms-
msdt:/id", "ms-msdt:-id", "*FromBase64*") or (process.args :
"-af" and process.args : "/skip" and process.parent.name :
("explorer.exe", "cmd.exe", "powershell.exe", "cscript.exe",
"wscript.exe", "mshta.exe", "rundll32.exe", "regsvr32.exe") and
process.args : ("?:\\WINDOWS\\diagnostics\\index\\PCWDiagnostic.xml",
"PCWDiagnostic.xml", "?:\\Users\\Public\\*", "?:\\Windows\\Temp\\*"))
or (process.pe.original_file_name == "msdt.exe" and not
process.name : "msdt.exe" and process.name != null) or
(process.pe.original_file_name == "msdt.exe" and not
process.executable : ("?:\\Windows\\system32\\msdt.exe",
"?:\\Windows\\SysWOW64\\msdt.exe")) )

Threat mappingedit

Framework: MITRE ATT&CKTM