Windows PowerShell: Import-Module From Temp, AppData, or Public Directories

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

FreeReviewedSigma · Medium · v2
Product
windows
Category
ps_script
Author
Nasreddine Bencherchali (Nextron Systems) (SigmaHQ), DRL 1.1
Published
2022-07-07
Updated
2026-07-31
title: "Windows PowerShell: Import-Module From Temp, AppData, or Public Directories"
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 text that imports modules from commonly abused locations, specifically paths under %Temp%, %AppData%, and C:\Users\Public\. Attackers often use Import-Module to load malicious code without dropping a standalone payload, making module import behavior a useful execution signal. It relies on PowerShell script block logging telemetry that records the script content, matching specific Import-Module and ipmo command patterns referencing those directories.
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