PowerShell downgrade indicators via EngineVersion=2. and HostVersion !=2. (Windows)

Detects PowerShell version mismatches that may indicate a downgrade attempt using EngineVersion vs HostVersion telemetry.

FreeReviewedSigma · Medium · v2
Product
windows
Category
ps_classic_start
Author
Florian Roth (Nextron Systems), Lee Holmes (idea), Harish Segar (improvements) (SigmaHQ), DRL 1.1
Published
2017-03-22
Updated
2026-07-31
title: PowerShell downgrade indicators via EngineVersion=2. and HostVersion !=2. (Windows)
id: bdacf7d8-405e-4097-bff2-5e12d69f3c81
status: test
description: This rule flags PowerShell activity where the reported EngineVersion contains "EngineVersion=2." but the related HostVersion does not contain "HostVersion=2." PowerShell downgrade attacks matter because they can coerce a victim into using a different engine/feature set than the host expects. The detection relies on string matches within PowerShell classic start telemetry fields for EngineVersion and HostVersion.
references:
  - http://www.leeholmes.com/blog/2017/03/17/detecting-and-preventing-powershell-downgrade-attacks/
  - https://github.com/SigmaHQ/sigma/blob/master/rules/windows/powershell/powershell_classic/posh_pc_downgrade_attack.yml
author: Florian Roth (Nextron Systems), Lee Holmes (idea), Harish Segar (improvements), Huntrule Team
date: 2017-03-22
modified: 2023-10-27
tags:
  - attack.execution
  - attack.t1059.001
logsource:
  product: windows
  category: ps_classic_start
detection:
  selection:
    Data|contains: EngineVersion=2.
  filter_main:
    Data|contains: HostVersion=2.
  condition: selection and not filter_main
falsepositives:
  - Unknown
level: medium
license: DRL-1.1
related:
  - id: 6331d09b-4785-4c13-980f-f96661356249
    type: derived