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
windows-named-pipe-creation-matching-cobalt-strike-default-pipe-prefixes-d5601f8c
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.