Windows Named Pipe Creation: Cobalt Strike Malleable Profile PipeName Patterns
Alerts on Sysmon named pipe creation with PipeName patterns commonly used by Cobalt Strike malleable C2.
- Product
- windows
- Category
- pipe_created
- Author
- Florian Roth (Nextron Systems), Christian Burkard (Nextron Systems) (SigmaHQ), DRL 1.1
- Published
- 2021-07-30
- Updated
- 2026-07-31
ATT&CK techniques
Priv Esc → Defense EvasionRecon
Resource Dev
Initial Access
Execution
Persistence
Priv Esc
Defense Evasion
Cred Access
Discovery
Lateral Movement
Collection
C2
Exfiltration
Impact
What it detects
This rule identifies Windows named pipe creation events where the PipeName matches specific prefixes and values associated with Cobalt Strike malleable C2 profile configurations. Named pipes are commonly used for covert inter-process communication and staged C2 traffic, so matching these patterns can highlight suspicious local communication setup. The detection relies on Windows named pipe event logging (e.g., Sysmon pipe_created events) and evaluates PipeName strings while excluding a small set of known benign pipe names and Websense-related activity.
Reporting behind it
- svch0st.medium.comhttps://svch0st.medium.com/guide-to-named-pipes-and-hunting-for-cobalt-strike-pipes-dc46b2c5f575
- gist.github.comhttps://gist.github.com/MHaggis/6c600e524045a6d49c35291a21e10752
- github.comhttps://github.com/SigmaHQ/sigma/blob/master/rules/windows/pipe_created/pipe_created_hktl_cobaltstrike_susp_pipe_patterns.yml
Changelog
v2- v2Candidate ingested via manual entry.2026-07-31
- v1No changelog recorded for this version.2026-07-30
Detection content is published as a reviewed draft. Tune thresholds and exclusions against your own telemetry before enabling this rule for alerting.
title: "Windows Named Pipe Creation: Cobalt Strike Malleable Profile PipeName Patterns"
id: 505c4e26-df4f-41c1-8968-d2074c945b24
related:
- id: 0e7163d4-9e19-4fa7-9be6-000c61aad77a
type: similar
- id: d5601f8c-b26f-4ab0-9035-69e11a8d4ad2
type: similar
- id: 85adeb13-4fc9-4e68-8a4a-c7cb2c336eb7
type: derived
status: test
description: This rule identifies Windows named pipe creation events where the PipeName matches specific prefixes and values associated with Cobalt Strike malleable C2 profile configurations. Named pipes are commonly used for covert inter-process communication and staged C2 traffic, so matching these patterns can highlight suspicious local communication setup. The detection relies on Windows named pipe event logging (e.g., Sysmon pipe_created events) and evaluates PipeName strings while excluding a small set of known benign pipe names and Websense-related activity.
references:
- https://svch0st.medium.com/guide-to-named-pipes-and-hunting-for-cobalt-strike-pipes-dc46b2c5f575
- https://gist.github.com/MHaggis/6c600e524045a6d49c35291a21e10752
- https://github.com/SigmaHQ/sigma/blob/master/rules/windows/pipe_created/pipe_created_hktl_cobaltstrike_susp_pipe_patterns.yml
author: Florian Roth (Nextron Systems), Christian Burkard (Nextron Systems), Huntrule Team
date: 2021-07-30
modified: 2024-01-26
tags:
- attack.privilege-escalation
- attack.stealth
- attack.t1055
- stp.1k
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 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_malleable_profile_generic:
- PipeName|startswith:
- \DserNamePipe
- \f4c3
- \f53f
- \fullduplex_
- \mojo.5688.8052.183894939787088877
- \mojo.5688.8052.35780273329370473
- \MsFteWds
- \msrpc_
- \mypipe-f
- \mypipe-h
- \ntsvcs
- \PGMessagePipe
- \rpc_
- \scerpc
- \SearchTextHarvester
- \spoolss
- \win_svc
- \win\msrpc_
- \windows.update.manager
- \wkssvc
- PipeName:
- \demoagent_11
- \demoagent_22
selection_malleable_profile_catalog_change_listener:
PipeName|startswith: \Winsock2\CatalogChangeListener-
PipeName|endswith: -0,
filter_main_generic:
PipeName:
- \wkssvc
- \spoolss
- \scerpc
- \ntsvcs
- \SearchTextHarvester
- \PGMessagePipe
- \MsFteWds
filter_optional_websense:
Image|contains:
- :\Program Files\Websense\
- :\Program Files (x86)\Websense\
PipeName|startswith:
- \DserNamePipeR
- \DserNamePipeW
condition: 1 of selection_malleable_profile_* and not 1 of filter_main_* and not 1 of filter_optional_*
falsepositives:
- Chrome instances using the exact same pipe name "mojo.xxx"
- Websense Endpoint using the pipe name "DserNamePipe(R|W)\d{1,5}"
- Some applications may just coincidentally use the pipe names which contain the same prefix as the ones used by CobaltStrike, e.g. "f4c3"
level: high
license: DRL-1.1