Skip to content
Back to skills

Hunting C2 Beaconing With Frequency Analysis

ASecurity

'Detects command-and-control beacons in network logs by analyzing connection

  • 22 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 11, 2026
securitypythonbashtestingapisecurity

Works with

  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 11, 2026

npx -y skills add meltedinhex/analyst-ai-pack --skill hunting-c2-beaconing-with-frequency-analysis --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hunting C2 Beaconing With Frequency Analysis?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hunting C2 Beaconing With Frequency Analysis
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/meltedinhex-hunting-c2-beaconing-with-frequency-analysis/badge)](https://www.skillsdirectory.com/skills/meltedinhex-hunting-c2-beaconing-with-frequency-analysis)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hunting-c2-beaconing-with-frequency-analysis
description: 'Detects command-and-control beacons in network logs by analyzing connection
  timing: measuring inter-arrival intervals, accounting for jitter, and scoring regularity per
  source/destination pair to surface periodic callbacks. Activates for requests to hunt C2
  beaconing, find periodic callbacks, or analyze connection-interval regularity.'
domain: cybersecurity
subdomain: threat-hunting
tags:
  - threat-hunting
  - command-and-control
  - beaconing
  - network
  - frequency-analysis
  - jitter
version: 1.0.0
author: analyst-ai-pack
license: Apache-2.0
mitre_attack:
  - T1071.001
  - T1071
  - T1573
d3fend:
  - D3-NTA
  - D3-CA
references:
  - 'MITRE ATT&CK T1071 Application Layer Protocol — https://attack.mitre.org/techniques/T1071/'
  - 'Beaconing detection via inter-arrival timing — https://www.activecountermeasures.com/'
---

# Hunting C2 Beaconing with Frequency Analysis

## When to Use

- You have connection logs (proxy, firewall, Zeek/`conn.log`, NetFlow) and want to find implants
  that call home on a schedule.
- You are testing a hypothesis that a beacon is hiding in normal-looking web traffic.
- You need to rank source→destination pairs by timing regularity, allowing for jitter.

**Do not use** pure interval regularity as a verdict — software update checks, telemetry, and
keep-alives also beacon; combine timing with destination reputation and data volume.

## Prerequisites

- Connection records with timestamp, source, destination (IP/domain), and ideally bytes, over a
  window long enough to capture many callbacks (hours to days).
- A way to enrich destinations (reputation, age, rarity) for follow-up.

## Workflow

### Step 1: Group and order by pair

Bucket connections by (source, destination) and sort timestamps. Require a minimum count so the
interval statistics are meaningful.

### Step 2: Compute inter-arrival intervals

Derive deltas between consecutive connections per pair; the interval distribution reveals
periodicity.

### Step 3: Score regularity with jitter tolerance

A low coefficient of variation (std/mean) of intervals indicates a steady beacon; modern beacons
add jitter, so score on tolerance rather than requiring identical intervals.

```bash
python scripts/analyst.py beacon conn.json --min-events 8
```

### Step 4: Reduce false positives

Down-rank known update/telemetry destinations and CDNs; up-rank rare/young domains, small fixed
payload sizes, and odd ports.

### Step 5: Triage and confirm

For top pairs, pull payloads/JA3, destination intel, and host context; confirm via the C2/beacon
config skills and escalate.

## Validation

- Top candidates show consistently spaced callbacks (low CV) over many events, not a handful.
- Known-benign periodic services are filtered or explained.
- Confirmed beacons corroborate with destination reputation or payload analysis.

## Pitfalls

- Too few events per pair, making the interval statistics noise.
- Requiring perfect periodicity and missing jittered beacons.
- Ignoring data-volume regularity, a strong secondary beacon signal.

## References

- See [`references/api-reference.md`](references/api-reference.md) for the beacon scorer.
- ATT&CK T1071 and inter-arrival timing analysis (linked in frontmatter).

Files in this skill

  • LICENSE340 B
  • SKILL.md3.2 KB
  • references/api-reference.md1.4 KB
  • scripts/analyst.py2.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.