Vai al contenuto
New

DeepSeek V4.1 Flash free for 7 days: 10M tokens a day after a top-up of $10 or more. Until Nov 30.

How it works

Come costruire un home lab legale

Costruisci un home lab che hai il diritto di attaccare: un file di perimetro, porte Docker legate al loopback, una rete isolata, un quaderno di appunti e uno smontaggio pulito.

Base4 min di letturaDi NotHoly

Cosa rende legale un lab

Un home lab è legale quando ogni sistema che attacchi è tuo, o appartiene a qualcuno che ti ha dato un permesso scritto. Tutto quello che segue deriva da questa sola regola. Il tuo portatile, una macchina virtuale che hai creato e un container che hai avviato sono dentro il perimetro. Il Wi-Fi del vicino, la rete della scuola e "quel sito che sembra vulnerabile" non lo sono, anche quando la prova è innocua.

Metti la regola per iscritto prima di installare qualsiasi cosa. Quando uno strumento è in esecuzione e un bersaglio sembra interessante, il confine tra ciò che puoi testare e ciò che non puoi si confonde facilmente.

Cosa ti serve

  • Un computer che possiedi o amministri.
  • Docker Engine o Docker Desktop, dalla documentazione di Docker.
  • Un editor di testo e un terminale.

I comandi qui sotto sono stati eseguiti su Windows con Docker 29.8.2. Altre versioni possono stampare un testo leggermente diverso.

Passo 1: crea la cartella e il file di perimetro

Tieni il lab in una sola cartella, così puoi trovarlo e cancellarlo più tardi:

bash
mkdir -p lab/notes
cd lab

Crea scope.md in quella cartella con i bersagli che ti concedi:

markdown
# Scope

Allowed targets:
- 127.0.0.1 (containers I started, ports bound to loopback)

Not allowed:
- Anything else, until I have written permission from its owner.

Sembra banale. Però ti ferma quando stai per puntare uno scanner su un indirizzo che non volevi provare.

Passo 2: controlla che Docker funzioni

bash
docker --version
text
Docker version 29.8.2, build 7fc2dff

Se il comando fallisce, installa prima Docker. Se docker info dice che non riesce a raggiungere il daemon, avvia Docker Desktop o il servizio Docker e riprova.

Passo 3: pubblica le porte solo sul loopback

I container sono il modo più facile per eseguire software vulnerabile senza installarlo sul tuo sistema. Il rischio è la mappatura delle porte. La documentazione di Docker sulla pubblicazione delle porte dice che una mappatura -p senza indirizzo rende la porta disponibile fuori dall'host. Un'app volutamente vulnerabile non deve stare lì.

Indica l'indirizzo di loopback nella mappatura. Questo esempio usa una semplice immagine di server web al posto di un bersaglio di lab:

bash
docker run -d --rm --name lab-check -p 127.0.0.1:18080:80 caddy:2
docker port lab-check
text
80/tcp -> 127.0.0.1:18080

127.0.0.1:18080 significa che solo la tua macchina può raggiungere la porta. Confronta con una mappatura senza indirizzo:

bash
docker stop lab-check
docker run -d --rm --name lab-check -p 18081:80 caddy:2
docker port lab-check
text
lab-check
80/tcp -> 0.0.0.0:18081
80/tcp -> [::]:18081

Qui Docker ascolta su 0.0.0.0 e [::], cioè su tutte le interfacce. Se altri dispositivi possano davvero raggiungere la porta dipende dal tuo firewall e dalla tua rete, quindi non farci affidamento. Metti 127.0.0.1 in ogni comando del lab e controlla ogni volta con docker port.

Passo 4: taglia la rete quando puoi

Alcuni esercizi non hanno bisogno di rete, come leggere uno script sospetto o eseguire un parser su un file. Il driver di rete none di Docker dà al container solo il loopback come rete:

bash
docker run --rm --network none alpine:3.22 ip -o link | cut -d' ' -f2
text
lo:

Esiste solo l'interfaccia di loopback (lo). Usa --network none per tutto ciò che non vuoi far parlare con l'esterno, e considera ostile un campione scaricato finché non l'hai letto.

Passo 5: tieni un quaderno di lab

Crea un file per sessione in notes/. Scrivi la data, il bersaglio, cosa hai provato e cosa è successo, in quest'ordine, mentre lavori:

markdown
## 2026-01-15 14:20, first run
- Target: juice-shop-lab, http://127.0.0.1:3000
- Goal: see what a failed login returns
- Command: curl -i http://127.0.0.1:3000/rest/user/login
- Result: (paste what you saw, not what you expected)
- Next: ...

Il quaderno ha due compiti. Ti mostra cosa hai fatto quando un risultato ti sorprende, ed è l'abitudine da cui parte un vero report. Annota il comando che hai eseguito e l'output che hai ottenuto. Non incollare l'output di una guida.

Passo 6: smonta tutto

Ferma ciò che hai avviato, poi controlla che non sia rimasto niente:

bash
docker stop lab-check
docker ps -a --filter name=lab-check --format '{{.Names}}'
text
lab-check

docker stop stampa il nome del container. Poiché il container è stato avviato con --rm, Docker lo rimuove dopo che si è fermato, quindi il secondo comando non stampa niente. Se vuoi rimuovere anche l'immagine, usa docker image rm. Cancella la cartella lab solo quando non ti servono più gli appunti.

Un lab che puoi ricostruire in pochi minuti è meglio di uno che hai paura di toccare.

Passo successivo

Ora hai una cartella con il suo perimetro, l'abitudine del loopback e un modo per fermarti. L'articolo successivo, Eseguire OWASP Juice Shop con Docker, usa questa configurazione per avviare un'applicazione web volutamente vulnerabile. Leggi prima la pagina del progetto OWASP Juice Shop, così sai cosa stai eseguendo.

Fonti

Fonti

  1. Docker: Get started
  2. Docker: Port publishing and mapping
  3. Docker: None network driver
  4. Docker CLI reference: docker container run
  5. OWASP Juice Shop project

Altro su Laboratori di hacking

Laboratori di hacking

Perché usare NotHoly per CTF e laboratori

Un modello che scrive l'exploit del tuo challenge e spiega perché funziona, triage statico del binario, e un solve che gira nel tuo lab, non nel nostro.

Intermedio3 min di lettura

Laboratori di hacking

Come creare una rete Docker isolata per il tuo lab

Crea una rete Docker senza accesso a internet, avvia OWASP Juice Shop al suo interno e pubblica una copia per il browser solo su 127.0.0.1. Verifica ogni passo.

Base12 min di lettura

Laboratori di hacking

Come scrivere un buon report di pentest

Dai una struttura a un report di pentest e scrivi un finding che altri possano riprodurre, con prove, impatto, un vettore CVSS v4.0 e una correzione.

Intermedio8 min di lettura