Suspicious Microsoft Diagnostics Wizard Execution

edit

Suspicious Microsoft Diagnostics Wizard Execution

edit

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.*
  • endgame-*

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
  • Elastic Endgame

Version: 102 (version history)

Added (Elastic Stack release): 8.3.0

Last modified (Elastic Stack release): 8.6.0

Rule authors: Elastic

Rule license: Elastic License v2

Investigation guide

edit

Rule query

edit
process where event.type == "start" 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 mapping

edit

Framework: MITRE ATT&CKTM

Rule version history

edit
Version 102 (8.6.0 release)
  • Formatting only
Version 101 (8.5.0 release)
  • Updated query, changed from:

    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")) )
Version 3 (8.4.0 release)
  • Updated query, changed from:

    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")) )