PowerShell Alias Cmdlets (Set-Alias/New-Alias) in Script Block Logging
Alerts on PowerShell scripts that create aliases via Set-Alias/New-Alias, a common obfuscation technique, using ScriptBlockText logging.
FreeUnreviewedSigmalowv1
powershell-alias-cmdlets-set-alias-new-alias-in-script-block-logging-96cd126d
title: PowerShell Alias Cmdlets (Set-Alias/New-Alias) in Script Block Logging
id: 1d3f833a-a48b-4fc5-aa76-728498df1000
related:
- id: e8314f79-564d-4f79-bc13-fbc0bf2660d8
type: derived
- id: 96cd126d-f970-49c4-848a-da3a09f55c55
type: derived
status: test
description: This rule flags PowerShell script block text containing the Set-Alias or New-Alias cmdlets, which attackers may use to obscure command intent and make scripts harder to analyze. The detection relies on ScriptBlockText telemetry from Windows PowerShell logging and matches the presence of alias-creation statements. It suppresses a set of known alias patterns used by specific CIM-related commands via an explicit negative filter.
references:
- https://github.com/1337Rin/Swag-PSO
- https://github.com/SigmaHQ/sigma/blob/master/rules/windows/powershell/powershell_script/posh_ps_susp_set_alias.yml
author: frack113, Huntrule Team
date: 2023-01-08
modified: 2025-10-22
tags:
- attack.execution
- attack.stealth
- attack.t1027
- attack.t1059.001
logsource:
product: windows
category: ps_script
definition: "Requirements: Script Block Logging must be enabled"
detection:
selection:
ScriptBlockText|contains:
- "Set-Alias "
- "New-Alias "
filter_main_cim:
ScriptBlockText:
- Set-Alias -Name ncms -Value New-CimSession -Option ReadOnly, AllScope -ErrorAction SilentlyContinue
- Set-Alias -Name gcls -Value Get-CimClass -Option ReadOnly, AllScope -ErrorAction SilentlyContinue
- Set-Alias -Name ncso -Value New-CimSessionOption -Option ReadOnly, AllScope -ErrorAction SilentlyContinue
- Set-Alias -Name gcms -Value Get-CimSession -Option ReadOnly, AllScope -ErrorAction SilentlyContinue
- Set-Alias -Name rcms -Value Remove-cimSession -Option ReadOnly, AllScope -ErrorAction SilentlyContinue
- Set-Alias -Name rcie -Value Register-CimIndicationEvent -Option ReadOnly, AllScope -ErrorAction SilentlyContinue
- Set-Alias -Name gcai -Value Get-CimAssociatedInstance -Option ReadOnly, AllScope -ErrorAction SilentlyContinue
- Set-Alias -Name gcim -Value Get-CimInstance -Option ReadOnly, AllScope -ErrorAction SilentlyContinue
- Set-Alias -Name scim -Value Set-CimInstance -Option ReadOnly, AllScope -ErrorAction SilentlyContinue
- Set-Alias -Name ncim -Value New-CimInstance -Option ReadOnly, AllScope -ErrorAction SilentlyContinue
- Set-Alias -Name rcim -Value Remove-cimInstance -Option ReadOnly, AllScope -ErrorAction SilentlyContinue
- Set-Alias -Name icim -Value Invoke-CimMethod -Option ReadOnly, AllScope -ErrorAction SilentlyContinue
condition: selection and not 1 of filter_main_*
falsepositives:
- Unknown
level: low
license: DRL-1.1
What it detects
This rule flags PowerShell script block text containing the Set-Alias or New-Alias cmdlets, which attackers may use to obscure command intent and make scripts harder to analyze. The detection relies on ScriptBlockText telemetry from Windows PowerShell logging and matches the presence of alias-creation statements. It suppresses a set of known alias patterns used by specific CIM-related commands via an explicit negative filter.
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.