Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
network-security-snort — Laboratorio Snort 3 IDS → IPS su Kali. Regole di rilevamento personalizzate + applicazione di iptables contro ricognizione ICMP, scansioni SYN di Nmap, forza bruta FTP su Hydra e backdoor vsftpd 2.3.4 (CVE-2011-2523). | Kitploit
Strumenti/GitHubGitHub/taisa456/network-security-snort
Strumenti DifensiviAnalisi delle VulnerabilitàExploitEvasione IDS/IPSSicurezza di RetePenetration TestingRilevamento IntrusioniApprendimento e FormazioneLab e Pratica

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
GitHubtaisa456/network-security-snort

network-security-snort

Laboratorio Snort 3 IDS → IPS su Kali. Regole di rilevamento personalizzate + applicazione di iptables contro ricognizione ICMP, scansioni SYN di Nmap, forza bruta FTP su Hydra e backdoor vsftpd 2.3.4 (CVE-2011-2523).

Vedi Repository
63 mesi faNon ancora revisionato
Condividi

Laboratorio di Deployment di Snort IDS/IPS

Un deployment a ciclo completo di Snort 3 sia come Intrusion Detection System (monitoraggio passivo) che come Intrusion Prevention System (blocco attivo tramite iptables), validato contro quattro vettori di attacco su una rete virtuale a tre macchine su Kali Linux.

Il laboratorio dimostra la distinzione operativa tra rilevamento e prevenzione eseguendo due volte una catena di attacco a quattro vettori identica — prima contro un IDS che registra ma non può bloccare, poi contro un IDS + livello IPS iptables che elimina gli attacchi selettivamente preservando il traffico legittimo.


Indice

  • Ambiente di Laboratorio
  • Topologia di Rete
  • Metodologia
  • Configurazione di Snort
  • Regole di Rilevamento Personalizzate
  • Stage 1 — Modalità IDS
  • Stage 2 — Modalità IPS
  • IDS vs IPS — Risultati Affiancati
  • Discussione
  • Nota sull'Architettura
  • Struttura del Repository
  • Riprodurre il Laboratorio
  • Disclaimer Etico
  • Licenza

Ambiente di Laboratorio

ComponenteDettagli
Analizzatore / RouterKali Linux — 3 adattatori: eth0 WAN (192.168.10.143, NAT), eth1 LAN1 (10.10.10.1, solo host), eth2 LAN2 (192.168.50.1, solo host)
AttaccanteKali Linux — eth0 su VMnet9 (10.10.10.10) — gateway predefinito 10.10.10.1
BersaglioMetasploitable 2 — eth0 su VMnet10 (192.168.50.10) — gateway predefinito 192.168.50.1
Versione di SnortSnort++ 3.12.1.0-0kali1 (installato su Analizzatore)
Strumenti d'attaccoNmap 7.99, Hydra v9.6, Metasploit Framework (msfconsole)
VirtualizzazioneVMware — VMnet9 = 10.10.10.0/24, VMnet10 = 192.168.50.0/24 (entrambi solo host)

Topologia di Rete

Tutto il traffico tra l'Attaccante e Metasploitable viene forzato attraverso l'Analizzatore, rendendolo il punto di strozzatura naturale sia per il monitoraggio che per l'applicazione.

root@kitploit:~
                           ┌─────────────────────────┐
                           │   Analyzer / Router     │
                           │   Kali + Snort 3        │
                           │                         │
   Attacker Kali ──VMnet9──┤ eth1: 10.10.10.1        │
   10.10.10.10             │                         │
                           │ eth0: 192.168.10.143 ───┼──> WAN (NAT)
                           │                         │
   Metasploitable 2 ─VMnet10┤ eth2: 192.168.50.1     │
   192.168.50.10           │                         │
                           └─────────────────────────┘

Sostituisci questo schizzo ASCII con screenshots/01-network-topology.png una volta che la figura è al suo posto: Topologia


Metodologia

Il laboratorio si svolge in due fasi con una catena di attacco a quattro vettori identica in ciascuna:

  1. Riconoscimento ICMP — ping per la scoperta dell'host
  2. Scansione SYN di Nmap — nmap -sS per l'enumerazione delle porte (1000 porte)
  3. Forza bruta FTP con Hydra — attacco alle credenziali contro il servizio vsftpd
  4. Backdoor vsftpd 2.3.4 — Exploit di Metasploit per CVE-2011-2523

Stage 1 (IDS) esegue Snort passivamente sull'Analizzatore con cinque regole personalizzate — osserva gli alert in tempo reale, conferma che lo sfruttamento procede comunque.

Stage 2 (IPS) abbina Snort a un livello di enforcement iptables utilizzando regole di drop chirurgiche — conferma che gli attacchi vengono bloccati mentre il ping ICMP e il login FTP legittimo rimangono funzionali.

Configurazione pre-deployment

  1. Configura l'Analizzatore con tre NIC in VMware (due solo host, una NAT/bridged).
  2. Abilita l'IP forwarding e aggiungi le regole MASQUERADE + FORWARD in modo che l'Analizzatore instradi tra le sottoreti e verso il WAN — vedi scripts/router_config.sh.
  3. Verifica la connettività end-to-end da ogni VM con scripts/ping_check.sh prima di installare Snort.

Configurazione di Snort

Snort viene installato tramite il gestore pacchetti di Kali (sudo apt install snort -y) e configurato in /etc/snort/snort.conf:

root@kitploit:~
HOME_NET = "10.10.10.0/24,192.168.50.0/24"
EXTERNAL_NET = "any"

ips = {
    enable_builtin_rules = true,
    include = "/etc/snort/rules/local.rules",
    variables = default_variables
}

alert_fast = { file = true, packet = false }

HOME_NET copre entrambe le sottoreti interne in modo che Snort consideri tutto il traffico tra sottoreti sull'Analizzatore degno di ispezione. alert_fast produce alert compatti su una riga (la registrazione per pacchetto genererebbe un volume eccessivo).

Convalida della configurazione:

root@kitploit:~
sudo snort -T -c /etc/snort/snort.conf
# Risultato: 652 regole caricate (5 personalizzate testo + 647 built-in), 0 avvisi

Regole di Rilevamento Personalizzate

Cinque regole in /etc/snort/rules/local.rules (file completo in scripts/local.rules):

SIDNomeAttivazione
1000001Rilevato Ping ICMPQualsiasi traffico ICMP in entrambe le direzioni — intercetta ping di ricognizione
1000002Tentativo di Connessione FTPQualsiasi connessione TCP alla porta 21 — intercetta traffico legittimo e di forza bruta
1000003Possibile Scansione SYN di NmapPacchetti TCP con solo il flag SYN impostato (flags:S) — la firma di una scansione half-open
1000004Tentativo Backdoor VSFTPD 2.3.4content:":)" sulla porta FTP 21 — la stringa di attivazione esatta di CVE-2011-2523
1000005Possibile Shellcode Metasploit`content:"

Stage 1 — Modalità IDS

Snort viene eseguito in modalità passiva su entrambe le interfacce interne:

root@kitploit:~
sudo snort -c /etc/snort/snort.conf -i eth1 -i eth2 \
    -A alert_fast -l /var/log/snort/

# Osserva gli alert in un secondo terminale:
sudo tail -f /var/log/snort/alert_fast.txt

L'output di avvio conferma pcap DAQ configured to passive — Snort vede ogni pacchetto ma non può eliminare o modificare nessuno di essi.

Risultati IDS

Dopo aver eseguito scripts/attack_simulator.sh dall'Attaccante:

AttaccoRilevamentoEsito
Riconoscimento ICMP✅ SID 1000001 — alert bidirezionaliPing completato
Scansione SYN Nmap✅ SID 1000003 — migliaia di alert in <1 secondo23 porte aperte enumerate
Forza bruta FTP Hydra✅ SID 1000002 — ripetuti alert di connessione FTPCredenziali msfadmin:msfadmin scoperte
Backdoor vsftpd 2.3.4✅ SID 1000004 — corrispondenza contenuto :) attivataOttenuta shell Root Meterpreter

L'IDS ha rilevato tutto e non ha fermato nulla. Questa è la lezione centrale dello Stage 1: un IDS funzionante senza enforcement è un sistema di allarme, non una serratura. Quando un analista umano legge gli alert, l'attaccante è già root.

Un'osservazione secondaria: le regole built-in di Snort (116:408, 116:414) si attivano sul traffico broadcast DHCP — non malizioso, ma in un deployment di produzione avrebbero bisogno di regole di soppressione per mantenere il log degli alert utilizzabile.


Stage 2 — Modalità IPS

Il livello IPS viene distribuito con scripts/ips_setup.sh, che:

  1. Svuota le regole iptables esistenti
  2. Riabilita l'IP forwarding e riapplica il routing di base
  3. Applica quattro regole di drop chirurgiche mirate a firme di attacco specifiche
  4. Avvia Snort in modalità demone (-D) per la registrazione continua

Regole iptables

RegolaCosa fa
ACCEPT icmpConsente esplicitamente tutto ICMP — preserva i controlli di connettività
DROP tcp dpt:21 STRING ":)"Elimina i pacchetti contenenti il trigger della backdoor vsftpd 2.3.4 sulla porta 21
ACCEPT tcp --syn -m limit --limit 10/s --limit-burst 20Consente gli handshake TCP normali entro il limite di velocità
DROP tcp --syn (dopo il limite)Elimina gli SYN flood che superano 10/s — sconfigge le scansioni SYN di Nmap
DROP tcp dpt:21 -m connlimit --connlimit-above 5 --connlimit-mask 32Blocca > 5 connessioni FTP concorrenti per sorgente — sconfigge il parallelismo di Hydra
ACCEPT eth1→eth0, ACCEPT eth2→eth0Routing di uscita normale
ACCEPT -m conntrack --ctstate RELATED,ESTABLISHEDStateful — preserva le sessioni stabilite

Risultati IPS

Lo stesso script di attacco è stato rieseguito dall'Attaccante:

AttaccoEsito Stage 2
Riconoscimento ICMP✅ Consentito (intenzionale)
Scansione SYN Nmap❌ Bloccato — 1000 porte tcp filtrate (nessuna risposta), scansione ha richiesto 21.71 s invece di <1 s
Forza bruta FTP Hydra❌ Bloccato — tutti i figli sono stati disabilitati a causa di troppi errori di connessione — 0 password valida trovata
Backdoor vsftpd❌ Bloccato — Rex::ConnectionTimeout — Exploit completato, ma nessuna sessione creata

Traffico normale preservato

Due controlli manuali hanno confermato l'enforcement selettivo:

  • ping -c 4 192.168.50.10 → 4 pacchetti trasmessi, 4 ricevuti, 0% perdita
  • ftp 192.168.50.10 con msfadmin:msfadmin → 220 (vsFTPd 2.3.4) … 230 Login riuscito

Prova quantitativa dai contatori pacchetti iptables durante l'esecuzione: 2051 pacchetti accettati, 12 pacchetti eliminati dalla regola connlimit FTP, 808 pacchetti ICMP accettati — enforcement selettivo in numeri.

Registrazione continua di Snort

Anche in modalità IPS, Snort ha continuato a generare alert SID 1000002 / 1000003 sui pacchetti che hanno raggiunto il suo punto di ispezione passiva prima che iptables eliminasse quelli successivi — ciò significa che iptables fornisce l'enforcement mentre Snort fornisce la registrazione di audit, operando in tandem.


IDS vs IPS — Risultati Affiancati

Attacco / TrafficoStage 1 (solo IDS)Stage 2 (IDS + iptables IPS)
Ping ICMPRilevato ✅Consentito ✅ (intenzionale)
Scansione SYN NmapRilevato — 23 porte aperte trovateBloccato — 1000 filtrate
Forza bruta FTP HydraRilevato — msfadmin:msfadmin scopertoBloccato — 0 password trovate
Exploit vsftpd 2.3.4Rilevato — Shell Root MeterpreterBloccato — timeout connessione
Login FTP legittimon/aPreservato (230 Login riuscito)

Discussione

Tutti gli attacchi simulati sono stati rilevati in modalità IDS?

Sì — ciascuno dei SID 1000001–1000004 si è attivato correttamente durante la simulazione dell'attacco:

  • Ping ICMP (1000001) — alert bidirezionali per ogni echo/risposta.
  • Scansione SYN Nmap (1000003) — ondata di alert in millisecondi, randomizzazione caratteristica della porta sorgente.
  • Forza bruta FTP (1000002) — traccia di audit pulita dei tentativi di connessione paralleli di Hydra con timestamp esatti.
  • Backdoor vsftpd (1000004) — la corrispondenza del contenuto :) ha catturato la sequenza di byte esatta dell'exploit.

Ma rilevamento ≠ prevenzione. L'exploit vsftpd ha aperto una shell Meterpreter root mentre ogni alert si attivava. Un analista SOC che osserva l'IDS in tempo reale avrebbe visto il compromesso — ma con l'attaccante già root in pochi secondi, la sola segnalazione non basta. Questo è il nucleo operativo del perché esiste l'IPS.

Quanto è stato efficace l'IPS nel bloccare gli attacchi senza rompere il traffico normale?

L'implementazione ha ottenuto una mitigazione completa degli attacchi con zero impatto osservabile sul traffico legittimo. L'efficacia deriva dalla progettazione chirurgica delle regole — ogni regola iptables mira a una firma comportamentale, non a un protocollo generico:

  • Il rate-limit SYN rompe il pattern di flood delle scansioni di porte senza influenzare gli handshake normali.
  • connlimit per sorgente blocca il parallelismo degli strumenti di forza bruta senza rompere l'FTP a sessione singola.
  • Il match STRING elimina il payload esatto dell'exploit senza filtrare il traffico di login FTP legittimo.

Una limitazione riconosciuta: ICMP è completamente consentito, il che significa che un attaccante può ancora confermare che Metasploitable è vivo tramite ping. In un ambiente a più alta sicurezza questo sarebbe limitato in velocità o ristretto a fonti fidate. In questo laboratorio, ICMP è il meccanismo primario di verifica della connettività, quindi rimane aperto.

Macchina Snort dedicata vs. plugin pfSense/OPNsense

Questo laboratorio utilizza una macchina Snort dedicata. Rispetto all'esecuzione di Snort come plugin all'interno di un appliance firewall come pfSense o OPNsense:

Vantaggi dell'approccio dedicato:

  • Isolamento delle prestazioni — CPU e RAM complete disponibili esclusivamente per l'ispezione dei pacchetti; nessuna contesa con routing, DHCP, VPN, DNS.
  • Flessibilità di posizionamento — l'IDS/IPS può essere posizionato inline, su una porta SPAN/mirror, o al confine di un segmento interno per monitorare il traffico est-ovest che non raggiunge mai il firewall perimetrale.
  • Controllo completo della configurazione — ogni preprocessore, impostazione DAQ, plugin di output e programma di aggiornamento delle regole è configurabile tramite CLI. pfSense espone solo un sottoinsieme tramite la sua GUI.
  • Resilienza — la macchina IDS/IPS può fallire-aperto o fallire-chiuso indipendentemente dal router. In pfSense, un crash di Snort abbatte sia il routing che il rilevamento contemporaneamente.

Compromessi:

  • Curva di apprendimento più ripida — richiede competenza CLI e gestione diretta del set di regole.
  • Costi di manutenzione — aggiornamenti delle regole, upgrade di versione, rotazione dei log, tutto manuale.

Snort dedicato è la scelta corretta per ambienti aziendali che necessitano di prestazioni, posizionamento e personalizzazione. L'approccio plugin pfSense/OPNsense è più sensato per ambienti di piccole imprese o home lab che danno priorità alla facilità d'uso.


Nota sull'Architettura

Lo Stage 2 è tecnicamente Snort passivo + enforcement iptables, non Snort in esecuzione in vera modalità inline — Snort stesso registra (pcap DAQ configured to passive), e iptables esegue l'eliminazione basata su limiti di velocità, corrispondenze di stringhe e conteggi di connessione.

Questo è un pattern di deployment legittimo e comune (è così che molti stack IDS/IPS basati su Linux nel mondo reale operano). Un seguito naturale sarebbe migrare lo Stage 2 a una vera configurazione inline usando snort --daq nfq (o afpacket in modalità inline) con le azioni di regola reject / drop di Snort, così che Snort stesso esegua l'eliminazione basata sulla corrispondenza completa delle firme piuttosto che delegare a iptables.


Struttura del Repository

root@kitploit:~
snort-ids-ips-lab/
├── README.md                       ← questo file
├── report/
│   ├── Snort-IDS-IPS-Report.pdf    ← rapporto di laboratorio completo
│   └── Snort-IDS-IPS-Report.docx   ← sorgente modificabile
├── scripts/
│   ├── router_config.sh            ← IP forwarding + iptables routing
│   ├── ping_check.sh               ← verifica connettività
│   ├── attack_simulator.sh         ← catena d'attacco a 4 vettori
│   ├── ips_setup.sh                ← regole iptables IPS + demone Snort
│   └── local.rules                 ← 5 regole Snort personalizzate (SID 1000001-1000005)
├── screenshots/                    ← figure del rapporto
├── .gitignore
└── LICENSE

Riprodurre il Laboratorio

⚠️ Solo uso laboratorio. Questi script eseguono exploit reali e strumenti di forza bruta contro un target deliberatamente vulnerabile. Non eseguirli contro alcun sistema di cui non possiedi e non hai esplicita autorizzazione scritta per testare.

  1. Costruisci tre VM in VMware secondo la topologia sopra (VMnet9 e VMnet10 come solo host).
  2. Sull'Analizzatore: esegui scripts/router_config.sh, poi scripts/ping_check.sh per confermare la connettività completa.
  3. Installa Snort 3 sull'Analizzatore:
    root@kitploit:~
    sudo apt update && sudo apt install snort -y
    
  4. Posiziona scripts/local.rules in /etc/snort/rules/local.rules e imposta HOME_NET = "10.10.10.0/24,192.168.50.0/24" in /etc/snort/snort.conf.
  5. Convalida: sudo snort -T -c /etc/snort/snort.conf — aspettati 652 regole caricate, 0 avvisi.
  6. Stage 1 — IDS:
    root@kitploit:~
    sudo snort -c /etc/snort/snort.conf -i eth1 -i eth2 -A alert_fast -l /var/log/snort/
    # In un altro terminale:
    sudo tail -f /var/log/snort/alert_fast.txt
    
    Sull'Attaccante: sudo ./scripts/attack_simulator.sh — osserva gli alert attivarsi e la shell Meterpreter.
  7. Stage 2 — IPS: sull'Analizzatore, esegui sudo ./scripts/ips_setup.sh, poi riesegui la catena d'attacco sull'Attaccante. Conferma i blocchi, poi testa manualmente:
    root@kitploit:~
    ping -c 4 192.168.50.10        # dovrebbe riuscire
    ftp 192.168.50.10              # msfadmin / msfadmin — dovrebbe riuscire
    

Disclaimer Etico

Tutte le attività documentate in questo repository sono state condotte esclusivamente all'interno di un ambiente di laboratorio virtuale VMware autonomo per scopi di apprendimento accademico supervisionato. Nessun sistema esterno, di produzione o reale è stato preso di mira, scansionato o influenzato in alcun modo. Metasploitable 2 è una macchina virtuale intenzionalmente vulnerabile progettata specificamente per la formazione sulla sicurezza.

Questo materiale non deve essere utilizzato per replicare queste attività contro alcun sistema reale senza esplicita autorizzazione scritta del proprietario del sistema. La scansione di porte non autorizzata, gli attacchi alle credenziali o lo sfruttamento di servizi di rete sono illegali nella maggior parte delle giurisdizioni.


Licenza

MIT — vedi LICENSE. Il rapporto di laboratorio stesso è fornito come riferimento educativo.

Scarica lo strumento