Suspicious Microsoft Diagnostics Wizard Execution

edit

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


Rule queryedit

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 mappingedit

Framework: MITRE ATT&CKTM

Rule version historyedit

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