Cyber range moderno com 50 desafios práticos em trilhas de segurança web, API, nuvem, IA e blue team. Inclui cadeias de ataque guiadas, simulador de IA transparente e relatórios de evidências GRC para aprender testes de penetração e técnicas defensivas.
Uma aplicação vulnerável moderna e cyber range para aprender segurança web, API, nuvem, IA e blue team por meio de cadeias de ataque práticas.
╔═══════════════════════════════════════════════════════════════╗
║ ██████╗ ███████╗███╗ ██╗████████╗███████╗███████╗████████╗ ║
║ ██╔══██╗██╔════╝████╗ ██║╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝ ║
║ ██████╔╝█████╗ ██╔██╗ ██║ ██║ █████╗ ███████╗ ██║ ║
║ ██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║ ██╔══╝ ╚════██║ ██║ ║
║ ██║ ███████╗██║ ╚████║ ██║ ███████╗███████║ ██║ ║
║ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚══════╝ ╚═╝ ║
║ CYBER RANGE MODERNO · 53 DESAFIOS · 8 TRILHAS ║
╚═══════════════════════════════════════════════════════════════╝
★ Dê uma estrela neste repositório se ele te ajudar - é gratuito e ajuda outras pessoas a descobrirem educação gratuita em segurança.
O PENTEST-LAB não é mais uma caixa de vulnerabilidade única. É um cyber range completo que combina as perspectivas de atacante e defensor com saída de evidências no estilo GRC:
[SYSTEM][USER][RETRIEVED][HISTORY], a saída gerada, a
técnica de injeção detectada e alternâncias para cada mitigação.127.0.0.1, avisa alto em 0.0.0.0, todos os
segredos são falsos e claramente marcados, alvos SSRF usam um mock local em processo (sem
egresso real), sem alvos externos.make verify-registry valida o registro de desafios
(ids/flags únicos, campos obrigatórios, recursos, contagens de dicas) para que o catálogo
permaneça consistente.# 1. Comando único (instala dependências, popula o banco, inicia o servidor)
python start_lab.py
# ou: make start
Abra http://localhost:3000 no seu navegador.
# Somente backend
cd backend && npm install && npm start
# Docker (publicado apenas em 127.0.0.1)
docker compose up --build
# Redefinir flags capturadas / eventos / progresso da cadeia
make reset
# Atualizar dados de demonstração
make seed
# Teste de fumaça das rotas principais (inicie o laboratório primeiro)
make test
# Validar o registro de desafios (ids/flags únicos, campos, recursos)
make verify-registry
# Demonstração de exploração segura somente local (5 desafios)
python demo_exploit.py
| Trilha | O que você aprende | # |
|---|---|---|
| ◆ Pentest de Aplicações Web | SQLi, IDOR, upload de arquivo, path traversal, bypass de WAF | 14 |
| ◆ Segurança de API | BOLA, mass assignment, bypass de rate-limit, webhooks, GraphQL, reflexão CORS, injeção NoSQL | 7 |
| ◆ Auth & Sessão | Confusão kid/alg em JWT, reuso de refresh token, tokens de redefinição, fixation, MFA, envenenamento de reset via host-header | 9 |
| ◆ Nuvem / DevOps | Vazamento de .env, SSRF em metadata, debug docker, armazenamento público, tokens CI/CD | 5 |
| ◆ Segurança de IA | injeção de prompt, injeção indireta, vazamento/envenenamento de RAG, chamadas de ferramentas, jailbreak multi-turno, bypass de filtro de saída e exercícios de auditoria em três níveis | 10 |
| ◆ Lógica de Negócio | empilhamento de cupons, quantidade negativa, condições de corrida, bypass de pagamento | 5 |
| ◆ Cadeia de Ataque | Caminho guiado de ponta a ponta + RCE de cadeia completa legado, com evidências | 2 |
| ◆ Evidências de Blue Team | Detectar ataques e gerar um relatório GRC | 1 |
| 53 |
Cada desafio possui: id, título, trilha, categoria, dificuldade, objetivo, endpoint vulnerável, conceito de exploração, 3 dicas progressivas (vaga → específica → resposta), flag, remediação, notas de detecção/evidências, um domínio de controle mapeado e uma lista de recursos aprenda antes de resolver.
Clique em qualquer cartão de desafio para abrir o modal. Ele oferece:
Uma cadeia realista, totalmente local, em seis etapas detectadas:
Recon → Divulgação de Informações → Abuso de Credenciais/Tokens →
Escalação de Privilégios → Acesso a Dados Sensíveis → Relatório de Evidências
B=http://127.0.0.1:3000
curl -s $B/api/attack-chain/recon # 1. endpoint de debug divulga rotas
curl -s $B/api/attack-chain/leak # 2. segredo JWT falso vazado (weak123)
# 3. forjar token admin -> 4. escalar -> 5. ler registros falsos de clientes -> 6. relatório
curl -s $B/api/attack-chain/progress
Acompanhe o progresso ao vivo na aba Cadeia de Ataque.
A aba Defensor mostra a mesma atividade que o atacante acabou de realizar: eventos recentes, logins falhos, acesso suspeito à API, uploads de arquivos, tentativas de SSRF, tentativas de escalação de privilégios, flags capturadas e progresso da cadeia de ataque - cada evento colorido por severidade, capturas de flags marcadas com 🚩.
curl -s http://localhost:3000/api/blue-team/dashboard
Gere um relatório a partir das suas flags capturadas mapeando cada uma para um achado com severidade, endpoint afetado, evidência, impacto nos negócios, remediação, domínio de controle e uma oportunidade de detecção.
# Markdown (padrão)
curl -s -X POST http://localhost:3000/api/evidence/report \
-H 'Content-Type: application/json' -d '{"format":"markdown"}'
# JSON ou CSV
curl -s -X POST http://localhost:3000/api/evidence/report \
-H 'Content-Type: application/json' -d '{"format":"csv"}'
# Domínios de controle mapeados: Controle de Acesso, Registro e Monitoramento,
# Desenvolvimento Seguro, Gestão de Segredos, Gestão de Mudanças,
# Gestão de Configuração, Proteção de Dados, Resposta a Incidentes.
⚠️ Este é um mapeamento amplo de domínio de controle para aprendizado de detecção/GRC. Ele não afirma conformidade com nenhum padrão.
O repositório não inclui capturas de tela ou um GIF gravado. Se você criar
ativos de demonstração locais, coloque-os em docs/screenshots/ e documente o
processo de captura junto a eles. O
docs/DEMO_WALKTHROUGH.md pronto para apresentação é o script
de demonstração mantido.
Este laboratório é intencionalmente vulnerável. Execute-o apenas em ambientes isolados e nunca o exponha à internet.
127.0.0.1 por padrão (HOST=127.0.0.1 em backend/.env).HOST=0.0.0.0 exibe um aviso alto; a UI mostra um banner de perigo.├── start_lab.py # lançador de comando único (deps + seed + run)
├── demo_exploit.py # demonstração de exploração segura somente local (5 desafios)
├── docker-compose.yml # publicação somente localhost
├── Makefile # install / start / reset / test / demo / docker
├── CHALLENGES.md # catálogo completo de desafios
├── frontend/ # UI do painel (trilhas, cadeia, defensor, evidências)
├── backend/
│ ├── server.js # aplicativo Express, bind localhost, roteamento
│ ├── challenges/registry.js # REGISTRO CENTRAL de desafios (53 desafios)
│ ├── ai/ # SIMULADOR DE IA TRANSPARENTE + armazenamento RAG (sem LLM externo)
│ ├── utils/events.js # ARMAZENAMENTO CENTRAL de eventos + feed Blue Team
│ ├── routes/ # rotas vulneráveis + de modo (api, cloud, ai, shop, ...)
│ ├── scripts/ # init-db, seed, reset, test_routes
│ └── middleware/ # auth (seguro), auth.vulnerable, waf, security
├── solutions/ # writeups de exploração em Python
└── docs/ # guias de configuração, ferramentas, demonstração e cadeia de ataque
Encontrou um bug ou quer adicionar um desafio? PRs são bem-vindos.
backend/challenges/registry.js (fonte única de verdade).events.captureFlag({ flag, req }) a partir de uma rota vulnerável.make test e make verify-registry antes de enviar.Uso educacional apenas. Consulte LICENSE se presente. Use apenas contra sistemas que você
possui ou está explicitamente autorizado a testar - aqui, isso significa este laboratório local.
Se este laboratório te ajudou a aprender algo novo: