Detection rules › Sigma

Malicious Base64 Encoded PowerShell Keywords in Command Lines

Status
test
Severity
high
Log source
product windows, category process_creation
Author
John Lambert (rule)
Source
github.com/SigmaHQ/sigma

Detects base64 encoded strings used in hidden malicious PowerShell command lines

MITRE ATT&CK coverage

Event coverage

ProviderEventTitle
SysmonEvent ID 1Process creation

Rule body yaml

title: Malicious Base64 Encoded PowerShell Keywords in Command Lines
id: f26c6093-6f14-4b12-800f-0fcb46f5ffd0
status: test
description: Detects base64 encoded strings used in hidden malicious PowerShell command lines
references:
    - http://www.leeholmes.com/blog/2017/09/21/searching-for-content-in-base-64-strings/
author: John Lambert (rule)
date: 2019-01-16
modified: 2023-01-05
tags:
    - attack.execution
    - attack.t1059.001
logsource:
    category: process_creation
    product: windows
detection:
    selection_img:
        - Image|endswith:
              - '\powershell.exe'
              - '\pwsh.exe'
        - OriginalFileName:
              - 'PowerShell.EXE'
              - 'pwsh.dll'
    selection_hidden:
        CommandLine|contains: ' hidden '
    selection_encoded:
        CommandLine|contains:
            - 'AGkAdABzAGEAZABtAGkAbgAgAC8AdAByAGEAbgBzAGYAZQByA'
            - 'aXRzYWRtaW4gL3RyYW5zZmVy'
            - 'IAaQB0AHMAYQBkAG0AaQBuACAALwB0AHIAYQBuAHMAZgBlAHIA'
            - 'JpdHNhZG1pbiAvdHJhbnNmZX'
            - 'YgBpAHQAcwBhAGQAbQBpAG4AIAAvAHQAcgBhAG4AcwBmAGUAcg'
            - 'Yml0c2FkbWluIC90cmFuc2Zlc'
            - 'AGMAaAB1AG4AawBfAHMAaQB6AGUA'
            - 'JABjAGgAdQBuAGsAXwBzAGkAegBlA'
            - 'JGNodW5rX3Npem'
            - 'QAYwBoAHUAbgBrAF8AcwBpAHoAZQ'
            - 'RjaHVua19zaXpl'
            - 'Y2h1bmtfc2l6Z'
            - 'AE8ALgBDAG8AbQBwAHIAZQBzAHMAaQBvAG4A'
            - 'kATwAuAEMAbwBtAHAAcgBlAHMAcwBpAG8Abg'
            - 'lPLkNvbXByZXNzaW9u'
            - 'SQBPAC4AQwBvAG0AcAByAGUAcwBzAGkAbwBuA'
            - 'SU8uQ29tcHJlc3Npb2'
            - 'Ty5Db21wcmVzc2lvb'
            - 'AE8ALgBNAGUAbQBvAHIAeQBTAHQAcgBlAGEAbQ'
            - 'kATwAuAE0AZQBtAG8AcgB5AFMAdAByAGUAYQBtA'
            - 'lPLk1lbW9yeVN0cmVhb'
            - 'SQBPAC4ATQBlAG0AbwByAHkAUwB0AHIAZQBhAG0A'
            - 'SU8uTWVtb3J5U3RyZWFt'
            - 'Ty5NZW1vcnlTdHJlYW'
            - '4ARwBlAHQAQwBoAHUAbgBrA'
            - '5HZXRDaHVua'
            - 'AEcAZQB0AEMAaAB1AG4Aaw'
            - 'LgBHAGUAdABDAGgAdQBuAGsA'
            - 'LkdldENodW5r'
            - 'R2V0Q2h1bm'
            - 'AEgAUgBFAEEARABfAEkATgBGAE8ANgA0A'
            - 'QASABSAEUAQQBEAF8ASQBOAEYATwA2ADQA'
            - 'RIUkVBRF9JTkZPNj'
            - 'SFJFQURfSU5GTzY0'
            - 'VABIAFIARQBBAEQAXwBJAE4ARgBPADYANA'
            - 'VEhSRUFEX0lORk82N'
            - 'AHIAZQBhAHQAZQBSAGUAbQBvAHQAZQBUAGgAcgBlAGEAZA'
            - 'cmVhdGVSZW1vdGVUaHJlYW'
            - 'MAcgBlAGEAdABlAFIAZQBtAG8AdABlAFQAaAByAGUAYQBkA'
            - 'NyZWF0ZVJlbW90ZVRocmVhZ'
            - 'Q3JlYXRlUmVtb3RlVGhyZWFk'
            - 'QwByAGUAYQB0AGUAUgBlAG0AbwB0AGUAVABoAHIAZQBhAGQA'
            - '0AZQBtAG0AbwB2AGUA'
            - '1lbW1vdm'
            - 'AGUAbQBtAG8AdgBlA'
            - 'bQBlAG0AbQBvAHYAZQ'
            - 'bWVtbW92Z'
            - 'ZW1tb3Zl'
    condition: all of selection_*
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

all of selection_*

Stage 1: selection_img

selection_img:
    - Image|endswith:
          - '\powershell.exe'
          - '\pwsh.exe'
    - OriginalFileName:
          - 'PowerShell.EXE'
          - 'pwsh.dll'

Stage 2: selection_hidden

selection_hidden:
    CommandLine|contains: ' hidden '

Stage 3: selection_encoded

selection_encoded:
    CommandLine|contains:
        - 'AGkAdABzAGEAZABtAGkAbgAgAC8AdAByAGEAbgBzAGYAZQByA'
        - 'aXRzYWRtaW4gL3RyYW5zZmVy'
        - 'IAaQB0AHMAYQBkAG0AaQBuACAALwB0AHIAYQBuAHMAZgBlAHIA'
        - 'JpdHNhZG1pbiAvdHJhbnNmZX'
        - 'YgBpAHQAcwBhAGQAbQBpAG4AIAAvAHQAcgBhAG4AcwBmAGUAcg'
        - 'Yml0c2FkbWluIC90cmFuc2Zlc'
        - 'AGMAaAB1AG4AawBfAHMAaQB6AGUA'
        - 'JABjAGgAdQBuAGsAXwBzAGkAegBlA'
        - 'JGNodW5rX3Npem'
        - 'QAYwBoAHUAbgBrAF8AcwBpAHoAZQ'
        - 'RjaHVua19zaXpl'
        - 'Y2h1bmtfc2l6Z'
        - 'AE8ALgBDAG8AbQBwAHIAZQBzAHMAaQBvAG4A'
        - 'kATwAuAEMAbwBtAHAAcgBlAHMAcwBpAG8Abg'
        - 'lPLkNvbXByZXNzaW9u'
        - 'SQBPAC4AQwBvAG0AcAByAGUAcwBzAGkAbwBuA'
        - 'SU8uQ29tcHJlc3Npb2'
        - 'Ty5Db21wcmVzc2lvb'
        - 'AE8ALgBNAGUAbQBvAHIAeQBTAHQAcgBlAGEAbQ'
        - 'kATwAuAE0AZQBtAG8AcgB5AFMAdAByAGUAYQBtA'
        - 'lPLk1lbW9yeVN0cmVhb'
        - 'SQBPAC4ATQBlAG0AbwByAHkAUwB0AHIAZQBhAG0A'
        - 'SU8uTWVtb3J5U3RyZWFt'
        - 'Ty5NZW1vcnlTdHJlYW'
        - '4ARwBlAHQAQwBoAHUAbgBrA'
        - '5HZXRDaHVua'
        - 'AEcAZQB0AEMAaAB1AG4Aaw'
        - 'LgBHAGUAdABDAGgAdQBuAGsA'
        - 'LkdldENodW5r'
        - 'R2V0Q2h1bm'
        - 'AEgAUgBFAEEARABfAEkATgBGAE8ANgA0A'
        - 'QASABSAEUAQQBEAF8ASQBOAEYATwA2ADQA'
        - 'RIUkVBRF9JTkZPNj'
        - 'SFJFQURfSU5GTzY0'
        - 'VABIAFIARQBBAEQAXwBJAE4ARgBPADYANA'
        - 'VEhSRUFEX0lORk82N'
        - 'AHIAZQBhAHQAZQBSAGUAbQBvAHQAZQBUAGgAcgBlAGEAZA'
        - 'cmVhdGVSZW1vdGVUaHJlYW'
        - 'MAcgBlAGEAdABlAFIAZQBtAG8AdABlAFQAaAByAGUAYQBkA'
        - 'NyZWF0ZVJlbW90ZVRocmVhZ'
        - 'Q3JlYXRlUmVtb3RlVGhyZWFk'
        - 'QwByAGUAYQB0AGUAUgBlAG0AbwB0AGUAVABoAHIAZQBhAGQA'
        - '0AZQBtAG0AbwB2AGUA'
        - '1lbW1vdm'
        - 'AGUAbQBtAG8AdgBlA'
        - 'bQBlAG0AbQBvAHYAZQ'
        - 'bWVtbW92Z'
        - 'ZW1tb3Zl'

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
CommandLinematch
  • hidden
  • 0AZQBtAG0AbwB2AGUA
  • 1lbW1vdm
  • 4ARwBlAHQAQwBoAHUAbgBrA
  • 5HZXRDaHVua
  • AE8ALgBDAG8AbQBwAHIAZQBzAHMAaQBvAG4A
  • AE8ALgBNAGUAbQBvAHIAeQBTAHQAcgBlAGEAbQ
  • AEcAZQB0AEMAaAB1AG4Aaw
  • AEgAUgBFAEEARABfAEkATgBGAE8ANgA0A
  • AGMAaAB1AG4AawBfAHMAaQB6AGUA
  • AGUAbQBtAG8AdgBlA
  • AGkAdABzAGEAZABtAGkAbgAgAC8AdAByAGEAbgBzAGYAZQByA
  • AHIAZQBhAHQAZQBSAGUAbQBvAHQAZQBUAGgAcgBlAGEAZA
  • IAaQB0AHMAYQBkAG0AaQBuACAALwB0AHIAYQBuAHMAZgBlAHIA
  • JABjAGgAdQBuAGsAXwBzAGkAegBlA
  • JGNodW5rX3Npem
  • JpdHNhZG1pbiAvdHJhbnNmZX
  • LgBHAGUAdABDAGgAdQBuAGsA
  • LkdldENodW5r
  • MAcgBlAGEAdABlAFIAZQBtAG8AdABlAFQAaAByAGUAYQBkA
  • NyZWF0ZVJlbW90ZVRocmVhZ
  • Q3JlYXRlUmVtb3RlVGhyZWFk
  • QASABSAEUAQQBEAF8ASQBOAEYATwA2ADQA
  • QAYwBoAHUAbgBrAF8AcwBpAHoAZQ
  • QwByAGUAYQB0AGUAUgBlAG0AbwB0AGUAVABoAHIAZQBhAGQA
  • R2V0Q2h1bm
  • RIUkVBRF9JTkZPNj
  • RjaHVua19zaXpl
  • SFJFQURfSU5GTzY0
  • SQBPAC4AQwBvAG0AcAByAGUAcwBzAGkAbwBuA
  • SQBPAC4ATQBlAG0AbwByAHkAUwB0AHIAZQBhAG0A
  • SU8uQ29tcHJlc3Npb2
  • SU8uTWVtb3J5U3RyZWFt
  • Ty5Db21wcmVzc2lvb
  • Ty5NZW1vcnlTdHJlYW
  • VABIAFIARQBBAEQAXwBJAE4ARgBPADYANA
  • VEhSRUFEX0lORk82N
  • Y2h1bmtfc2l6Z
  • YgBpAHQAcwBhAGQAbQBpAG4AIAAvAHQAcgBhAG4AcwBmAGUAcg
  • Yml0c2FkbWluIC90cmFuc2Zlc
  • ZW1tb3Zl
  • aXRzYWRtaW4gL3RyYW5zZmVy
  • bQBlAG0AbQBvAHYAZQ
  • bWVtbW92Z
  • cmVhdGVSZW1vdGVUaHJlYW
  • kATwAuAE0AZQBtAG8AcgB5AFMAdAByAGUAYQBtA
  • kATwAuAEMAbwBtAHAAcgBlAHMAcwBpAG8Abg
  • lPLk1lbW9yeVN0cmVhb
  • lPLkNvbXByZXNzaW9u
Imageends_with
  • \powershell.exe corpus 182 (sigma 182)
  • \pwsh.exe corpus 168 (sigma 168)
OriginalFileNameeq
  • PowerShell.EXE corpus 120 (sigma 84, splunk 30, elastic 6)
  • pwsh.dll corpus 112 (sigma 79, splunk 30, elastic 3)