threat-hunting logo

threat-hunting

Proactive threat hunting, IOC extraction, MITRE ATT&CK mapping, behavioral anomaly detection, log analysis correlation

SKILL.md

Full skill instructions

Threat Hunting & Detection Engineering

When to Activate

  • Hypothesis-driven hunting across endpoint, network, cloud, and identity telemetry
  • Writing & shipping detections (Sigma + correlation) as version-controlled code in CI
  • Mapping & measuring coverage against MITRE ATT&CK v18 (Detection Strategies / Analytics)
  • Hunting Windows post-exploitation: ETW/AMSI tampering, LSASS dumping, LOLBins, injection
  • Hunting C2 in encrypted traffic: JA4+/JA4X fingerprints, beaconing, DNS tunneling
  • Hunting cloud-identity attacks: Entra device-code/OAuth phishing, PRT theft, CloudTrail abuse
  • Purple-team validation: emulate ATT&CK with Atomic Red Team/Caldera, find detection gaps
  • Triaging EVTX/Zeek/CloudTrail offline during IR without a SIEM

Technique Map

TechniqueATT&CKCWEReferenceScript
Hypothesis-driven hunt loop (PEAK/TaHiTI)TA0043CWE-778references/methodology-hunt-loop.md-
ATT&CK v18 Detection-Strategies / Analytics mappingTA0043CWE-778references/methodology-hunt-loop.mdscripts/coverage_matrix.py
Detection-as-Code CI (lint + compile)TA0043CWE-778references/methodology-hunt-loop.mdscripts/dac_validate.py
Sysmon 15 PPL + tamper/visibility-gapT1562.001CWE-693references/windows-endpoint-hunting.mdscripts/sysmon_config_2025.xml
ETW / AMSI in-memory patch detectionT1562.001, T1562.002CWE-693references/windows-endpoint-hunting.mdscripts/evtx_hunt.py
LSASS credential-access handle huntT1003.001CWE-522references/windows-endpoint-hunting.mdscripts/evtx_hunt.py
LOLBin / process-tree anomaly huntT1218, T1105, T1059CWE-78references/windows-endpoint-hunting.mdscripts/evtx_hunt.py
Sigma rule + correlation engineeringTA0043CWE-778references/sigma-rule-engineering.mdscripts/dac_validate.py
EVTX triage (Hayabusa/Chainsaw/Velociraptor)TA0043CWE-778references/sigma-rule-engineering.mdscripts/sigma_pipeline.sh
JA4+/JA4X C2 fingerprintingT1071.001CWE-300references/network-c2-hunting.mdscripts/beacon_hunter.py
Beaconing / long-conn / prevalence (RITA-style)T1071, T1571CWE-940references/network-c2-hunting.mdscripts/beacon_hunter.py
DNS tunneling / DGA / DoH abuseT1071.004, T1572CWE-940references/network-c2-hunting.mdscripts/beacon_hunter.py
Entra device-code / OAuth consent phishingT1528, T1566CWE-287references/cloud-identity-hunting.mdscripts/entra_hunt.kql
PRT theft / token replayT1550.001CWE-522references/cloud-identity-hunting.mdscripts/entra_hunt.kql
AWS CloudTrail abuse / log tamperingT1078.004, T1098, T1562.008CWE-269references/cloud-identity-hunting.mdscripts/cloudtrail_hunt.py
Atomic Red Team / Caldera validationTA0043CWE-778references/purple-team-validation.mdscripts/coverage_matrix.py
Coverage matrix + ATT&CK Navigator + gap reportTA0043CWE-778references/purple-team-validation.mdscripts/coverage_matrix.py

Quick Start

# 0. Deploy hunting telemetry baseline (Sysmon 15+, PPL self-protected)
sysmon -accepteula -i scripts/sysmon_config_2025.xml      # or: sysmon -c <file> to update

# 1. Offline endpoint triage over collected EVTX (no SIEM)
python3 scripts/evtx_hunt.py /cases/host01/EVTX --min-severity medium --json host01.json

# 2. Network: hunt C2 beacons / DNS tunneling over Zeek logs (+ optional JA4 blocklist)
zeek -r capture.pcap LogAscii::use_json=T
python3 scripts/beacon_hunter.py --conn conn.log --dns dns.log \
        --ja4-blocklist bad_ja4.txt --min-score 0.7

# 3. Cloud/identity: paste scripts/entra_hunt.kql into Sentinel/Defender;
#    triage AWS offline:
python3 scripts/cloudtrail_hunt.py /cases/cloudtrail/ --json ct_findings.json

# 4. Detection-as-Code: lint + compile your Sigma repo for CI (fail-fast)
python3 scripts/dac_validate.py rules/ --backend splunk --pipeline sysmon --fail-on-error
./scripts/sigma_pipeline.sh rules/ build/ splunk microsoft365defender elasticsearch

# 5. Purple-team validate + measure coverage (ATT&CK v18 Navigator layer + gaps)
Invoke-AtomicTest T1003.001 -TestNumbers 1,2,3   # lab only; -Cleanup after
python3 scripts/coverage_matrix.py --rules rules/ --atomic-results atomic_results.json \
        --watchlist watchlist.txt --navigator-out attack_layer.json --gaps-out gaps.csv

OPSEC & Detection (summary)

TechniqueTelemetry / IOCDetection (Sigma / EDR)OPSEC note
ETW/AMSI patchRWX in ntdll/amsi; ScriptBlock w/ AmsiScanBuffer+VirtualProtectSigma AMSI/ETW patch rule; Sysmon EID 25; ETW-TI (kernel)Userland patch defeats single source — correlate EID25 + ETW-TI + behavior
Sysmon killSystem 7036/7034, SysmonDrv unload, EPS drop to 0Visibility-gap metric on chatty hostsSysmon 15 is PPL; attacker kills agent instead — alert on stop/unload
LSASS dumpEID 10 handle to lsass + .dmp writeLSASS-access Sigma; access-mask + non-system sourceBaseline your own EDR/AV SourceImage set first or you flood the SOC
LOLBin abusecertutil/mshta/regsvr32 + http/decode/scrobjLOLBin Sigma; parent→child tree anomaliesHunt cold data first; live triage tips an EDR-aware operator
Beaconingperiodic intervals, uniform sizes, low prevalencebeacon_hunter.py CV<0.3; RITA; long-conn on non-interactive portNeed days of logs — small PCAPs inflate FPs
JA4X C2randomized certs sharing one JA4X (Sliver/Havoc)JA4 segment-pivot; JA4X blocklist at TLS-terminating proxyTLS 1.3 encrypts certs — capture at egress/proxy, don't block on FP alone
DNS tunnelinglong/high-entropy subdomains, TXT volume, NXDOMAIN spikesDNS entropy/volume scoring; DoH-to-public SigmaBaseline normal long-FQDN apps (CDNs) before alerting
Device-code phishdeviceCode sign-in, broker/OfficeHome AppId, new ASNentra_hunt.kql #1+#2; Elastic open rulesBaseline sanctioned device-code apps; not every device-code is evil
PRT theftprimaryRefreshToken from multi-geo same dayPRT KQL + LSASS/cloudAP endpoint joinControl-plane is the ONLY evidence — retain logs ≥90d before you need them
CloudTrail abuseStopLogging/DeleteTrail, CreateAccessKey for others, Describe* burstcloudtrail_hunt.py; Athena tamper queryAttackers disable logging early; enable org-wide all-region trail up front

Deep Dives

  • references/methodology-hunt-loop.md — PEAK/TaHiTI hunt loop, ATT&CK v18 Detection Strategies (DETxxxx) & Analytics (ANxxxx) replacing legacy data sources, Detection-as-Code CI/CD (PTEFv4), visibility-gap detection.
  • references/windows-endpoint-hunting.md — Sysmon 15 PPL & tamper detection, ETW/AMSI in-memory patch detection (ETW-TI, EID 25, ScriptBlock), LSASS handle hunting, LOLBins & process-tree anomalies.
  • references/sigma-rule-engineering.md — Sigma rule anatomy, correlation rules (value_count/temporal), pySigma/sigma-cli compile, Hayabusa/Chainsaw/Velociraptor 0.74 native-Sigma EVTX triage, AI-assisted authoring (SigmaGen/Uncoder).
  • references/network-c2-hunting.md — JA4+/JA4S/JA4H/JA4X fingerprinting, Sliver/Havoc shared JA4X, RITA-style beaconing & long-connection stats, DNS tunneling/DGA/DoH, C2 framework signature cheat-sheet.
  • references/cloud-identity-hunting.md — Entra device-code phishing (STORM-2372, Tycoon2FA, EvilTokens), OAuth consent abuse, PRT theft, Graph enumeration, AWS CloudTrail abuse & tampering.
  • references/purple-team-validation.md — Atomic Red Team unit tests, MITRE Caldera chained emulation, ATT&CK v18-aware coverage matrix, Navigator layer generation, prioritized gap analysis.