← All Threat Hunting ReportsThreat Hunting Exercise

Threat Hunting Exercise: Analyzing IDS JA3/TLS Fingerprint C2 Framework Detection Dataset

This hunt uses a simulated IDS/TLS-inspection dataset (ids_ja3_c2_2022-04-23T110000.json) capturing T1071.001: Web Protocols and T1573.001: Symmetric Cryptography, where an adversary's C2 framework (Cobalt Strike-style) presents a distinctive JA3 client-hello fingerprint during outbound TLS handshakes, even though the certificate itself is valid and the destination domain looks benign.

Step 1: Hypothesis Formation

Hypothesis: A host establishes outbound TLS sessions whose JA3 hash matches a known-malicious C2 framework fingerprint (e.g., default Cobalt Strike Malleable C2 JA3 72a589da586844d7f0818ce684948eea), repeated across multiple sessions to the same or rotating destinations, regardless of the SNI/domain presented. Indicators:

Null Hypothesis: The JA3 hash collision is caused by a legitimate but uncommon TLS client library (e.g., an older Python requests/OpenSSL build) used by an internal automation script. Invalidate by checking the process/host for a known legitimate automation tool matching that TLS stack.

Rationale: As C2 frameworks increasingly use legitimate, trusted certificates and common-looking domains, JA3/JA3S fingerprinting is one of the few remaining network-only signals that survives TLS encryption; this hunt validates its detection value in isolation.

Step 2: Data Sources and Scope

Step 3: Key Findings

Parsed events (7 shown) confirm 22 TLS sessions from a single host all sharing a known-malicious JA3 hash across three rotating destinations.

Timestamp (UTC)Src IPDest IPSNIJA3/JA3SIOC/Why Suspicious?
2022-04-23 11:02:1010.50.7.1945.61.147.20cdn-assets-update[.]comja3=72a5...4eeaFingerprint IOC: JA3 matches a published Cobalt Strike default Malleable-C2 profile.
2022-04-23 11:14:3310.50.7.1945.61.147.20cdn-assets-update[.]comja3=72a5...4eea (same)Repeat session, same JA3, ~12 min later - consistent with a beacon sleep/jitter interval.
2022-04-23 11:45:0210.50.7.1991.219.238.4cloud-metrics-api[.]netja3=72a5...4eea (same)Rotation IOC: same JA3 fingerprint, new destination IP and SNI - infrastructure/domain rotation, fingerprint stays constant since the TLS client library doesn't change.
2022-04-23 12:01:1910.50.7.1991.219.238.4cloud-metrics-api[.]netja3s matches known listenerJA3S (server hello) also matches a cataloged C2 listener signature - corroborates from the server side, not just client side.
2022-04-23 12:30:4410.50.7.19185.174.100.9update-service-cdn[.]comja3=72a5...4eea (same)Third destination in the rotation, same fingerprint - three lookalike domains registered within the prior 10 days per WHOIS.
-10.50.7.19(process check)N/ALegitimacy check IOC: no automation script or legitimate tool on the asset inventory for WKS-SALES-022 uses a matching TLS library; host is a standard user workstation, not a server running scheduled jobs.
2022-04-23 13:00:0010.50.7.19(session summary)N/A22 total sessions across the 2-hour window, all sharing the identical JA3 despite three distinct SNIs and IPs - statistically implausible for organic browser/application diversity.

Validation:

Step 4: Recommendations & Next Steps

Hypothesis confirmed - a known-malicious JA3/JA3S TLS fingerprint was observed across rotating C2 infrastructure from a single compromised host!