Windows Named Pipe Creation Matching Cobalt Strike Default Pipe Prefixes

Flags Windows named pipe creation where PipeName matches known Cobalt Strike default pipe prefixes.

FreeUnreviewedSigmacriticalv1
title: Windows Named Pipe Creation Matching Cobalt Strike Default Pipe Prefixes
id: 035b5a0c-aaa6-45af-b4e0-5617e915de0e
related:
  - id: 85adeb13-4fc9-4e68-8a4a-c7cb2c336eb7
    type: similar
  - id: 0e7163d4-9e19-4fa7-9be6-000c61aad77a
    type: similar
  - id: d5601f8c-b26f-4ab0-9035-69e11a8d4ad2
    type: derived
status: test
description: This rule identifies creation of Windows named pipes whose PipeName contains or starts with prefixes commonly used by Cobalt Strike’s default modules. Attackers may use named pipes to stage, communicate, or hide malicious functionality under plausible Windows IPC paths. The detection relies on telemetry that records named pipe creation events with the PipeName field (e.g., Sysmon named pipe events).
references:
  - https://twitter.com/d4rksystem/status/1357010969264873472
  - https://labs.f-secure.com/blog/detecting-cobalt-strike-default-modules-via-named-pipe-analysis/
  - https://github.com/SigmaHQ/sigma/issues/253
  - https://blog.cobaltstrike.com/2021/02/09/learn-pipe-fitting-for-all-of-your-offense-projects/
  - https://redcanary.com/threat-detection-report/threats/cobalt-strike/
  - https://github.com/SigmaHQ/sigma/blob/master/rules/windows/pipe_created/pipe_created_hktl_cobaltstrike.yml
author: Florian Roth (Nextron Systems), Wojciech Lesicki, Huntrule Team
date: 2021-05-25
modified: 2022-10-31
tags:
  - attack.privilege-escalation
  - attack.stealth
  - attack.t1055
logsource:
  product: windows
  category: pipe_created
  definition: Note that you have to configure logging for Named Pipe Events in Sysmon config (Event ID 17 and Event ID 18). The basic configuration is in popular sysmon configuration (https://github.com/SwiftOnSecurity/sysmon-config), but it is worth verifying. You can also use other repo, e.g. https://github.com/Neo23x0/sysmon-config, https://github.com/olafhartong/sysmon-modular. How to test detection? You can always use Cobalt Strike, but also you can check powershell script from this site https://svch0st.medium.com/guide-to-named-pipes-and-hunting-for-cobalt-strike-pipes-dc46b2c5f575
detection:
  selection_MSSE:
    PipeName|contains|all:
      - \MSSE-
      - -server
  selection_postex:
    PipeName|startswith: \postex_
  selection_status:
    PipeName|startswith: \status_
  selection_msagent:
    PipeName|startswith: \msagent_
  selection_mojo:
    PipeName|startswith: \mojo_
  selection_interprocess:
    PipeName|startswith: \interprocess_
  selection_samr:
    PipeName|startswith: \samr_
  selection_netlogon:
    PipeName|startswith: \netlogon_
  selection_srvsvc:
    PipeName|startswith: \srvsvc_
  selection_lsarpc:
    PipeName|startswith: \lsarpc_
  selection_wkssvc:
    PipeName|startswith: \wkssvc_
  condition: 1 of selection*
falsepositives:
  - Unknown
level: critical
license: DRL-1.1

What it detects

This rule identifies creation of Windows named pipes whose PipeName contains or starts with prefixes commonly used by Cobalt Strike’s default modules. Attackers may use named pipes to stage, communicate, or hide malicious functionality under plausible Windows IPC paths. The detection relies on telemetry that records named pipe creation events with the PipeName field (e.g., Sysmon named pipe events).

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.