hunting-for-cobalt-strike-beacons

Detect Cobalt Strike beacon activity in Zeek logs using TLS fingerprints and timing analysis.

Updated Apr 23, 2026
One-click install
npx skills add https://github.com/YukiIto1999/ctf-sleuth --skill hunting-for-cobalt-strike-beacons
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: hunting-for-cobalt-strike-beacons
Source: https://github.com/YukiIto1999/ctf-sleuth/tree/main/.claude/skills/hunting-for-cobalt-strike-beacons
Command: npx skills add https://github.com/YukiIto1999/ctf-sleuth --skill hunting-for-cobalt-strike-beacons

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

Detects cobalt strike beacon activity in network traffic by correlating TLS fingerprints, JA3S/JARM hashes, HTTP C2 profiles, and beacon timing analysis.

Core Features & Use Cases

  • Detection of default TLS certificate and JA3S/JARM fingerprints
  • HTTP malleable C2 profile matching and timing-based beacon scoring
  • Generates structured reports with suspect destinations and actionable guidance
  • Applicable to SOC threat hunts, incident response, and blue-team exercises

Quick Start

Run the hunter against Zeek logs to produce a structured beacon detection report.

Frequently Asked Questions about hunting-for-cobalt-strike-beacons

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I detect Cobalt Strike beacon activity in Zeek logs?

Detect Cobalt Strike beacon activity in Zeek logs by correlating TLS fingerprints, JA3S/JARM hashes, HTTP C2 profiles, and timing analysis. Running the included Python agent script against ssl.log, conn.log, and http.log generates a structured report for incident response.

Can I use PCAP data to hunt for Cobalt Strike beacons?

You can hunt for Cobalt Strike beacons using PCAP-derived data by applying TLS fingerprint and malleable C2 profile matching. The detection workflow processes extracted network traffic to score beacon-like confidence and identify suspect destinations.

How does JARM hash matching identify Cobalt Strike C2 traffic?

JARM hash matching identifies Cobalt Strike C2 traffic by comparing server TLS fingerprints against known default Cobalt Strike certificates. Correlating these hashes with JA3S data and HTTP profile matching improves detection accuracy during threat hunts.

Do I need Python 3.9 to run Cobalt Strike beacon detection on Suricata logs?

Python 3.9+ is required to run the included agent script for Cobalt Strike beacon detection. The workflow processes Zeek logs including ssl.log, conn.log, and http.log to apply timing analysis and generate actionable incident response reports.

What is the best way to score beacon-like confidence during incident response?

Scoring beacon-like confidence during incident response is best achieved by correlating timing analysis with HTTP malleable C2 profile matching and TLS fingerprints. This multi-signal approach generates structured reports highlighting suspect destinations for blue-team exercises.

Are there limitations to detecting Cobalt Strike beacons using timing analysis?

Timing analysis limitations arise when Cobalt Strike beacons use randomized jitter or non-default malleable C2 profiles, reducing detection confidence. Correlating multiple signals like JA3S hashes and HTTP profiles is necessary to overcome evasion techniques.