Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.
Start a fresh conversation. Replace the highlighted placeholders.
Use analyzing-cobaltstrike-malleable-c2-profiles to analyze [Malleable C2 profile or Beacon payload] and produce a JSON detection report with extracted HTTP/DNS indicators, Beacon and injection settings, and Suricata-compatible network signatures.
Required inputs
[Malleable C2 profile or Beacon payload]
User-approved starter prompt based on a pinned source version; check current skill requirements before running. Task evidence ↗
SKILL.md
name: analyzing-cobaltstrike-malleable-c2-profilesdescription: Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.domain: cybersecuritysubdomain: malware-analysistags: - cobalt-strike- malleable-c2- c2-detection- beacon-analysis- network-signatures- threat-hunting- red-team-toolsversion: '1.0'author: mahipallicense: Apache-2.0nist_csf: - DE.AE-02- RS.AN-03- ID.RA-01- DE.CM-01mitre_attack: - T1071.001- T1573.002- T1001.003- T1090.004- T1102
Analyzing CobaltStrike Malleable C2 Profiles
Overview
Cobalt Strike Malleable C2 profiles are domain-specific language scripts that customize how Beacon communicates with the team server, defining HTTP request/response transformations, sleep intervals, jitter values, user agents, URI paths, and process injection behavior. Threat actors use malleable profiles to disguise C2 traffic as legitimate services (Amazon, Google, Slack). Analyzing these profiles reveals network indicators for detection: URI patterns, HTTP headers, POST/GET transforms, DNS settings, and process injection techniques. The dissect.cobaltstrike library can parse both profile files and extract configurations from beacon payloads, while pyMalleableC2 provides AST-based parsing using Lark grammar for programmatic profile manipulation and validation.
When to Use
When investigating security incidents that require analyzing cobaltstrike malleable c2 profiles
When building detection rules or threat hunting queries for this domain
When SOC analysts need structured procedures for this analysis type
When validating security monitoring coverage for related attack techniques
Prerequisites
Python 3.9+ with dissect.cobaltstrike and/or pyMalleableC2
Sample Malleable C2 profiles (available from public repositories)
Understanding of HTTP protocol and Cobalt Strike beacon communication model
Network monitoring tools (Suricata/Snort) for signature deployment
PCAP analysis tools for traffic validation
Steps
Install libraries: pip install dissect.cobaltstrike or pip install pyMalleableC2
Parse profile with C2Profile.from_path("profile.profile")
Extract sleep time, jitter percentage, and DNS beacon settings
Analyze process injection settings (spawn-to, allocation technique)
Generate Suricata/Snort signatures from extracted network indicators
Compare profile against known threat actor profile collections
Extract staging URIs and payload delivery mechanisms
Produce detection report with IOCs and recommended network signatures
Expected Output
A JSON report containing extracted C2 URIs, HTTP headers, user agents, sleep/jitter settings, process injection config, spawned process paths, DNS settings, and generated Suricata-compatible detection rules.