Detection rules › Sigma

Potential Pikabot C2 Activity

Status
test
Severity
high
Log source
category network_connection, product windows
Author
Andreas Braathen (mnemonic.io)
Source
github.com/SigmaHQ/sigma

Detects the execution of rundll32 that leads to an external network connection. The malware Pikabot has been seen to use this technique to initiate C2-communication through hard-coded Windows binaries.

Known false positives

  • Unlikely

MITRE ATT&CK coverage

TacticTechniques
Command & Control

Telemetry coverage

ProviderRecord / event type
SysmonEvent ID 3: Network connection

Rule body

title: Potential Pikabot C2 Activity
id: cae6cee6-0244-44d2-84ed-e65f548eb7dc
status: test
description: |
    Detects the execution of rundll32 that leads to an external network connection.
    The malware Pikabot has been seen to use this technique to initiate C2-communication through hard-coded Windows binaries.
references:
    - https://www.virustotal.com/gui/file/d72af640b71b8e3eca3eba660dd7c7f029ff8852bcacaa379e7b6c57cf4d9b44
    - https://www.virustotal.com/gui/file/6bb4cdbaef03b732a93559a58173e7f16b29bfb159a1065fae9185000ff23b4b
    - https://github.com/pr0xylife/Pikabot/blob/7f7723a74ca325ec54c6e61e076acce9a4b20538/Pikabot_06.12.2023.txt
author: Andreas Braathen (mnemonic.io)
date: 2023-10-27
modified: 2024-01-26
tags:
    - attack.command-and-control
    - attack.t1573
    - detection.emerging-threats
logsource:
    product: windows
    category: network_connection
    definition: 'Requirements: By default the network_connection type event might not contain the ParentImage. Make sure you collect such fields in order to use this rule'
detection:
    selection:
        ParentImage|endswith: '\rundll32.exe'
        Image|endswith:
            # Note: Only add processes seen used by Pikabot to avoid collision with other strains of malware
            - '\SearchFilterHost.exe'
            - '\SearchProtocolHost.exe'
            - '\sndvol.exe'
            - '\wermgr.exe'
            - '\wwahost.exe'
        Protocol: tcp
        Initiated: 'true'
    condition: selection
falsepositives:
    - Unlikely
level: high

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    ParentImage|endswith: '\rundll32.exe'
    Image|endswith:
        - '\SearchFilterHost.exe'
        - '\SearchProtocolHost.exe'
        - '\sndvol.exe'
        - '\wermgr.exe'
        - '\wwahost.exe'
    Protocol: tcp
    Initiated: 'true'

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
Imageends_with
  • \SearchFilterHost.exe corpus 3 (sigma 3)
  • \SearchProtocolHost.exe corpus 2 (sigma 2)
  • \sndvol.exe corpus 2 (sigma 2)
  • \wermgr.exe corpus 5 (sigma 5)
  • \wwahost.exe corpus 2 (sigma 2)
field:"Image" kind:ends_with
Initiatedeq
  • true corpus 50 (sigma 50)
field:"Initiated" kind:eq value:"true"
ParentImageends_with
  • \rundll32.exe corpus 15 (sigma 15)
field:"ParentImage" kind:ends_with value:"\rundll32.exe"
Protocoleq
  • tcp corpus 26 (elastic 25, sigma 1)
field:"Protocol" kind:eq value:"tcp"