Skip to content

feat(entries): add 6 red↔blue pairs across new tactics - #4

Merged
Gerrrt merged 2 commits into
mainfrom
claude/dotfiles-content-expansion-8uafoa
Jun 30, 2026
Merged

feat(entries): add 6 red↔blue pairs across new tactics#4
Gerrrt merged 2 commits into
mainfrom
claude/dotfiles-content-expansion-8uafoa

Conversation

@Gerrrt

@Gerrrt Gerrrt commented Jun 30, 2026

Copy link
Copy Markdown
Collaborator

What

Grows the corpus from 16 → 22 paired concepts, extending it into tactics it didn't cover before — ticket forgery, SYSVOL credentials, local NTDS theft, WMI execution, and the previously-absent Persistence tactic.

Attack (red) Detection (blue) ATT&CK
Golden Ticket (forged TGT) 4769 TGS with no preceding 4768 T1558.001
GPP cpassword (SYSVOL) 5145 SYSVOL Groups.xml read T1552.006
NTDS.dit dump (ntdsutil/VSS) 4688 ntdsutil/vssadmin + 8222 T1003.003
WMI exec (impacket-wmiexec) 4688 WmiPrvSE.exe child shell T1047
Scheduled-task persistence 4698 task created T1053.005
WMI subscription persistence Sysmon 19/20/21 T1546.003

Each detection follows the corpus philosophy — detect the invariant, not the IOC (the RC4 downgrade, the replication-skipping host behaviour, the WmiPrvSE parent, the fileless WMI consumer).

Why these

The existing corpus was heavy on Credential Access / AD path abuse but had no Persistence or Execution coverage and was missing two marquee techniques (Golden Ticket, local NTDS theft). These six fill those gaps with clean, single-invariant detections.

Verification

  • gen-views.sh --check (drift gate, standalone) — pass
  • pairing-graph integrity (every pair: resolves and back-references) — pass
  • slot-coverage ({{slots}} all handled by htpx) — pass
  • bash -n on the scripts — pass

README count + corpus table updated to match.

🤖 Generated with Claude Code


Generated by Claude Code

Grows the corpus from 16 to 22 paired concepts, extending coverage into ticket
forgery, SYSVOL credentials, local NTDS theft, WMI execution, and the previously
absent Persistence tactic:

- golden-ticket ↔ golden-ticket-4769 (T1558.001): forged TGT, detected by 4769
  TGS with no preceding 4768
- gpp-cpassword ↔ gpp-cpassword-5145 (T1552.006): SYSVOL prefs XML read
- ntds-ntdsutil ↔ ntds-ntdsutil-4688 (T1003.003): local NTDS dump via ntdsutil/VSS
- wmiexec-impacket ↔ wmiexec-4688 (T1047): WmiPrvSE child shell
- schtask-persist ↔ schtask-4698 (T1053.005): scheduled-task persistence
- wmi-subscription ↔ wmi-subscription-sysmon (T1546.003): WMI event subscription

All pairs pass the drift gate, pairing-graph, and slot-coverage checks. README
count and corpus table updated.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J8Du71ZBfpnhHui9pmsUJq

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Expands the project’s red↔blue “paired concepts” corpus by adding six new ATT&CK technique pairs across newly covered tactics (notably Persistence and Execution), and updates the README corpus summary/table accordingly.

Changes:

  • Add six new red technique entries (Golden Ticket, GPP cpassword, NTDS.dit theft via ntdsutil/VSS, WMI exec, scheduled-task persistence, WMI subscription persistence).
  • Add six corresponding blue detections (Windows Security 4688/4698/5145/4768+4769, plus Sysmon 19/20/21).
  • Update README corpus count and table to reflect 22 paired concepts and new tactic coverage.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
README.md Updates corpus count/tactics list and adds six new pairs to the table.
entries/red/wmiexec-impacket.md New red entry documenting impacket-based WMI remote execution.
entries/red/wmi-subscription.md New red entry documenting WMI event-subscription persistence.
entries/red/schtask-persist.md New red entry documenting scheduled-task persistence via schtasks.
entries/red/ntds-ntdsutil.md New red entry documenting offline NTDS.dit theft via ntdsutil/VSS.
entries/red/gpp-cpassword.md New red entry documenting SYSVOL GPP cpassword discovery/decrypt workflow.
entries/red/golden-ticket.md New red entry documenting Golden Ticket forging and usage.
entries/blue/wmiexec-4688.md New blue detection for WMI exec via 4688 WmiPrvSE child processes (SPL).
entries/blue/wmi-subscription-sysmon.md New blue detection for WMI subscription persistence via Sysmon WMI eventing (SPL).
entries/blue/schtask-4698.md New blue detection for suspicious scheduled task creation via 4698 (SPL).
entries/blue/ntds-ntdsutil-4688.md New blue detection for NTDS theft behaviors via 4688 + 8222 correlation (SPL).
entries/blue/gpp-cpassword-5145.md New blue detection for GPP XML reads from SYSVOL via 5145 (SPL).
entries/blue/golden-ticket-4769.md New blue detection for TGS activity without preceding TGT issuance (4768/4769 SPL).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread entries/blue/wmi-subscription-sysmon.md Outdated
and alert on the rest. Requires Sysmon with WMI eventing (schema ≥ 4.1).

```spl
index=main (EventCode=20 OR EventCode=21)

```spl
index=main EventCode=4688 Creator_Process_Name="*\\WmiPrvSE.exe"
New_Process_Name IN ("*\\cmd.exe","*\\powershell.exe")

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kept as-is. The IN(...) wildcard caveat applies to the where command's IN() function; this is a base-search IN, where Splunk (6.6+) does expand * in the value list. It's also the established house style in this corpus — the existing potato-seimpersonate-4688 blue entry uses the identical New_Process_Name IN ("*\\cmd.exe","*\\powershell.exe") construct — so changing it here would only introduce inconsistency.


Generated by Claude Code

Comment thread entries/red/wmi-subscription.md Outdated

```sh
nxc smb {{rhost}} -u {{user}} -p {{password}} -M wmi-event -o CONSUMER='powershell -w hidden -enc <b64>'
Register-WmiEvent -Query "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System'" -Action {iex(<payload>)}
Address review on #4:
- wmi-subscription-sysmon: scope the SPL to Sysmon EventCode 20 (the consumer
  carries the payload in Destination); event 21 (binding) has no Destination so
  the regex silently dropped it. Reconcile title/event_ids/prose accordingly and
  note the binding as a separate low-volume alert.
- wmi-subscription (red): replace the session-scoped Register-WmiEvent with
  PowerLurk's Register-MaliciousWmiEvent, which writes a real permanent consumer
  (the entry is about permanent, reboot-surviving persistence).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J8Du71ZBfpnhHui9pmsUJq
@Gerrrt
Gerrrt merged commit 1e04794 into main Jun 30, 2026
1 check passed
@Gerrrt
Gerrrt deleted the claude/dotfiles-content-expansion-8uafoa branch June 30, 2026 05:21
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.

3 participants