Repository navigation
docs(adr): ADR-0095, run Sliver as the range C2 on the attack VM - #1192
Merged
Merged
Conversation
ADR-0007 and ADR-0017 name a C2 on ifrit without choosing one. This picks Sliver as the default framework, run on the attack VM inside the range so its callbacks cross the segment the SOC and Zeek watch, with Mythic named as a per-exercise fallback. The channel is chosen to be representative and well-signatured so a missed detection is a real gap, not an artifact of an exotic tool. No new firewall rule; nothing reaches the house. Refs #421. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A4769sNhNE79DH3SBN4YXx
There was a problem hiding this comment.
🟡 Changes recommended
It references unmerged exercise documentation and incorrectly assigns C2 operation to the defensive analyst workstation.
2 open findings
What changed in this PR
Adds ADR-0095, selecting Sliver as the range’s default C2 framework.
Changes:
- Documents Sliver’s placement, isolation, fallback, and operational rationale.
- Updates README ADR counts from 94 to 95.
| File | Description |
|---|---|
README.md |
Updates ADR inventory counts. |
docs/adr/0095-run-sliver-as-the-range-c2-on-the-attack-vm.md |
Adds the Sliver C2 decision. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Copilot's review of #1192. ADR-0014 names the C2 operator's interface as reached from a Hicks workstation over 50 -> 30, and ADR-0091 makes garuda defensive-only, so the console is driven from Hicks, not the analyst workstation. The two docs/exercises/ links are dropped to prose so this ADR does not depend on the still-open #1191 and never carries a broken link on main. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A4769sNhNE79DH3SBN4YXx
# Conflicts: # README.md
Owner
Author
|
Lint failed on 5e10bb0 (the merge-from-main commit) because pulling the Generated by Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

What changed
Docs only. Adds
docs/adr/0095-run-sliver-as-the-range-c2-on-the-attack-vm.md, and bumps README's ADR count from 94 to 95 socheck_docs.pypasses.The ADR chooses the command-and-control framework ADR-0007 and ADR-0017 call for on
ifritbut never name:security.mdand thedocs/exercises/rules.Alternatives considered (Mythic as default, Metasploit's handler, no decision) are recorded with why each was turned down.
Why
Needed before the range is built so the playground runbook's §5 and the first exercises have a concrete C2 to install. Refs #421, and pairs with the exercise log in #1191.
Blast radius
None. This changes documentation only. The decision explicitly adds no firewall rule and no path into the house.
secrets/*.sops.yamlVerification
scripts/check_docs.pypasses:docs OK — 158 Prometheus + 20 Loki rules, 8 dashboards, 156 panels, 11 assertions. The ADR number matches its filename and README's count was updated to 95.markdownlint-cli2reports 0 errors on the ADR and README. Local lint's 12 Docker-based checks were skipped; I checked the ADR for trailing whitespace by hand (none). Every relative link target exists.🤖 Generated with Claude Code
https://claude.ai/code/session_01A4769sNhNE79DH3SBN4YXx
Generated by Claude Code