Ceplin Command Identifier

Identifier / Programs / Windows

msdt.exe

Invokes a troubleshooting pack at the command line or as part of an automated script, and enables additional options without user input. Windows commands reference

LOLBAS Execute, AWL Bypass 8 Sigma rules name it 4 ATT&CK techniques 3 documented commands 12 known copies with hashes

Opens the identifier with your command. It is read in your browser and sent nowhere.

How msdt.exe is abused

documented by LOLBAS

Execute T1218 System Binary Proxy Execution

/path.diagpkg file .diagcfg file> Specifies the full path to a diagnostic package. Windows commands reference
/afSpecifies an answer file in XML format that contains responses to one or more diagnostic interactions. Windows commands reference
-skip

AWL Bypass T1218 System Binary Proxy Execution

/path.diagpkg file .diagcfg file> Specifies the full path to a diagnostic package. Windows commands reference
/afSpecifies an answer file in XML format that contains responses to one or more diagnostic interactions. Windows commands reference
-skip

AWL Bypass T1202 Indirect Command Execution

/idSpecifies which diagnostic package to run. Windows commands reference
-skip
/paramSpecifies a set of interaction responses at the command line, similar to an answer file. Windows commands reference

Each abuse is LOLBAS's category and the options and words it uses; the full write-up is on LOLBAS's page for msdt.exe.

3 documented commands

from LOLBAS, each read by the identifier

Execute T1218 System Binary Proxy Execution User privileges

Executes the Microsoft Diagnostics Tool and executes the malicious .MSI referenced in the .xml file.

msdt.exe -path C:\WINDOWS\diagnostics\index\PCWDiagnostic.xml -af {PATH_ABSOLUTE:.xml} /skip TRUE
Identify

Trips no Sigma process-creation rule.

AWL Bypass T1218 System Binary Proxy Execution User privileges

Executes the Microsoft Diagnostics Tool and executes the malicious .MSI referenced in the .xml file.

msdt.exe -path C:\WINDOWS\diagnostics\index\PCWDiagnostic.xml -af {PATH_ABSOLUTE:.xml} /skip TRUE
Identify

Trips no Sigma process-creation rule.

AWL Bypass T1202 Indirect Command Execution User privileges

Executes arbitrary commands using the Microsoft Diagnostics Tool and leveraging the "PCWDiagnostic" module (CVE-2022-30190). Note that this specific technique will not work on a patched system with the June 2022 Windows Security update.

msdt.exe /id PCWDiagnostic /skip force /param "IT_LaunchMethod=ContextMenu IT_BrowseForFile=/../../$(calc).exe"
Identify

Trips 1 Sigma rule: highPotential Arbitrary Command Execution Using Msdt.EXE by Nasreddine Bencherchali (Nextron Systems)

1 of the 3 commands the identifier reads trips a Sigma process-creation rule; 2 trip none. These commands and their descriptions are from LOLBAS’s entry for msdt.exe, by Oddvar Moe, at commit 2056cb766250 of 2026-09-26, under the GPL-3.0 and LOLBAS’s notice, with no warranty. Changed: Markdown is shown formatted. The source is in lolbas-gtfobins-commands.json.gz, and the full entry is on LOLBAS’s page for msdt.exe. The identifier reads each with LOLBAS’s placeholders filled in: a URL as https://example.com/file, a share as \\192.0.2.10\share\file, a path as C:\Data\file and a command as calc.exe.

What detects it

Sigma process creation rules
highMSDT Execution Via Answer FileNasreddine Bencherchali (Nextron Systems)
highPotential Arbitrary Command Execution Using Msdt.EXENasreddine Bencherchali (Nextron Systems)
highRenamed Msdt.EXE ExecutionpH-T (Nextron Systems)
mediumSuspicious Cabinet File Execution Via Msdt.EXENasreddine Bencherchali (Nextron Systems), GossiTheDog, frack113
highSuspicious Microsoft OneNote Child ProcessTim Rauch (Nextron Systems), Nasreddine Bencherchali (Nextron Systems), Elastic (idea)
highSuspicious Outlook Child ProcessMichael Haag, Florian Roth (Nextron Systems), Markus Neis, Elastic, FPT.EagleEye Team
highSuspicious Microsoft Office Child ProcessFlorian Roth (Nextron Systems), Markus Neis, FPT.EagleEye Team, Vadim Khrykov, Cyb3rEng, Michael Haag, Christopher Peacock @securepeacock, @scythe_io
T1036Masquerading
T1036.003Masquerading: Rename Legitimate Utilities
T1202Indirect Command Execution
T1218System Binary Proxy Execution

Is it the real msdt.exe?

file version info and known copies
Installed inC:\Windows\system32\
C:\Windows\SysWOW64\
Signed byMicrosoft Windows
ProductMicrosoft Windows Operating System, Microsoft Corporation
DescriptionDiagnostics Troubleshooting Wizard

12 known copies

10.0.22000.1 (WinBuild.160101.0800) · C:\WINDOWS\system32\msdt.exe · signed by Microsoft Windows

ae98210a080c9f124ac7224b719773b11f70e48404ae394e3f7311a06532eb81

10.0.22000.1 (WinBuild.160101.0800) · C:\WINDOWS\SysWOW64\msdt.exe · signed by Microsoft Windows

f2367a8459fcaefb36d55c1b5f90963cb68ac8489589767010412beabe3bf03f

10.0.19041.1 (WinBuild.160101.0800) · C:\Windows\SysWOW64\msdt.exe · signed by Microsoft Windows

48103c8ee52d4ceff0fb8974ffb17e6bfab773b51f9d187a3a581401d6a7663b

10.0.19041.1 (WinBuild.160101.0800) · C:\Windows\system32\msdt.exe · signed by Microsoft Windows

6859d1b5d1beaa2985b298f3fcee67f0aac747687a9dec2b4376585e99e9756f

10.0.18362.1 (WinBuild.160101.0800) · C:\WINDOWS\SysWOW64\msdt.exe · signed by Microsoft Windows

30cca92b58621615572f1c9f37f3c6ae4dd6fe54f0bfc372a664fc5c554aa1e5

10.0.18362.1 (WinBuild.160101.0800) · C:\WINDOWS\system32\msdt.exe · signed by Microsoft Windows

a4cbe4f41263b833294d2749de34fc588ca44d9bc5e3a78bbdce515250c220c6

10.0.17763.1 (WinBuild.160101.0800) · C:\Windows\SysWOW64\msdt.exe · signed by Microsoft Windows

1be8afd2962596807611e6a8836952d6bbdc24bde52a34905006ff78f1ad5d12

10.0.17763.1 (WinBuild.160101.0800) · C:\Windows\system32\msdt.exe · signed by Microsoft Windows

7253695fed91c65571bf59a7c61f1f1c72a081ca6ef687043cb039c7b35ca623

10.0.14393.0 (rs1_release.160715-1616) · C:\Windows\SysWOW64\msdt.exe · signed by Microsoft Windows

3e725546d8df09b6658d851f44a56a07f668f7ab14fff1130e5e98e384f2ce67

10.0.14393.0 (rs1_release.160715-1616) · C:\Windows\system32\msdt.exe · signed by Microsoft Windows

c1237bdd2b574c1cbbb4a0d990773bbed5b6fe3bd14f8011c0e79f9cddca2b4e

6.3.9600.16384 (winblue_rtm.130821-1623) · C:\windows\system32\msdt.exe · not signed

c44e5453e9d5f6ff38f5f7493d74d7f7aa0354ec8f1d761963d3ce93c49cf1ac

6.3.9600.16384 (winblue_rtm.130821-1623) · C:\windows\SysWOW64\msdt.exe · not signed

f7d246347fa82ef329f23adf5583c1f1867d7ae422be94f8f5f1e7c0e52f78e1

From the file’s version info and the copies recorded by xCyclopedia (MIT). A copy in another folder, signed by someone else or with another hash is not necessarily malicious, but it is worth a closer look. In Ceplin, "<sha256>".whatis() says which known copy a hash is.

Options

10 in Windows commands reference
Show every option of msdt.exe
/idSpecifies which diagnostic package to run.
/path.diagpkg file .diagcfg file> Specifies the full path to a diagnostic package.
/dciPrepopulates the passkey field.
/dtDisplays the troubleshooting history in the specified directory.
/afSpecifies an answer file in XML format that contains responses to one or more diagnostic interactions.
/modalMakes the troubleshooting pack modal to a window designated by the parent Console Window Handle (HWND), in decimal.
/moreoptionsfalse> Enables (true) or suppresses (false) the final troubleshooting screen that asks if the user wants to explore additional options.
/paramSpecifies a set of interaction responses at the command line, similar to an answer file.
/advancedExpands the advanced link on the Welcome page by default when the troubleshooting pack is started.
/customPrompts the user to confirm each possible resolution before it's applied.