Windows PowerShell: Execution of TroubleshootingPack Cmdlets (msdt-related usage)

Flags PowerShell script blocks invoking TroubleshootingPack with unattended answer-file arguments.

FreeReviewedSigma · Medium · v2
Product
windows
Category
ps_script
Author
Nasreddine Bencherchali (Nextron Systems) (SigmaHQ), DRL 1.1
Published
2022-06-21
Updated
2026-07-31
title: "Windows PowerShell: Execution of TroubleshootingPack Cmdlets (msdt-related usage)"
id: 8db0dbc1-1644-4277-9397-ca95f451c81e
status: test
description: This rule identifies PowerShell script block text that invokes TroubleshootingPack with the PCW diagnostics path and unattended answering options. Attackers may use this pattern to run troubleshooting pack components in a way that can support exploitation chains involving msdt-like behavior. Detection relies on PowerShell Script Block Logging telemetry capturing the specific cmdlet invocation, file path, and parameters.
references:
  - https://twitter.com/nas_bench/status/1537919885031772161
  - https://lolbas-project.github.io/lolbas/Binaries/Msdt/
  - https://github.com/SigmaHQ/sigma/blob/master/rules/windows/powershell/powershell_script/posh_ps_susp_follina_execution.yml
author: Nasreddine Bencherchali (Nextron Systems), Huntrule Team
date: 2022-06-21
tags:
  - attack.stealth
  - attack.t1202
logsource:
  product: windows
  category: ps_script
  definition: "Requirements: Script Block Logging must be enabled"
detection:
  selection:
    ScriptBlockText|contains|all:
      - Invoke-TroubleshootingPack
      - C:\Windows\Diagnostics\System\PCW
      - -AnswerFile
      - -Unattended
  condition: selection
falsepositives:
  - Legitimate usage of "TroubleshootingPack" cmdlet for troubleshooting purposes
level: medium
license: DRL-1.1
related:
  - id: 03409c93-a7c7-49ba-9a4c-a00badf2a153
    type: derived