
Cyber range moderno con 50 sfide pratiche nei settori della sicurezza web, API, cloud, AI e blue team. Offre catene di attacco guidate, simulatore AI trasparente e reportistica di evidenze GRC per apprendere tecniche di penetration testing e difensive.
Un'applicazione vulnerabile moderna e un cyber range per imparare la sicurezza web, API, cloud, AI e blue-team attraverso catene di attacco pratiche.
╔═══════════════════════════════════════════════════════════════╗
║ ██████╗ ███████╗███╗ ██╗████████╗███████╗███████╗████████╗ ║
║ ██╔══██╗██╔════╝████╗ ██║╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝ ║
║ ██████╔╝█████╗ ██╔██╗ ██║ ██║ █████╗ ███████╗ ██║ ║
║ ██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║ ██╔══╝ ╚════██║ ██║ ║
║ ██║ ███████╗██║ ╚████║ ██║ ███████╗███████║ ██║ ║
║ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚══════╝ ╚═╝ ║
║ CYBER RANGE MODERNO · 50 SFIDE · 8 PERCORSI ║
╚═══════════════════════════════════════════════════════════════╝
★ Aggiungi una stella a questo repo se ti è utile – è gratuito e aiuta altri a scoprire formazione gratuita sulla sicurezza.
PENTEST-LAB non è un'altra scatola con una singola vulnerabilità. È un cyber range completo che affianca la prospettiva dell'attaccante e del difensore con output di tipo GRC:
[SYSTEM][USER][RETRIEVED][HISTORY], l'output generato, la tecnica di injection
rilevata e gli attivatori per ogni mitigazione.127.0.0.1, avvisa
rumorosamente su 0.0.0.0, tutti i segreti sono fittizi e chiaramente marcati,
i target SSRF sono mock locali in-process (nessun traffico reale in uscita),
nessun target esterno.make verify-registry convalida il registro delle sfide
(id/flag univoci, campi obbligatori, risorse, conteggio suggerimenti) per
mantenere il catalogo coerente.# 1. Comando unico (installa dipendenze, semina il DB, avvia il server)
python start_lab.py
# oppure: make start
Apri http://localhost:3000 nel tuo browser.
# Solo backend
cd backend && npm install && npm start
# Docker (pubblicato solo su 127.0.0.1)
docker compose up --build
# Resetta flag catturati / eventi / progresso catena
make reset
# Aggiorna dati di seed demo
make seed
# Test fumogeno delle route principali (avvia prima il laboratorio)
make test
# Convalida il registro delle sfide (id/flag univoci, campi, risorse)
make verify-registry
# Demo di exploit sicuro solo locale (5 sfide)
python demo_exploit.py
Ogni sfida ha: id, titolo, percorso, categoria, difficoltà, obiettivo, endpoint vulnerabile, concetto di sfruttamento, 3 suggerimenti progressivi (vago → specifico → risposta), flag, rimedio, note di rilevamento/evidenza, un dominio di controllo mappato e un elenco di risorse da studiare prima di risolvere.
Clicca su qualsiasi carta sfida per aprire la modale. Ti fornisce:
Una catena realistica, completamente locale, in sei passaggi rilevati:
Ricognizione → Divulgazione informazioni → Abuso credenziali/token →
Escalation privilegi → Accesso dati sensibili → Report evidenze
B=http://127.0.0.1:3000
curl -s $B/api/attack-chain/recon # 1. endpoint di debug divulga route
curl -s $B/api/attack-chain/leak # 2. segreto JWT fittizio trapelato (weak123)
# 3. forja token admin -> 4. escalation -> 5. legge record clienti fittizi -> 6. report
curl -s $B/api/attack-chain/progress
Segui il progresso in tempo reale nella scheda Catena di Attacco.
La scheda Difensore mostra la stessa attività che l'attaccante ha appena eseguito: eventi recenti, login falliti, accessi API sospetti, caricamenti file, tentativi SSRF, tentativi di escalation privilegi, flag catturati e progresso della catena di attacco – ogni evento colorato per severità, le catture di flag segnalate con 🚩.
curl -s http://localhost:3000/api/blue-team/dashboard
Genera un report dai flag catturati mappando ciascuno a un risultato con severità, endpoint interessato, evidenza, impatto aziendale, rimedio, dominio di controllo e opportunità di rilevamento.
# Markdown (predefinito)
curl -s -X POST http://localhost:3000/api/evidence/report \
-H 'Content-Type: application/json' -d '{"format":"markdown"}'
# JSON o CSV
curl -s -X POST http://localhost:3000/api/evidence/report -d '{"format":"csv"}'
# Domini di controllo mappati: Controllo Accessi, Logging & Monitoraggio,
# Sviluppo Sicuro, Gestione Segreti, Gestione Cambiamenti,
# Gestione Configurazioni, Protezione Dati, Risposta agli Incidenti.
⚠️ Si tratta di una mappatura ampia di dominio di controllo per l'apprendimento del rilevamento/GRC. Non attesta conformità a nessuno standard.
| Dashboard dei percorsi | Catena di attacco |
| Vista difensore | Report evidenze |
🎬 GIF demo: docs/demo.gif – vedi docs/DEMO_WALKTHROUGH.md per un
copione presentatore di circa 6 minuti. (Inserisci le tue acquisizioni in
docs/screenshots/ e docs/demo.gif per sostituire i placeholder.)
Questo laboratorio è intenzionalmente vulnerabile. Eseguilo solo in ambienti isolati e non esporlo mai su internet.
127.0.0.1 per impostazione predefinita (HOST=127.0.0.1 in
backend/.env).HOST=0.0.0.0 stampa un avviso forte; la UI mostra un banner di
pericolo.├── start_lab.py # lanciatore unico (dipendenze + seed + esecuzione)
├── demo_exploit.py # demo sfruttamento sicuro solo locale (5 sfide)
├── docker-compose.yml # pubblicazione solo su localhost
├── Makefile # installa / avvia / resetta / test / demo / docker
├── CHALLENGES.md # catalogo completo delle sfide
├── frontend/ # UI dashboard (percorsi, catena, difensore, evidenze)
├── backend/
│ ├── server.js # app Express, binding localhost, collegamento route
│ ├── challenges/registry.js # REGISTRO CENTRALE delle sfide (50 sfide)
│ ├── ai/ # SIMULATORE AI TRASPARENTE + archivio RAG (nessun LLM esterno)
│ ├── utils/events.js # ARCHIVIO EVENTI CENTRALE + feed Blue Team
│ ├── routes/ # route vulnerabili + modalità (api, cloud, ai, shop, ...)
│ ├── scripts/ # init-db, seed, reset, test_routes
│ └── middleware/ # auth (sicura), auth.vulnerabile, waf, sicurezza
├── solutions/ # writeup di exploit Python
└── docs/ # SECURITY_REPORT, SETUP, DEMO_WALKTHROUGH
Hai trovato un bug o vuoi aggiungere una sfida? PR benvenuti.
backend/challenges/registry.js (unica fonte di
verità).events.captureFlag({ flag, req }) da una route
vulnerabile.make test e make verify-registry prima di inviare.Solo per uso educativo. Vedi LICENSE se presente. Usa solo contro sistemi
di tua proprietà o per i quali sei esplicitamente autorizzato a testare – qui,
significa questo laboratorio locale.
Se questo laboratorio ti ha aiutato a imparare qualcosa di nuovo:
| Percorso | Cosa imparerai | # |
|---|
| ◆ Penetrazione Web App | SQLi, IDOR, caricamento file, path traversal, bypass WAF | 14 |
| ◆ Sicurezza API | BOLA, mass assignment, bypass limiti di velocità, webhook, GraphQL, riflessione CORS, injection NoSQL | 7 |
| ◆ Autenticazione e Sessione | Confusione kid/alg JWT, riutilizzo refresh token, token di reset, fixation, MFA, avvelenamento reset tramite host-header | 9 |
| ◆ Cloud / DevOps | Perdita .env, SSRF metadata, debug docker, storage pubblico, token CI/CD | 5 |
| ◆ Sicurezza AI | Prompt injection, injection indiretta, perdita/avvelenamento RAG, chiamate a strumenti, jailbreak multi-turno, bypass filtro output | 7 |
| ◆ Logica di Business | Accumulo coupon, quantità negativa, race condition, bypass pagamento | 5 |
| ◆ Catena di Attacco | Percorso end-to-end guidato + RCE legacy a catena completa, con evidenze | 2 |
| ◆ Evidenze Blue Team | Rileva attacchi e genera un report GRC | 1 |
| 50 |