UDP (User Datagram Protocol): cos'è, come funziona e come sfruttarlo in un pentest

UDP spiegato in modo chiaro: header, differenze con TCP, UDP scan con Nmap, servizi critici come DNS, SNMP e NTP, amplification attack e rischi reali in pentest.
- Pubblicato il 2026-03-25
- Tempo di lettura: 7 min
UDP è il protocollo di trasporto veloce e senza garanzie. Capire cos’è UDP e come funziona è essenziale per chi fa pentesting: DNS, DHCP, SNMP, NTP, VoIP, e molti servizi critici usano UDP — e lo scanning UDP è una delle fasi più trascurate di un engagement, spesso rivelando servizi dimenticati e vulnerabilità non patchate.
Cos’è UDP #
UDP (User Datagram Protocol) è definito nell’RFC 768 del 1980. Opera al livello 4 del modello OSI (Transport Layer), esattamente come TCP ma con un’architettura radicalmente diversa.
UDP è connectionless e best-effort: non stabilisce connessioni, non garantisce la consegna, non garantisce l’ordine, non ritrasmette i segmenti persi. Ogni datagramma è indipendente dal precedente.
Questa semplicità è deliberata: meno overhead, meno latenza, più velocità. Le applicazioni che usano UDP gestiscono autonomamente (se necessario) affidabilità, ordine, e ritrasmissione — oppure le ignorano del tutto perché non le necessitano.
Confronto diretto:
| Caratteristica | TCP | UDP |
|---|---|---|
| Connessione | Orientato alla connessione | Connectionless |
| Affidabilità | Garantita (ACK, ritrasmissioni) | Non garantita |
| Ordine | Garantito | Non garantito |
| Controllo flusso | Sì (window) | No |
| Overhead header | 20 byte (minimo) | 8 byte |
| Latenza | Più alta | Più bassa |
| Uso tipico | HTTP, SSH, SMTP, FTP | DNS, DHCP, VoIP, gaming, streaming |
Come funziona UDP #
Struttura dell’header UDP #
L’header UDP è minimalista: appena 8 byte fissi.
| Campo | Dimensione | Descrizione |
|---|---|---|
| Source Port | 16 bit | Porta sorgente (opzionale, può essere 0) |
| Destination Port | 16 bit | Porta destinazione |
| Length | 16 bit | Lunghezza totale (header + payload) in byte |
| Checksum | 16 bit | Checksum opzionale (obbligatorio in IPv6) |
Non ci sono numeri di sequenza, flag, o window size. Un datagramma UDP è un pacchetto autonomo: viene inviato e dimenticato.
Il modello di comunicazione UDP #
Senza connessione, la comunicazione UDP è diretta:
- Il mittente costruisce un datagramma con destinazione IP e porta
- Lo incapsula in un pacchetto IP e lo invia
- Il destinatario riceve il datagramma (se arriva) e lo processa
- Nessuna conferma, nessun handshake
Per i servizi che richiedono una risposta (come DNS), è il protocollo applicativo a gestire request/response. Per lo streaming, i pacchetti persi vengono semplicemente saltati.
UDP e ICMP Port Unreachable #
Quando un datagramma UDP arriva a una porta chiusa, il sistema operativo risponde con ICMP Destination Unreachable — Port Unreachable (Type 3, Code 3). Questa è la base dello UDP port scanning: se si riceve ICMP Port Unreachable, la porta è chiusa; se non si riceve risposta, la porta è aperta o filtrata.
Dove viene usato UDP nelle reti #
UDP è il trasporto di molti servizi critici dell’infrastruttura:
| Servizio | Porta UDP |
|---|---|
| DNS | 53 |
| DHCP | 67/68 |
| TFTP | 69 |
| NTP | 123 |
| SNMP | 161/162 |
| LDAP | 389 |
| Syslog | 514 |
| RIP | 520 |
| IKE/IPSec | 500/4500 |
| SIP (VoIP) | 5060/5061 |
| RTP (media VoIP) | 10000-20000 |
| RADIUS | 1812/1813 |
| Kerberos | 88 |
| mDNS | 5353 |
Quasi tutti i protocolli di infrastruttura e di management usano UDP. In molti engagement, lo scanning UDP rivela servizi completamente ignorati dallo scanning TCP.
Perché UDP è importante in cybersecurity #
UDP è sistematicamente sottovalutato in fase di reconnaissance. I motivi:
- Lo scanning UDP è lento: senza handshake, ogni porta aperta non risponde nulla — si aspetta il timeout prima di passare alla prossima
- Molti tool di default scansionano solo TCP: Nmap senza
-sUnon tocca UDP - I firewall filtrano TCP più attentamente di UDP: molti ambienti hanno regole TCP rigide e UDP quasi aperto
Il risultato: servizi UDP dimenticati, non patchati, esposti. SNMP con community string “public”, NTP mal configurato usato per amplificazione, TFTP senza autenticazione, DHCP senza protezione.
Un pentester che ignora UDP ignora una superficie di attacco reale. Per il livello IP su cui UDP opera, vedi IP Internet Protocol. Per il confronto con TCP, vedi TCP.
UDP in un engagement di pentesting #
UDP port scanning con Nmap #
Lo scanning UDP è più lento del TCP scan per design. Ottimizzare i parametri è essenziale:
# Scan UDP di base (lento)
nmap -sU <target>
# Scan UDP sulle porte più comuni (veloce)
nmap -sU --top-ports 100 <target>
# Scan UDP + TCP in parallelo
nmap -sS -sU --top-ports 50 <target>
# Con version detection (aiuta a identificare servizi UDP aperti)
nmap -sU -sV --version-intensity 0 <target>
# Velocità aggressiva (può perdere risposte)
nmap -sU --min-rate 5000 <target>Interpretare i risultati UDP #
Nmap distingue tre stati per le porte UDP:
- open: ha ricevuto una risposta UDP dal servizio
- open|filtered: nessuna risposta (può essere aperta o filtrata — ambiguo)
- closed: ha ricevuto ICMP Port Unreachable
- filtered: ha ricevuto ICMP Port Unreachable con tipo diverso (admin prohibited)
La maggior parte delle porte UDP appare open|filtered — è il comportamento normale. Le porte open confermate e le porte closed sono le più informative.
Identificare e attaccare servizi UDP specifici #
DNS (UDP 53): zone transfer, subdomain enumeration, DNS amplification:
nmap -sU -p 53 --script dns-recursion,dns-cache-snoop <target>
dig @<target> version.bind chaos txt # Banner del DNS serverSNMP (UDP 161): community string di default, enumeration completa del sistema:
nmap -sU -p 161 --script snmp-brute,snmp-info,snmp-sysdescr <target>
snmpwalk -v2c -c public <target> # Dump completo con community "public"
onesixtyone -c /usr/share/seclists/Discovery/SNMP/snmp.txt <target>NTP (UDP 123): monlist amplification, information disclosure:
nmap -sU -p 123 --script ntp-monlist,ntp-info <target>
ntpq -c readvar <target> # Info sul server NTPTFTP (UDP 69): accesso anonimo a file, spesso usato per boot di dispositivi di rete:
tftp <target>
tftp> get cisco-config.txt # Tentativo di scaricare config di routerDHCP (UDP 67): rogue DHCP server detection, DHCP starvation, option enumeration:
nmap -sU -p 67 --script dhcp-discover <target_broadcast>UDP Amplification per DDoS #
Molti protocolli UDP rispondono con payload molto più grandi della richiesta. Combinato con IP spoofing, permettono attacchi DDoS amplificati dove le risposte vengono indirizzate alla vittima:
| Protocollo | Fattore amplificazione tipico |
|---|---|
| DNS | ~54x |
| NTP (monlist) | ~556x |
| SNMP | ~650x |
| SSDP | ~30x |
| Memcached | fino a ~51000x |
Questi servizi esposti su Internet con risposta verso qualsiasi IP sono vettori di DRDoS (Distributed Reflection DoS).
Information Gathering da protocolli UDP #
Molti servizi UDP rivelano informazioni dettagliate senza autenticazione:
# SNMP — dump completo con community "public"
snmpwalk -v2c -c public <target> .1
# NTP — lista dei client recenti (monlist — deprecato ma ancora presente)
ntpdc -n -c monlist <target>
# Syslog — capture del traffico in arrivo
tcpdump -i eth0 -nn udp port 514
# mDNS — discovery di servizi nella rete locale
avahi-browse -a
nmap --script broadcast-dns-service-discoveryAttacchi e abusi possibili su UDP #
UDP Flood (DoS) #
Inviare datagrammi UDP ad alta velocità verso porte casuali di un target. Il sistema deve processare ogni datagramma e rispondere con ICMP Port Unreachable — saturando CPU e banda:
hping3 --udp -p 53 --flood <target>UDP Amplification / Reflection (DRDoS) #
Come descritto: usare servizi UDP amplificatori con IP sorgente spoofato per generare traffico massivo verso la vittima. Le richieste sono piccole, le risposte enormi.
SNMP Enumeration e Exploitation #
Community string “public” e “private” sono ancora ampiamente usate. SNMP v1 e v2c non hanno autenticazione né cifratura:
snmpwalk -v1 -c public <target> # Dump OID tree
snmpset -v1 -c private <target> ... # Modifica configurazione (se write access)TFTP Exploitation #
TFTP non ha autenticazione. Se esposto, permette lettura e scrittura di file arbitrari nella directory configurata:
tftp <target>
tftp> get /etc/passwd # Su server mal configurati
tftp> put malware.php # Upload se la directory è scrivibileDNS Cache Poisoning #
Inviare risposte DNS false prima del server legittimo, contaminando la cache del resolver con record malevoli. Richiede conoscenza del transaction ID (prevedibile in implementazioni vecchie) e timing preciso.
Esempi pratici con UDP in laboratorio #
Analisi UDP con Wireshark #
udp # Tutto il traffico UDP
udp.port == 53 # Solo DNS
udp.port == 161 # Solo SNMP
icmp.type == 3 && icmp.code == 3 # ICMP Port Unreachable (porta UDP chiusa)Costruire datagrammi UDP custom con Scapy #
from scapy.all import *
# Datagramma UDP generico
p = IP(dst="192.168.1.1") / UDP(dport=161) / b"\x30\x00" # SNMP minimal
send(p)
# UDP flood verso porta 53
send(IP(dst="192.168.1.1") / UDP(dport=53) / Raw(b"A"*100), count=1000)Scansione SNMP massiva con onesixtyone #
# Genera lista di target
echo "192.168.1.0/24" | prips > targets.txt
# Brute force community string
onesixtyone -c /usr/share/seclists/Discovery/SNMP/snmp.txt -i targets.txtDetection e difesa UDP #
- UDP flood: rate limiting per IP, RTBH (Remotely Triggered Black Hole) per sorgenti note
- Amplification attack: BCP38 ingress filtering — bloccare pacchetti con IP sorgente spoofati
- SNMP: disabilitare SNMPv1/v2c, usare SNMPv3 con autenticazione; cambiare community string di default
- TFTP: esporre solo su reti isolate, abilitare autenticazione dove possibile, monitorare i log di accesso
- NTP: disabilitare monlist (
restrict default noquery), aggiornare NTP server - DNS: disabilitare la ricorsione verso IP non autorizzati, applicare response rate limiting
Hardening e mitigazioni UDP #
Filtrare i servizi UDP non necessari #
Identificare tutti i servizi UDP attivi e chiudere quelli non necessari. Molti servizi UDP legacy (TFTP, SNMP v1/v2c, NTP monlist) sono attivi per default su router e switch e non sono mai stati disabilitati.
SNMPv3 al posto di SNMPv1/v2c #
SNMPv3 aggiunge autenticazione (MD5/SHA) e cifratura (DES/AES). È la scelta corretta per qualsiasi ambiente che ha ancora bisogno di SNMP:
snmp-server group SECURE v3 priv
snmp-server user admin SECURE v3 auth sha <authpass> priv aes 128 <privpass>NTP: disabilitare monlist e query mode #
# ntpd.conf
restrict default noquery nomodify nopeer
restrict 127.0.0.1BCP38: ingress filtering per amplification mitigation #
Configurare i router di bordo per scartare pacchetti con indirizzi sorgente non appartenenti alle proprie subnet — elimina la possibilità di usare la rete come amplificatore.
Errori comuni su UDP #
“Ho già scansionato TCP, UDP non serve” Falso. DNS, SNMP, NTP, DHCP, e decine di altri servizi critici usano solo UDP. Ignorare UDP significa ignorare una parte sostanziale della superficie di attacco.
“UDP è sicuro perché non ha connessioni” Al contrario: l’assenza di handshake rende UDP più facile da falsificare (IP spoofing) e più difficile da filtrare in modo stateful.
“Se una porta UDP non risponde è filtrata”
Non necessariamente. Un servizio UDP aperto tipicamente non risponde a probe non validi. open|filtered è la risposta normale per porte UDP aperte. Serve un probe specifico per il protocollo per confermare che è aperto.
“SNMP non è rilevante perché è interno” SNMP esposto internamente senza autenticazione è una delle fonti più ricche di informazioni per un attaccante con accesso alla rete. Enumera OS, interfacce di rete, routing table, processi attivi, e molto altro.
FAQ su UDP #
Cos’è UDP e quando si usa al posto di TCP? UDP (User Datagram Protocol) è un protocollo di trasporto connectionless e best-effort. Si usa quando la velocità è prioritaria sull’affidabilità: DNS (query rapide), VoIP (la latenza è peggio di un pacchetto perso), gaming, streaming, e protocolli di infrastruttura come DHCP e NTP.
Come funziona lo UDP port scanning? UDP scan invia datagrammi vuoti (o probe specifici per il protocollo) alle porte target. Se riceve ICMP Port Unreachable, la porta è chiusa. Se non riceve risposta, la porta è aperta o filtrata. Se riceve una risposta UDP, la porta è aperta. Il processo è lento perché bisogna aspettare i timeout.
Cos’è un UDP amplification attack? È un attacco DDoS che sfrutta servizi UDP che rispondono con payload molto più grandi della richiesta. L’attaccante invia richieste con IP sorgente spoofato (quello della vittima); i server rispondono alla vittima con traffico amplificato. DNS, NTP, e SNMP sono i vettori più comuni.
Perché SNMP è pericoloso se mal configurato? SNMP v1 e v2c usano “community string” invece di password reali. La community “public” (sola lettura) e “private” (scrittura) sono i default di praticamente ogni dispositivo. Senza cambiarle, SNMP espone l’intera configurazione del dispositivo a chiunque nella rete.
Come si accelera lo UDP scan con Nmap?
Usare --top-ports per limitare alle porte più comuni, --min-rate per aumentare la velocità, e -T4 per timeout più aggressivi. Combinare con -sV --version-intensity 0 per ridurre i probe aggiuntivi. Scanning UDP su tutte le 65535 porte può richiedere ore senza ottimizzazioni.
Conclusione su UDP #
UDP è il protocollo di trasporto dimenticato. I pentester spesso si concentrano su TCP e trascurano UDP — una scelta che lascia scoperta una superficie di attacco reale e spesso vulnerabile.
SNMP con community “public”, NTP con monlist attivo, TFTP senza autenticazione, DNS ricorsivo aperto: sono finding comuni in ambienti enterprise che vengono scoperte solo quando qualcuno si prende la briga di fare uno UDP scan completo.
Fallo sempre. Prima o poi trovi qualcosa.
Approfondisci i protocolli correlati:
- TCP: il complemento affidabile di UDP
- IP Internet Protocol: il livello di rete
- DNS: il protocollo UDP più attaccato
- SNMP: enumeration e exploitation
- DHCP: sicurezza e rogue server
- NTP: amplification e misconfigurazioni
- Nmap: UDP scanning e service detection
Riferimento ufficiale: RFC 768 — User Datagram Protocol
Un UDP scan completo fa spesso la differenza tra un pentest superficiale e uno che trova davvero le vulnerabilità critiche. Se vuoi un assessment serio: hackita.it/servizi.
Articoli come questo costano tempo. Se ti sono utili: hackita.it/supporto







