Active
--:--:-- UTCSyed Dayaan Shah
← Back to case filesCase · NET-022
Network ForensicsSeverity · critical1-day forensic exercise

Packet inspection — hunting a C2 beacon inside noisy egress

Given a pcap-style export from a compromised endpoint, isolated a beaconing session by its jitter pattern and payload footprint, then wrote egress-filter and JA3-fingerprint rules that would have blocked the initial callback.

Evidence · PCAP review · periodic beacon isolatedLIVE
Wireshark · capture-042.pcapngFilter: ip.addr == 199.83.140.14
No.TimeSourceDestinationProtoLenInfo
420.00010.4.12.7199.83.140.14TLSv1.3128Application Data
4342.03110.4.12.7199.83.140.14TLSv1.3126Application Data
4484.06210.4.12.7199.83.140.14TLSv1.3128Application Data
45126.09810.4.12.7199.83.140.14TLSv1.3127Application Data
46168.12110.4.12.7199.83.140.14TLSv1.3126Application Data
47168.41210.4.12.78.8.8.8DNS72Standard query A

Δt ≈ 42.0s ± 0.03 · payload 126–128B · classic C2 beacon pattern.

Beacon interval

42s ±3s

JA3 matched

Yes

Detection rules added

3

Re-infections

0

[01]Objective

Find a low-and-slow command-and-control beacon hidden in normal-looking outbound HTTPS.

[02]Live Lab · C2 beacon hunt lab
Interactive · runs in your browser
  1. 01 · Brief
  2. 02 · Your move
  3. 03 · Result
  4. 04 · How I stopped it
  5. 05 · How you prevent it
Stage 1 / 5 · Brief

An endpoint is behaving oddly. You have five flows from the last 10 minutes of egress. One is a C2 beacon hidden in TLS traffic.

Look for the pattern real toolkits leak — regular interval, small payload, uninteresting destination that almost looks legit.

[03]Stack · Tools & Platforms

Tools

  • Wireshark
  • Zeek
  • JA3 fingerprints
  • PowerShell

Platforms

  • Palo Alto NGFW
  • Zeek
  • Windows endpoint
[04]Method
  1. 01

    Grouped connections by destination + interval; flagged flows with sub-second jitter and consistent small payloads.

    Fig · 01 · JA3 match · Cobalt Strike profileLIVE
    JA3 fingerprint lookuptls.handshake · client hello

    Observed JA3

    72a589da586844d7f0818ce684948eea

    Observed JA3S

    b3d5f9c2ee1af0dc31e8ef4a3ffb1a24

    Cipher suite

    TLS_AES_128_GCM_SHA256

    SNI

    cdn-static-updates[.]net

    ▲ MATCH · malware profile

    Cobalt Strike · Malleable C2 profile
    (SalesForce / abuse.ch feed · 4,182 seen)

    Recommended action

    • Isolate host WKS-042
    • Block 199.83.140.14 at perimeter
    • Add JA3 to Suricata block list
  2. 02

    Correlated TLS ClientHello fingerprints (JA3) against known toolkits — matched a Cobalt Strike profile.

  3. 03

    Blocked destination at NGFW; added JA3 hash to detection rules across the fleet.

    Fig · 03 · EDR · host isolated in minutesLIVE
    Defender for Endpoint · Device WKS-042
    ISOLATED· since 14:07:12 UTC

    Device

    WKS-042

    User

    a.patel

    OS

    Windows 11 · 23H2

    Risk

    HIGH

    Response timeline

    1. 14:04:00 · Beacon detected (JA3 match)
    2. 14:05:22 · Analyst triage started
    3. 14:07:12 · Network isolation applied
    4. 14:09:40 · Memory dump captured
    5. 14:22:04 · Host re-imaged, ticket closed
[05]Outcome

Beacon identified; JA3 fingerprint + destination pushed to blocklist; endpoint re-imaged and monitored.

[06]Lessons learned
  • Regular interval + tiny payload = beacon, even at TLS. Metadata is enough.
  • JA3 fingerprints beat IP blocklists because attacker infra rotates faster than lists refresh.

Next case · IAM-014

Entra ID Conditional Access hardening

Open →