PowerShell Module Obfuscated IEX Invocation via Invoke-Obfuscation Payload Patterns
Alerts when PowerShell module payloads contain patterns consistent with obfuscated IEX generation via Invoke-Obfuscation.
- Product
- windows
- Category
- ps_module
- Author
- Daniel Bohannon (@Mandiant/@FireEye), oscd.community (SigmaHQ), DRL 1.1
- Published
- 2019-11-08
- Updated
- 2026-07-31
ATT&CK techniques
Execution → Defense EvasionRecon
Resource Dev
Initial Access
Execution
Persistence
Priv Esc
Defense Evasion
Cred Access
Discovery
Lateral Movement
Collection
C2
Exfiltration
Impact
What it detects
This rule identifies obfuscated PowerShell invocation patterns consistent with Invoke-Obfuscation-generated code that ultimately results in IEX-style execution. Such obfuscation is commonly used to evade basic script inspection and signature-based detections, so catching distinctive payload construction markers is valuable. It relies on PowerShell module telemetry with access to the command payload content that matches specific regular expressions in the rule.
Reporting behind it
Changelog
v2- v2Candidate ingested via manual entry.2026-07-31
- v1No changelog recorded for this version.2026-07-30
Detection content is published as a reviewed draft. Tune thresholds and exclusions against your own telemetry before enabling this rule for alerting.
title: PowerShell Module Obfuscated IEX Invocation via Invoke-Obfuscation Payload Patterns
id: 44ac0c7b-a1d9-487f-8885-71ded80c6965
related:
- id: 1b9dc62e-6e9e-42a3-8990-94d7a10007f7
type: derived
- id: 2f211361-7dce-442d-b78a-c04039677378
type: derived
status: test
description: This rule identifies obfuscated PowerShell invocation patterns consistent with Invoke-Obfuscation-generated code that ultimately results in IEX-style execution. Such obfuscation is commonly used to evade basic script inspection and signature-based detections, so catching distinctive payload construction markers is valuable. It relies on PowerShell module telemetry with access to the command payload content that matches specific regular expressions in the rule.
references:
- https://github.com/danielbohannon/Invoke-Obfuscation/blob/f20e7f843edd0a3a7716736e9eddfa423395dd26/Out-ObfuscatedStringCommand.ps1#L873-L888
- https://github.com/SigmaHQ/sigma/blob/master/rules/windows/powershell/powershell_module/posh_pm_invoke_obfuscation_obfuscated_iex.yml
author: Daniel Bohannon (@Mandiant/@FireEye), oscd.community, Huntrule Team
date: 2019-11-08
modified: 2022-12-31
tags:
- attack.stealth
- attack.t1027
- attack.execution
- attack.t1059.001
logsource:
product: windows
category: ps_module
definition: 0ad03ef1-f21b-4a79-8ce8-e6900c54b65b
detection:
selection_payload:
- Payload|re: \$PSHome\[\s*\d{1,3}\s*\]\s*\+\s*\$PSHome\[
- Payload|re: \$ShellId\[\s*\d{1,3}\s*\]\s*\+\s*\$ShellId\[
- Payload|re: \$env:Public\[\s*\d{1,3}\s*\]\s*\+\s*\$env:Public\[
- Payload|re: \$env:ComSpec\[(\s*\d{1,3}\s*,){2}
- Payload|re: \*mdr\*\W\s*\)\.Name
- Payload|re: \$VerbosePreference\.ToString\(
- Payload|re: \[String\]\s*\$VerbosePreference
condition: selection_payload
falsepositives:
- Unknown
level: high
license: DRL-1.1