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
windows-powershell-script-block-imports-modules-from-temp-or-public-paths-21f9162c
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.