
Laboratorio Blue Team incentrato sull'analisi dei log di accesso web di Apache per rilevare attacchi di directory brute forcing e attività di scansione web.
Lab Blue Team focalizzato sull'analisi dei log del server HTTP Apache per rilevare attività di scansione web, enumerazione delle directory e tentativi di path traversal.
Installare ed esporre un server web Apache in un ambiente di laboratorio isolato, simulare la scansione web automatizzata utilizzando strumenti standard del settore e analizzare i log generati da una prospettiva Blue Team — identificando pattern di attacco, firme degli strumenti e indicatori di attività di ricognizione malevola.
| Componente | Dettagli |
|---|---|
| VM Attaccante | Kali Linux |
| VM Target | Debian 13 |
| Rete | NAT Network (VirtualBox) |
| IP Attaccante | 10.0.2.5 |
| IP Target | 10.0.2.15 |
| Server Web | Apache 2.4.67 |
| Fonti dei log | /var/log/apache2/access.log, /var/log/apache2/error.log |
| Porta HTTP | 80 |
Confermato che il server HTTP Apache era attivo e in esecuzione sulla macchina target.```bash sudo systemctl status apache2 --no-pager
Risultato: `active (running)` since Wed 2026-05-06 21:09:17. Apache 2.4.67 (Debian), Main PID 3164, 55 tasks active.
---
### 2. Identificazione dell'IP del target
Identificato l'indirizzo IP della macchina target Debian.```bash
ip a
Target IP: 10.0.2.15/24 — interface enp0s3
Verificata la connettività di rete tra la macchina attaccante Kali e il target Debian.```bash ping -c 4 10.0.2.15
**Result:** 4 packets transmitted, 4 received, 0% packet loss. RTT min/avg/max: 0.495/1.288/2.139ms.
---
### 4. Test del Browser Apache
Accesso al server Apache dal browser Kali per confermare la disponibilità del servizio HTTP.```
http://10.0.2.15
Risultato: Pagina predefinita di Apache2 su Debian caricata con successo — conferma che il server web era raggiungibile e rispondeva alle richieste HTTP.
Create directory e pagine di test sul server di destinazione per simulare una struttura realistica di un'applicazione web.```bash sudo mkdir -p /var/www/html/admin sudo mkdir -p /var/www/html/backup sudo mkdir -p /var/www/html/login echo "
Directory create: `/admin`, `/backup`, `/login`
---
### 6. Nikto Scansione
Eseguito Nikto contro il server web di destinazione per simulare una scansione automatica delle vulnerabilità.```bash
nikto -h http://10.0.2.15
Nikto v2.5.0 — Ora di inizio: 2026-05-06 20:16:56 — Ora di fine: 20:17:13 (17 secondi)
Risultati segnalati da Nikto:
X-Frame-Options — protezione clickjacking assenteX-Content-Type-Options — protezione MIME sniffing assente/admin/, /backup/, /login//admin/index.html — Pagina di accesso admin accessibileEseguita Dirb per effettuare brute forcing delle directory sul server web di destinazione.```bash dirb http://10.0.2.15
**DIRB v2.22 — Inizio: Wed May 6 20:19:50 2026 — Fine: 20:19:59 2026 (9 secondi)**
Wordlist utilizzata: `/usr/share/dirb/wordlists/common.txt` — 4612 parole testate
Directory e file trovati:
| URL | Code | Size |
| --------------------------------- | ---- | ----- |
| http://10.0.2.15/index.html | 200 | 10703 |
| http://10.0.2.15/server-status | 403 | 314 |
| http://10.0.2.15/admin/ | 200 | — |
| http://10.0.2.15/admin/index.html | 200 | 21 |
| http://10.0.2.15/backup/ | 200 | — |
| http://10.0.2.15/login/ | 200 | — |
| http://10.0.2.15/login/index.html | 200 | 20 |
**Attenzione:** La directory `/backup/` ha il listing abilitato — nessun file index presente, i contenuti della directory sono direttamente navigabili.
**Totale scaricato:** 13836 byte — **Trovate:** 4 risorse
---
### 8. Analisi del Log di Accesso
Ispezionate le voci grezze del log di accesso per identificare lo schema dell'attacco.```bash
sudo cat /var/log/apache2/access.log
Esempi di voci dalla fase di scansione Nikto (21:18:32):``` 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.tar.bz2 HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10_0_2_15.gz HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.sql HTTP/1.1" 404 527 10.0.2.5 - - [06/May/2026:21:18:32 -0300] "GET /10.0.2.15.zip HTTP/1.1" 404 527
Esempi di voci dalla fase di scansione Dirb (21:21:34):```
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xsql HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/xxx HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zimbra HTTP/1.1" 404 472
10.0.2.5 - - [06/May/2026:21:21:34 -0300] "GET /login/zoom HTTP/1.1" 404 472
Pattern osservato: Centinaia di richieste sequenziali nello stesso secondo, tutte miranti a percorsi inesistenti — coerente con un comportamento di scansione automatizzato.
Filtrate tutte le voci del log di accesso provenienti dall'IP dell'attaccante.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | head -30
Ulteriori modelli osservati:
- Nikot ha tentato di accedere a file di backup utilizzando l'IP del server come nome file (ad es., `10.0.2.15.tar.bz2`, `10.0.2.15.sql`, `10.0.2.15.zip`)
- Dirb ha iterato attraverso wordlist ordinate alfabeticamente mirando a ciascuna directory scoperta
- Entrambi gli strumenti hanno generato richieste a velocità macchina — molteplici voci al secondo dalla stessa gamma di porte di origine
---
### 10. Distribuzione dei Codici di Stato HTTP
Conteggiate le richieste per codice di risposta HTTP per quantificare la superficie di attacco.```bash
sudo grep " 200 " /var/log/apache2/access.log | wc -l
sudo grep " 403 " /var/log/apache2/access.log | wc -l
sudo grep " 404 " /var/log/apache2/access.log | wc -l
| HTTP Code | Significato | Count |
|---|---|---|
| 200 | OK — risorsa trovata e servita | 177 |
| 403 | Vietato — la risorsa esiste ma accesso negato | 26 |
| 404 | Non trovato — la risorsa non esiste | 21740 |
Totale errori 404: 21.740 — la stragrande maggioranza delle richieste ha riguardato percorsi che non esistono, che è la caratteristica distintiva del brute-forcing automatico di directory.
Contate tutte le voci del log di accesso provenienti dall'attaccante.```bash sudo grep "10.0.2.5" /var/log/apache2/access.log | wc -l
**Totale richieste da 10.0.2.5: 21,962**
---
### 12. Identificazione delle Firme degli Strumenti
Ricerca di firme specifiche dello scanner nel log di accesso.