PowerShell ExportedCommands Array Index for Indirect Cmdlet Execution (Windows Process Creation)

Flags PowerShell command lines that enumerate Microsoft.PowerShell.Utility exported commands and invoke them via array index.

FreeReviewedSigma · High · v1
Product
windows
Category
process_creation
Author
Norbert Jaśniewicz (AlphaSOC), Swachchhanda Shrawan Poudel (Nextron Systems) (SigmaHQ), DRL 1.1
Published
2026-10-06
Updated
2026-10-07
title: PowerShell ExportedCommands Array Index for Indirect Cmdlet Execution (Windows Process Creation)
id: cd1575a2-e998-4037-8392-c782fdb14077
related:
  - id: 4ff4ad3e-9fb5-4a70-9962-d6ea58090318
    type: similar
  - id: 0c3ebe9f-df09-4e00-be0f-73d4ca8d62f6
    type: derived
status: experimental
description: This rule identifies PowerShell command lines that enumerate Microsoft.PowerShell.Utility exported commands via ExportedCommands.Values and then invoke cmdlets indirectly using array index access. Attackers can use this technique to reduce reliance on explicit strings associated with common cmdlets, making simple command-line matching less effective. It relies on Windows process creation telemetry that includes the PowerShell image name and the full command line content.
references:
  - https://www.linkedin.com/posts/mark-o-halloran1_clickfix-defense-evasion-tactic-today-i-ugcPost-7453463467736408064-snrp/
  - https://github.com/SigmaHQ/sigma/blob/master/rules/windows/process_creation/proc_creation_win_powershell_cmdlet_invocation_via_exported_commands_array_index.yml
author: Norbert Jaśniewicz (AlphaSOC), Swachchhanda Shrawan Poudel (Nextron Systems), Huntrule Team
date: 2026-10-06
tags:
  - attack.execution
  - attack.stealth
  - attack.t1027.010
  - attack.t1059.001
logsource:
  product: windows
  category: process_creation
detection:
  selection_img:
    - Image|endswith:
        - \powershell.exe
        - \pwsh.exe
    - OriginalFileName:
        - powershell.exe
        - pwsh.dll
  selection_module_export_enum:
    CommandLine|contains:
      - "Get-Module "
      - "gmo "
    CommandLine|contains|all:
      - ListAvailable
      - Microsoft.PowerShell.Utility
      - ExportedCommands
      - Values
  selection_index_used:
    CommandLine|contains: "[*]"
  condition: all of selection_*
falsepositives:
  - Legitimate use of exported commands array indexing during PowerShell command execution (should be rare)
level: high
regression_tests_path: regression_data/rules/windows/process_creation/proc_creation_win_powershell_cmdlet_invocation_via_exported_commands_array_index/info.yml
license: DRL-1.1