0.2_Red_Team_Workspace_Cheatsheet

Red Team Workspace Cheatsheet

BLUF: A clean workspace keeps you fast, calm, and report-ready. During an engagement, your job is to make every note, artifact, screenshot, and command easy to find, easy to verify, and easy to hand off.

Core Rules

  1. One engagement = one workspace
  2. One fact = one canonical home
  3. Raw evidence stays raw
  4. Notes describe secrets; notes do not store secrets
  5. If future-you cannot find it in 30 seconds, your structure is wrong

Engagement Root Structure

engagement-name/
├── 00_admin/
│   ├── scope.md
│   ├── roes.md
│   ├── contacts.md
│   └── timeline.md
├── 01_notes/
│   ├── daily/
│   ├── hosts/
│   ├── findings/
│   └── attack-paths/
├── 02_scans/
│   ├── external/
│   ├── internal/
│   ├── web/
│   └── cloud/
├── 03_evidence/
│   ├── screenshots/
│   ├── requests/
│   ├── terminal-logs/
│   ├── pcaps/
│   └── loot/
├── 04_payloads/
│   ├── templates/
│   ├── staging/
│   └── outputs/
├── 05_reporting/
│   ├── drafts/
│   ├── findings/
│   ├── diagrams/
│   └── appendices/
└── 99_archive/

Quick Logic

Folder What goes there What does not go there
00_admin/ Scope, ROE, milestones, contact notes Findings and shell output
01_notes/ Human-readable thinking and operator notes Raw screenshots, binaries, creds
02_scans/ Scanner output and enumeration data Final write-up prose
03_evidence/ Screenshots, terminal transcripts, raw proof Cleaned summaries only
04_payloads/ Templates and generated operation artifacts Long-term evidence
05_reporting/ Report-ready material Unsorted scratch notes

Obsidian Vault Layout

Use the vault for thinking, linking, and triage.

01_notes/
├── daily/
│   ├── 2026-04-08.md
│   └── 2026-04-09.md
├── hosts/
│   ├── host-app-01.md
│   ├── host-dc-01.md
│   └── host-vpn-01.md
├── findings/
│   ├── RT-F01-unauthenticated-admin-access.md
│   └── RT-F02-excessive-ad-permissions.md
└── attack-paths/
    └── ap-initial-access-to-domain-admin.md
Note Type Naming Pattern Purpose
Daily log YYYY-MM-DD.md Running operator log
Host note host-<label>.md Per-system context
Finding draft RT-F##-<slug>.md Evidence-to-report bridge
Attack path ap-<slug>.md Multi-step chain documentation
Admin note <topic>.md Scope, timing, coordination

Daily Note Template

# 2026-04-08

## Objectives
- Validate external attack surface
- Confirm web auth boundary assumptions

## Activity Log
- 09:10 - Session started; tmux workspace created
- 09:32 - Confirmed host inventory mismatch with provided scope
- 10:05 - Captured first evidence set for RT-F01

## Evidence Created
- screenshot-rt-f01-login-bypass-20260408-1007.png
- terminal-rt-f01-repro-20260408-1011.log

## Open Questions
- Is `admin.example` in scope?
- Is the VPN user set shared with the blue team?

## Next Actions
- Verify whether bypass survives SSO flow
- Promote notes into finding draft

Host Note Template

# host-app-01

## Role
Internet-facing application server

## Identifiers
- Hostname: app01.example.internal
- IP: 10.10.20.15
- Environment: Production

## Access
- Access method: VPN + HTTPS
- Cred reference: see password manager entry only

## Findings / Observations
- Login flow leaks role data in response body
- File upload endpoint accepts unexpected content types

## Evidence Links
- ../03_evidence/screenshots/screenshot-app01-upload-20260408-1142.png
- ../03_evidence/requests/request-app01-upload-bypass.txt

## Related Notes
- [[RT-F01-unauthenticated-admin-access]]

Obsidian Rules


Naming Convention

Use sortable names everywhere.

<artifact-type>-<target-or-finding>-<yyyymmdd-hhmm>.<ext>

Examples

screenshot-rt-f01-login-bypass-20260408-1007.png
terminal-rt-f01-repro-20260408-1011.log
request-app01-upload-bypass-20260408-1142.txt
pcap-vpn-initial-access-20260408-1320.pcap
loot-host-dc-01-shares-20260408-1545.txt

Naming Rules


tmux / Terminal Control

The terminal is your cockpit. Use it like one.

Session Model

# Create one session per engagement
tmux new -s acme-q2

# Suggested windows
tmux rename-window control
tmux new-window -n recon
tmux new-window -n web
tmux new-window -n loot
tmux new-window -n notes
tmux new-window -n report

Window Roles

Window Purpose
control Scope, quick nav, admin tasks, jump host control
recon Scans, enumeration, background jobs
web Curl, proxies, app testing helpers
loot Reviewing outputs and evidence movement
notes Obsidian, markdown cleanup, timeline sync
report Finding drafts and appendix assembly

Pane Discipline

Logging Commands

# Record a clean transcript for a finding repro
script -a ../03_evidence/terminal-logs/terminal-rt-f01-repro-$(date +%Y%m%d-%H%M).log

# Stop recording
exit

# Save command output directly to evidence
curl -isk https://target.example/login > ../03_evidence/requests/request-login-check-$(date +%Y%m%d-%H%M).txt

Terminal Rules


Evidence Handling

Evidence is only useful if someone else can trust and follow it.

Minimum Evidence Packet for a Finding

  1. Short summary of what was proven
  2. Target identifier
  3. Timestamp
  4. Raw command or raw request/response
  5. Output or screenshot
  6. Operator note explaining why it matters

Screenshot Rules

Raw vs. Promoted Evidence

Stage Description
Raw Original logs, requests, screenshots, pcaps
Promoted The exact subset attached to a finding
Report-ready Cleaned narrative plus selected proof

Fast Promotion Workflow

raw artifact -> daily note mention -> finding draft -> report evidence block

Reporting Handoff

Your notes should already be halfway to the report.

Finding Draft Skeleton

# RT-F01 - Unauthenticated Admin Access

## Summary
Unauthenticated users can access the administrative dashboard through an alternate route.

## Affected Assets
- host-app-01

## Reproduction
1. Request `/alt-admin`
2. Observe `200 OK`
3. Access privileged functions without prior authentication

## Evidence
- ../03_evidence/requests/request-alt-admin-20260408-1007.txt
- ../03_evidence/screenshots/screenshot-rt-f01-admin-panel-20260408-1008.png
- ../03_evidence/terminal-logs/terminal-rt-f01-repro-20260408-1011.log

## Impact
Unauthorized users can access administrative functions and sensitive data.

## Remediation Direction
Enforce centralized authorization checks on all privileged routes.

End-of-Day Handoff Checklist


Anti-Patterns

Anti-Pattern Why it hurts
Dumping everything into one markdown file You cannot hand off or search effectively
Saving screenshots as image1.png Evidence becomes meaningless within hours
Storing credentials in notes Creates unnecessary risk and leakage paths
Keeping raw evidence only in shell scrollback Proof disappears when the session dies
Writing the report from memory at the end Gaps, errors, and weak remediation follow

Bootstrap Commands

ENG="acme-q2"

mkdir -p "$ENG"/{00_admin,01_notes/{daily,hosts,findings,attack-paths},02_scans/{external,internal,web,cloud},03_evidence/{screenshots,requests,terminal-logs,pcaps,loot},04_payloads/{templates,staging,outputs},05_reporting/{drafts,findings,diagrams,appendices},99_archive}

tmux new -d -s "$ENG"
tmux rename-window -t "$ENG":1 control
tmux new-window -t "$ENG" -n recon
tmux new-window -t "$ENG" -n web
tmux new-window -t "$ENG" -n loot
tmux new-window -t "$ENG" -n notes
tmux new-window -t "$ENG" -n report

echo "Workspace ready: $ENG"

Final Mental Model

Workspace discipline is operational discipline.
If your notes, evidence, and terminal flow are structured from the start, reporting becomes assembly instead of archaeology.