Skip to content

v4 tradecraft modernization: 8 workstreams (AD CS, LLM, cloud identity, modern C2, evasion, Kerberos, browser ext, EDR policy)#36

Merged
AndrewAltimit merged 3 commits intomainfrom
tradecraft-modernization
Apr 20, 2026
Merged

v4 tradecraft modernization: 8 workstreams (AD CS, LLM, cloud identity, modern C2, evasion, Kerberos, browser ext, EDR policy)#36
AndrewAltimit merged 3 commits intomainfrom
tradecraft-modernization

Conversation

@AndrewAltimit
Copy link
Copy Markdown
Owner

Summary

Implements all 8 workstreams from the tradecraft modernization PRD, bringing the repo's technique catalog from a 2017-2022 snapshot to 2025-2026 frontier tradecraft.

  • 380 files, 48,654 insertions across 3 commits
  • All workstreams are ContainmentGuard-gated (loopback-only, lab fixtures required)
  • Every offensive module ships with a paired detection/ directory (Sigma/KQL rules, false-positive notes) -- CI gate compliant

Workstreams

WS-A -- Modern C2 Architecture

  • 5 pluggable transports: WebSocket, gRPC, SMB/Unix pipe, DNS-over-HTTPS, HTTP polling
  • Dynamic YAML transport profiles with hot-reload (watchdog-based)
  • P2P relay chains (depth >=2) with topology graph API
  • Extended C2 server: WebSocket endpoint, relay topology, profile reload

WS-B -- Modern Evasion (Rust)

  • syscalls-hwbp/: DR0-DR3 + VEH hardware-breakpoint syscall dispatch -- bypasses userland EDR hooks without memory modification
  • sleep-mask-modern/: Cronos (fiber + RC4 stack encryption), RustyCronos (pure-Rust), HWBP-driven sleep -- supersedes Ekko/Foliage
  • threadless-inject/: module stomping, Phantom DLL hollowing (TxF), DLL-notification-callback hijack (TheirHazard)
  • etw-ti-aware/: passive ETW-TI detection, 20 EDR provider GUIDs, hooked-stub fingerprinting
  • byovd/: Python orchestration framework -- hash-only manifest, HVCI blocklist checker, lab-gated API
  • 86 new Rust unit tests (308+ total across workspace)

WS-C -- AD CS ESC1-15

  • LDAP-based template enumerator with JSON output schema
  • 15 individual exploit modules (esc01/ through esc15/), each with exploit.py, README, remediation snippet, detection rules
  • chain.py: ESC1 -> TGT/PFX -> ccache -> impacket-secretsdump orchestration
  • 3-VM Vagrant lab (infra/lab/ad-cs/): dc01 (DC + Enterprise CA) + ws01 + ws02, domain corp.lab.local
  • make lab-adcs-up / lab-adcs-down / lab-adcs-destroy

WS-D -- Modern Cloud Identity

  • WIF wildcard-sub claim abuse + cross-cloud pivot; mock OIDC issuer on 127.0.0.1:9300
  • OIDC trust confusion -- fork-PR/CodeCov pattern
  • Golden SAML (xmlsec1 XML-DSig) + Storm-0558-style OIDC token forging
  • Entra 2026 reality check: 19-technique viability matrix (docs/analysis/entra-2026-state-of-play.md)
  • Databricks OAuth OBO chain abuse + token-audience confusion
  • New lab fixtures: mock-saml (9400), mock-databricks (9500)
  • CI gate extended for AWS account IDs, GCP project IDs, Azure subscription UUIDs

WS-E -- LLM and Agent Abuse

  • Indirect injection corpus: 51 payloads across 7 channels (PDF, DOCX, HTML, email plaintext/HTML, calendar, image alt-text)
  • MCP server abuse: tool poisoning, capability confusion, rug-pull (malicious vs benign server side-by-side)
  • Agent action confusion: filesystem exfil, WebFetch confused-deputy, tool-result spoofing PoCs + transcript detector
  • Eval benchmark harness with regression-tracked JSON output
  • New containment guard: assert_llm_endpoint_is_lab() added to tools/lib/containment.py
  • Lab: Ollama + copilot Flask app (port 8080), make lab-llm-up

WS-F -- Modern Kerberos / Lateral Movement

  • S4U2self/S4U2proxy (machine account -> impersonate DA without Golden Ticket)
  • RBCD attack chain with raw security-descriptor construction via struct
  • NTLM relay: SMB->LDAP cross-protocol, LDAPS channel-binding bypass, NTLM fallback analysis
  • Targeted roasting with priority scoring + hardware-grounded crack-time estimator
  • 10 Sigma rules + KQL for Defender for Identity

WS-G -- Browser Extension Supply-Chain (MV3)

  • Lab extension catalog: cookie theft, session hijack, form-grab, DNR redirect abuse
  • Cyberhaven-pattern update-hijack: benign v1.0 -> malicious v1.1, mock Web Store, permission_differ.py (exits 1 for CI)
  • Manifest risk scorer (0-10, 11 risk rules) + CDP runtime monitor
  • docs/analysis/manifest-v3-capabilities.md

WS-H -- EDR Silencing via Policy

  • WDAC policy generator: deny-by-hash, allow-by-cert, downgrade-to-audit (XML source only, no compiled binaries)
  • WDAC policy analyzer: enforcement mode, rule weaknesses, refuses system-path policies
  • PPL bypass research + complete patch timeline (all pure-software bypasses patched 2022+)
  • EDR coverage map: 11 named gap advisories, vendor-name-free behavioral profiles

Infrastructure updates

  • README.md: full tools catalog, updated directory tree, 11-service lab table
  • CLAUDE.md: Where Things Live + tools index updated for all v4 additions
  • Makefile: lab-llm-up/down, lab-saml-up/down, lab-databricks-up/down, lab-oidc-up/down
  • 7 new methodology docs in docs/methodology/, 2 new analysis docs in docs/analysis/

Test plan

  • cd tools/rust && cargo test -- 308+ tests pass
  • EXPLOIT_LAB_ACTIVE=1 python tools/ci/check_detection_pairing.py -- all new modules have detection/ dirs
  • python tools/ci/check_no_real_tenants.py -- no real tenant/cloud IDs committed
  • python tools/ci/check_no_committed_drivers.py -- no *.sys files
  • make lab-up -- base lab still starts cleanly
  • make lab-adcs-up -- requires vagrant + VirtualBox
  • make lab-llm-up -- requires docker + ~5GB for Ollama model

Generated with Claude Code

AI Agent Bot and others added 3 commits April 20, 2026 12:50
Adds tools/edr-silencing/ with three sub-modules covering the policy layer
complement to tools/rust/telemetry-patch/:

- wdac-abuse/: WDAC policy XML generator (deny-by-hash, allow-by-cert,
  downgrade-to-audit modes) and analyzer; lab sample policies; Sigma rules
  for Event 3089/3099 policy changes and audit-mode deployment detection.

- ppl-bypass/: PPL process enumeration and bypass technique advisory
  (documentation only — no exploit code); bypass_timeline.md covering
  mimidrv through BYOVD with patch status; Sigma rules for driver load
  and process-access attempts against protected processes.

- blind-spot-enum/: EDR telemetry coverage mapper (ETW providers, kernel
  callbacks, userland hooks, AMSI, network filter); coverage gap advisor
  with gap IDs tied to specific attacker capabilities; three EDR behavioral
  profiles (vendor-name-free); Sigma rules for security-tool enumeration.

All Python tools use ContainmentGuard.assert_offline_vm(). No compiled
policy binaries (.p7/.cip), no .sys drivers. Detection directories
present in all three sub-modules, satisfying check_detection_pairing.py.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…s, lab catalog, defender tooling

Adds complete WS-G workstream: lab malicious extension catalog demonstrating
what MV3 retained (cookie theft via chrome.cookies HttpOnly bypass, session
hijacking via webRequest observation, form credential grabbing via content
script, DNR-based traffic redirection), end-to-end Cyberhaven-style update
hijack simulation with mock Web Store, and defender-side static/runtime tooling.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…sive research

WS-A: Modern C2 — 5 pluggable transports (WebSocket, gRPC, SMB pipe, DoH, HTTP
polling), dynamic YAML profile hot-reload, P2P relay chains (depth ≥2), extended
operator API for relay topology and profile switching.

WS-B: Modern evasion — HW-BP (DR0–DR3+VEH) syscall dispatch, Cronos/RustyCronos/
HWBP sleep masks (supersedes Ekko/Foliage), module stomping + TxF hollowing +
DLL-notify threadless injection, ETW-TI aware provider enumeration, BYOVD
orchestration framework (hash-only manifest, HVCI blocklist). 86 new Rust tests.

WS-C: AD CS ESC1–15 — full Python exploitation toolkit, LDAP enumerator, 15
exploit modules, chain.py (ESC1→TGT/PFX→ccache), Vagrant 3-VM lab
(corp.lab.local), 30+ Sigma/KQL rules across all ESC variants.

WS-D: Cloud identity — WIF wildcard-sub abuse, OIDC trust confusion (fork-PR/
CodeCov pattern), Golden SAML (xmlsec1) + Storm-0558 OIDC token forging, Entra
2026 19-technique viability matrix, Databricks OBO chain abuse. New lab fixtures:
mock-oidc-issuer (9300), mock-saml (9400), mock-databricks (9500). Extended CI
gate for AWS/GCP/Azure IDs.

WS-E: LLM/agent abuse — 51-payload injection corpus (7 channels), MCP server tool
poisoning/rug-pull, agent confused-deputy PoCs, transcript detector, eval benchmark
harness. New assert_llm_endpoint_is_lab() containment guard. Lab: Ollama + copilot
Flask app (port 8080).

WS-F: Kerberos — S4U2self/S4U2proxy, RBCD with raw SD construction, NTLM relay
(SMB→LDAP, LDAPS channel-binding), targeted roasting with hardware-grounded crack-
time estimator. 10 Sigma rules + KQL for Defender for Identity.

WS-G: Browser extension supply-chain — MV3 extension catalog (cookie theft,
session hijack, form-grab, DNR redirect), Cyberhaven-pattern update-hijack
simulation, manifest risk scorer (0–10), CDP runtime monitor, permission_differ.py
(exits 1 for CI on permission expansion).

WS-H: EDR silencing via policy — WDAC policy generator/analyzer (deny-by-hash,
allow-by-cert, downgrade-to-audit), PPL bypass research + patch timeline, EDR
coverage map with 11 named gap advisories and vendor-name-free behavioral profiles.

Cross-cutting: updated README.md (tools catalog, directory tree, lab services
table), CLAUDE.md (Where Things Live, tools index), Makefile (lab-llm-up/down,
lab-saml-up/down, lab-databricks-up/down, lab-oidc-up/down).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@AndrewAltimit AndrewAltimit merged commit c9677d1 into main Apr 20, 2026
2 checks passed
@AndrewAltimit AndrewAltimit deleted the tradecraft-modernization branch April 20, 2026 18:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant