Windows PowerShell Script Block Imports Modules From Temp or Public Paths

Detects PowerShell module imports (Import-Module/ipmo) from Temp, AppData, or Public directories via Script Block Logging.

FreeUnreviewedSigmamediumv1
title: Windows PowerShell Script Block Imports Modules From Temp or Public Paths
id: 7480dfe2-1a1d-4375-8f6e-28172d0cab0c
related:
  - id: c31364f7-8be6-4b77-8483-dd2b5a7b69a3
    type: similar
  - id: 21f9162c-5f5d-4b01-89a8-b705bd7d10ab
    type: derived
status: test
description: This rule flags PowerShell script block text that imports modules from commonly abused directories such as $Env:Temp, $Env:Appdata, and C:\Users\Public. Attackers often load code from user-writable locations to stage tools or execute malicious functionality under the guise of module imports. The detection relies on Script Block Logging text matching specific Import-Module and ipmo invocation patterns that reference those paths.
references:
  - https://github.com/redcanaryco/atomic-red-team/blob/f339e7da7d05f6057fdfcdd3742bfcf365fee2a9/atomics/T1003.002/T1003.002.md
  - https://github.com/SigmaHQ/sigma/blob/master/rules/windows/powershell/powershell_script/posh_ps_import_module_susp_dirs.yml
author: Nasreddine Bencherchali (Nextron Systems), Huntrule Team
date: 2022-07-07
modified: 2023-01-10
tags:
  - attack.execution
  - attack.t1059.001
logsource:
  product: windows
  category: ps_script
  definition: "Requirements: Script Block Logging must be enabled"
detection:
  selection:
    ScriptBlockText|contains:
      - Import-Module "$Env:Temp\
      - Import-Module '$Env:Temp\
      - Import-Module $Env:Temp\
      - Import-Module "$Env:Appdata\
      - Import-Module '$Env:Appdata\
      - Import-Module $Env:Appdata\
      - Import-Module C:\Users\Public\
      - ipmo "$Env:Temp\
      - ipmo '$Env:Temp\
      - ipmo $Env:Temp\
      - ipmo "$Env:Appdata\
      - ipmo '$Env:Appdata\
      - ipmo $Env:Appdata\
      - ipmo C:\Users\Public\
  condition: selection
falsepositives:
  - Unknown
level: medium
license: DRL-1.1

What it detects

This rule flags PowerShell script block text that imports modules from commonly abused directories such as $Env:Temp, $Env:Appdata, and C:\Users\Public. Attackers often load code from user-writable locations to stage tools or execute malicious functionality under the guise of module imports. The detection relies on Script Block Logging text matching specific Import-Module and ipmo invocation patterns that reference those paths.

Known false positives

  • Unknown

Detection content is published as a reviewed draft. Tune thresholds and exclusions against your own telemetry before enabling this rule for alerting.