Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Red Team Lab

Planejamento de cenários, rastreabilidade MITRE ATT&CK e cadeia de custódia de evidências para laboratórios reproduzíveis.

Red Team Lab coverage dashboard

CI Python MITRE ATT&CK License

Por que este projeto existe

Um bom exercício ofensivo precisa mostrar mais que comandos: escopo, hipótese, técnica, evidência, resultado e limpeza. O Red Team Lab transforma esses elementos em um fluxo verificável e versionável.

O MVP oferece:

  • cenários declarativos em YAML;
  • validação de alvos restritos a loopback, redes privadas e domínios reservados de laboratório;
  • técnicas no formato MITRE ATT&CK (T1234 ou T1234.001);
  • plano Markdown com SHA-256 do cenário de origem;
  • diário append-only em NDJSON;
  • SHA-256 de cada evidência registrada;
  • acompanhamento do último estado de cada etapa.
  • exportação de achados confirmados para um projeto RedReport completo.
  • layer JSON compatível com ATT&CK Navigator 5.3.2 / formato 4.5;
  • dashboard HTML offline com cobertura e status por tática.
  • pacotes de evidência assinados com Ed25519 e verificáveis offline.

Fluxo

flowchart LR
    A[Scenario YAML] --> B[Scope and schema validation]
    B --> C[Execution plan]
    C --> D[Lab activity]
    D --> E[Evidence file]
    E --> F[SHA-256 journal]
    F --> G[RedReport]
Loading

Instalação

git clone https://github.com/guuszz/redteam-lab.git
cd redteam-lab
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
python -m pip install -e ".[dev]"

Uso

1. Validar o cenário

rtl validate scenarios/web-foothold.yml
VALID: web-foothold-lab (4 steps)

2. Gerar o plano de execução

rtl plan scenarios/web-foothold.yml --output reports/generated/web-foothold-plan.md

O plano inclui sequência, objetivo, ATT&CK ID, evidência esperada, cleanup, condições de parada e hash do YAML.

3. Registrar uma evidência

rtl record scenarios/web-foothold.yml \
  --step service-discovery \
  --status passed \
  --evidence evidence/discovery-output.txt \
  --note "Serviços do fixture catalogados"

Estados aceitos: passed, failed, blocked e skipped.

4. Consultar progresso

rtl status scenarios/web-foothold.yml
service-discovery        passed
web-enumeration          pending
controlled-access        pending
evidence-package         pending

5. Exportar para o RedReport

Depois de registrar como passed uma etapa que contém o bloco finding:

rtl export redreport scenarios/web-foothold.yml \
  --journal evidence/runs/journal.ndjson \
  --output reports/generated/redreport-project \
  --client "Portfolio Lab" \
  --start-date 2026-08-10 \
  --end-date 2026-08-10

redreport validate reports/generated/redreport-project
redreport build reports/generated/redreport-project

O exportador copia as evidências, preserva o SHA-256 no finding e gera report.yaml e findings/RTL-NNN.yaml no schema nativo do RedReport.

6. Gerar a matriz ATT&CK Navigator

rtl export navigator scenarios/web-foothold.yml \
  --journal evidence/runs/journal.ndjson \
  --output reports/generated/web-foothold-layer.json

Abra o arquivo JSON em ATT&CK Navigator. Cada técnica recebe cor, score, status, objetivo e link oficial. O gerador utiliza o formato de layer 4.5 com Navigator 5.3.2 e Enterprise ATT&CK 19.2.

Estado Score Cor
passed 100 verde
failed 65 vermelho
blocked 40 âmbar
skipped 20 cinza
pending 0 azul escuro

7. Gerar o dashboard offline

rtl dashboard scenarios/web-foothold.yml \
  --journal evidence/runs/journal.ndjson \
  --output reports/generated/dashboard.html

O dashboard é um único arquivo HTML, sem JavaScript ou dependências externas. Ele mostra cobertura concluída, contagem por status, escopo e cartões agrupados por tática.

8. Gerar uma chave de assinatura

rtl keygen \
  --private-key .rtl/private.pem \
  --public-key .rtl/public.pem

A CLI retorna o fingerprint SHA-256 da chave pública. A chave privada utiliza PKCS#8 PEM e deve permanecer fora do repositório.

9. Selar e verificar evidências

rtl seal scenarios/web-foothold.yml \
  --journal evidence/runs/journal.ndjson \
  --output reports/generated/sealed-package \
  --private-key .rtl/private.pem

rtl verify reports/generated/sealed-package/manifest.json \
  --public-key .rtl/public.pem

O pacote contém:

sealed-package/
├── manifest.json       # manifesto canônico + assinatura Ed25519
├── journal.ndjson      # cópia portátil com caminhos relativos
└── artifacts/          # evidências verificadas e copiadas

Durante a verificação, a CLI confirma assinatura, fingerprint da chave, SHA-256 e tamanho de cada arquivo, hash do journal e confinamento dos caminhos dentro do pacote. Qualquer alteração faz o comando terminar com status inválido.

Um pacote demonstrativo pode ser verificado com:

rtl verify docs/demo-evidence-package/manifest.json \
  --public-key docs/demo-public.pem

Estrutura de cenário

id: fixture-lab
name: Fixture exercise
description: Objetivo mensurável do cenário.
scope:
  targets: [192.168.56.10, api.target.test]
  exclusions: [192.168.56.1]
safety:
  stop_conditions:
    - Stop on service instability.
steps:
  - id: service-discovery
    name: Identify fixture services
    technique: T1046
    tactic: Discovery
    objective: Inventory the expected attack surface.
    expected_evidence: [discovery-output.txt]
    cleanup: Remove temporary output after hashing.

Integração com o portfólio

flowchart LR
    SG[ScopeGuard] --> RTL[Red Team Lab]
    RTL --> RR[RedReport]
    SPR[Security PR Reviewer] --> RR
Loading
  • ScopeGuard: normaliza e aprova o conjunto de alvos.
  • Red Team Lab: organiza cenário, ATT&CK, execução e evidências.
  • RedReport: transforma findings validados no relatório final.
  • Security PR Reviewer: adiciona achados AppSec ao mesmo pipeline de reporting.

Qualidade

python -m ruff check .
python -m pytest
python -m build

A CI executa os três gates em cada Pull Request.

Roadmap

  • exportador de findings compatível com RedReport;
  • matriz ATT&CK Navigator por cenário;
  • dashboard HTML local de cobertura e progresso;
  • manifest assinado de evidências com Ed25519;
  • adaptadores para logs Windows, Linux e aplicação web;

Licença

MIT

About

MITRE ATT&CK scenario planning and evidence journal for reproducible Red Team labs

Topics

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages