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 cyber range per imparare la sicurezza web, API, cloud, AI e blue-team attraverso catene di attacco pratiche.
╔═══════════════════════════════════════════════════════════════╗
║ ██████╗ ███████╗███╗ ██╗████████╗███████╗███████╗████████╗ ║
║ ██╔══██╗██╔════╝████╗ ██║╚══██╔══╝██╔════╝██╔════╝╚══██╔══╝ ║
║ ██████╔╝█████╗ ██╔██╗ ██║ ██║ █████╗ ███████╗ ██║ ║
║ ██╔═══╝ ██╔══╝ ██║╚██╗██║ ██║ ██╔══╝ ╚════██║ ██║ ║
║ ██║ ███████╗██║ ╚████║ ██║ ███████╗███████║ ██║ ║
║ ╚═╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝╚══════╝ ╚═╝ ║
║ MODERN CYBER RANGE · 53 CHALLENGES · 8 TRACKS ║
╚═══════════════════════════════════════════════════════════════╝
★ Metti una stella a questo repo se ti è utile - è gratuito e aiuta altri a scoprire un'educazione sulla sicurezza gratuita.
PENTEST-LAB non è un'altra macchina con una singola vulnerabilità. È un cyber range completo che unisce le prospettive dell'attaccante e del difensore con output di evidenze in stile GRC:
[SYSTEM][USER][RETRIEVED][HISTORY], l'output generato, la
tecnica di injection rilevata e gli interruttori per ogni mitigazione.127.0.0.1, avvisa chiaramente su 0.0.0.0, tutti i
segreti sono finti e chiaramente marcati, i target SSRF sono mock locali in-process (nessun
traffico in uscita reale), nessun target esterno.make verify-registry valida il registro delle sfide
(id/flag univoci, campi obbligatori, risorse, conteggio suggerimenti) così il catalogo
rimane coerente.# 1. Comando singolo (installa le dipendenze, inizializza 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
# Reimposta flag catturati / eventi / avanzamento catena
make reset
# Aggiorna i dati demo di seed
make seed
# Smoke test delle rotte principali (avvia prima il lab)
make test
# Valida il registro delle sfide (id/flag univoci, campi, risorse)
make verify-registry
# Demo exploit sicura solo locale (5 sfide)
python demo_exploit.py
| Percorso | Cosa impari | # |
|---|---|---|
| ◆ Web App Pentest | SQLi, IDOR, upload file, path traversal, bypass WAF | 14 |
| ◆ API Security | BOLA, mass assignment, bypass rate-limit, webhook, GraphQL, riflessione CORS, injection NoSQL | 7 |
| ◆ Auth & Session | confusione kid/alg JWT, riutilizzo refresh-token, token di reset, fixation, MFA, avvelenamento reset tramite host-header | 9 |
| ◆ Cloud / DevOps | leak .env, SSRF metadata, debug docker, storage pubblico, token CI/CD | 5 |
| ◆ AI Security | prompt injection, injection indiretta, leak/avvelenamento RAG, chiamate a strumenti, jailbreak multi-turno, bypass filtro output e esercitazioni di audit a tre livelli | 10 |
| ◆ Logica di Business | accumulo coupon, quantità negative, 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 |
| 53 |
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 impara-prima-di-risolvere.
Clicca su qualsiasi card di sfida per aprire la finestra modale. Ti offre:
Una catena realistica, completamente locale, in sei passaggi rilevati:
Recon → Information Disclosure → Credential/Token Abuse →
Privilege Escalation → Sensitive Data Access → Evidence Report
B=http://127.0.0.1:3000
curl -s $B/api/attack-chain/recon # 1. endpoint di debug rivela le rotte
curl -s $B/api/attack-chain/leak # 2. segreto JWT finto trapelato (weak123)
# 3. forgia token admin -> 4. scala privilegi -> 5. leggi record clienti finti -> 6. report
curl -s $B/api/attack-chain/progress
Traccia l'avanzamento in tempo reale nella scheda Attack Chain.
La scheda Defender mostra la stessa attività appena eseguita dall'attaccante: eventi recenti, login falliti, accessi API sospetti, upload di file, tentativi SSRF, tentativi di escalation dei privilegi, flag catturati e avanzamento della catena di attacco - ogni evento colorato per gravità, le catture di flag contrassegnate con 🚩.
curl -s http://localhost:3000/api/blue-team/dashboard
Genera un report dai tuoi flag catturati mappando ciascuno a una scoperta con gravità, endpoint interessato, evidenza, impatto aziendale, rimedio, dominio di controllo e un'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 \
-H 'Content-Type: application/json' -d '{"format":"csv"}'
# Domini di controllo mappati: Access Control, Logging & Monitoring,
# Secure Development, Secrets Management, Change Management,
# Configuration Management, Data Protection, Incident Response.
⚠️ Questa è una mappatura ampia dei domini di controllo per l'apprendimento di rilevamento/GRC. Non asserisce conformità con alcuno standard.
Il repository non include screenshot o GIF registrate. Se crei
asset demo locali, posizionali sotto docs/screenshots/ e documenta il
processo di acquisizione insieme ad essi. Il
docs/DEMO_WALKTHROUGH.md pronto per la presentazione è lo script
demo mantenuto.
Questo lab è 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 evidente; l'interfaccia mostra un banner di pericolo.├── start_lab.py # avviatore a comando singolo (dipendenze + seed + esecuzione)
├── demo_exploit.py # demo exploit sicura solo locale (5 sfide)
├── docker-compose.yml # pubblicazione solo localhost
├── Makefile # install / start / reset / test / demo / docker
├── CHALLENGES.md # catalogo completo delle sfide
├── frontend/ # UI dashboard (percorsi, catena, defender, evidenze)
├── backend/
│ ├── server.js # app Express, bind localhost, collegamento rotte
│ ├── challenges/registry.js # REGISTRO CENTRALE delle sfide (53 sfide)
│ ├── ai/ # SIMULATORE AI TRASPARENTE + archivio RAG (nessun LLM esterno)
│ ├── utils/events.js # ARCHIVIO EVENTI CENTRALE + feed Blue Team
│ ├── routes/ # rotte vulnerabili + modalità (api, cloud, ai, shop, ...)
│ ├── scripts/ # init-db, seed, reset, test_routes
│ └── middleware/ # auth (sicura), auth.vulnerable, waf, security
├── solutions/ # writeup exploit Python
└── docs/ # guide di setup, strumenti, demo e catena di attacco
Hai trovato un bug o vuoi aggiungere una sfida? Le PR sono benvenute.
backend/challenges/registry.js (unica fonte di verità).events.captureFlag({ flag, req }) da una rotta vulnerabile.make test e make verify-registry prima di inviare.Solo uso educativo. Vedi LICENSE se presente. Usa solo contro sistemi che
possiedi o per cui sei esplicitamente autorizzato a testare - qui, questo significa questo lab locale.
Se questo lab ti ha aiutato a imparare qualcosa di nuovo: