networking

TFTP (Porta 69/UDP): Enumerazione, Exploitation e Sicurezza

TFTP (Porta 69/UDP): Enumerazione, Exploitation e Sicurezza

TFTP su UDP 69: guida pratica a enumerazione, file, configurazioni, vulnerabilità, traffico in chiaro e rischi nelle reti interne.

  • Pubblicato il 2026-09-23
  • Tempo di lettura: 4 min

TFTP: Enumerazione e Exploitation della Porta 69/UDP #

TFTP (Trivial File Transfer Protocol) è un protocollo di trasferimento file su UDP, porta 69, che non richiede alcuna autenticazione: chiunque raggiunga il servizio può scaricare (e spesso caricare) file senza fornire credenziali. Sul web pubblico è quasi scomparso, ma dentro le reti aziendali resta ovunque — telefoni VoIP, switch, router, sistemi embedded lo usano ancora oggi per scaricare configurazioni e firmware all’avvio.

Cos’è TFTP e perché esiste ancora #

TFTP nasce negli anni ‘80 (RFC 1350) con un obiettivo preciso: essere il protocollo di trasferimento file più semplice possibile, pensato per dispositivi con pochissima memoria che devono scaricare un file all’avvio senza dover gestire login, cifratura o sessioni complesse. Niente username, niente password, niente cifratura: il client chiede un file, il server lo manda, punto.

Questa stessa semplicità è il motivo per cui oggi è raro trovarlo esposto su Internet, ma resta comunissimo dentro le reti interne: telefoni IP Cisco e VoIP in generale, switch e router che scaricano la configurazione all’avvio, dispositivi embedded e IoT industriali. Se stai facendo un pentest interno o una macchina HTB/VulnLab con temi di rete “vecchio stile”, la porta 69/UDP aperta è quasi sempre un segnale di questo tipo di infrastruttura.

Prima regola: TFTP gira su UDP, non su TCP #

Un errore comune di chi inizia è scansionare TFTP come se fosse un servizio TCP qualunque. UDP non ha handshake, quindi Nmap deve fare un lavoro diverso per capire se la porta è davvero aperta:

bash
nmap -sU -p 69 --script tftp-enum TARGET

Un dettaglio da tenere a mente: su una scansione UDP generica, la porta 69 spesso risulta open|filtered — perché in assenza di risposta, Nmap non può distinguere “porta chiusa” da “porta filtrata da un firewall”. Lo script tftp-enum risolve l’ambiguità provando davvero a scaricare file da un elenco di path comuni, e se qualcosa risponde hai la conferma che il servizio è vivo.

Enumerazione: TFTP non elenca i file, ma si può indovinare #

Il limite più grande di TFTP, dal punto di vista di un attaccante che vuole solo curiosare, è che il protocollo non prevede un comando per listare i file disponibili. Devi conoscere il nome esatto del file che vuoi scaricare. Per questo l’enumerazione si basa sull’indovinare nomi comuni: tftp-enum di Nmap prova path tipici (file di configurazione VoIP come SIPDefault.cnf, SEPDefault.cnf, syncinfo.xml), che spesso bastano perché molti dispositivi usano nomi standard del vendor.

bash
nmap -Pn -sU -p69 --script tftp-enum TARGET

Metasploit ha un modulo dedicato che fa più o meno la stessa cosa in modo automatizzato, provando una wordlist di path:

text
msf6 > use auxiliary/scanner/tftp/tftpbrute
msf6 auxiliary(scanner/tftp/tftpbrute) > set RHOSTS TARGET
msf6 auxiliary(scanner/tftp/tftpbrute) > run

Scaricare e caricare file col client TFTP #

Una volta che hai un nome di file plausibile (o l’hai trovato con l’enumerazione), il client tftp incluso in quasi ogni sistema basta per interagire col servizio:

bash
tftp TARGET
tftp> get nome-del-file-di-configurazione

Se il server permette anche l’upload (non tutte le implementazioni lo fanno, ma molte configurazioni di default sì), puoi anche scrivere:

bash
tftp> put file-locale.txt

La possibilità di upload è quello che rende TFTP interessante oltre la semplice lettura: un dispositivo che scarica automaticamente la sua configurazione da un server TFTP, se riesci a scrivere lì dentro un file con lo stesso nome, potrebbe caricare la tua configurazione al prossimo riavvio.

Cosa trovi davvero nei file scaricati #

Il valore pratico di TFTP in un pentest è quasi sempre nei contenuti dei file di configurazione che riesci a scaricare, non nel protocollo in sé:

bash
grep -i "password\|secret\|username" config-scaricato.txt

Nei dispositivi Cisco, per esempio, trovi spesso password “type 7”, una cifratura debolissima pensata solo per non lasciare la password leggibile a chi guarda lo schermo da dietro le spalle — non è pensata per resistere a chi ha già il file in mano, ed esistono da anni tool e servizi online che la decodificano in un istante. Configurazioni Juniper o di altri vendor possono contenere chiavi SSH o community string SNMP, altrettanto utili per muoversi verso altri sistemi della stessa rete.

Intercettare e modificare il traffico TFTP #

Dato che TFTP non cifra nulla e non verifica l’identità di chi risponde, il traffico è anche manipolabile in transito. Su una rete dove riesci a metterti nel mezzo (per esempio con ARP spoofing, come spieghiamo nella guida a Scapy), puoi leggere in chiaro cosa un dispositivo sta scaricando — o, in scenari più avanzati, sostituire il file che riceve con uno tuo. È lo stesso principio per cui, in una rete che distribuisce firmware o configurazioni via TFTP senza altre protezioni, chi controlla il traffico controlla di fatto cosa quel dispositivo eseguirà al prossimo avvio.

Alcune vulnerabilità note, per dare un’idea concreta #

Oltre alla debolezza strutturale del protocollo, alcune implementazioni specifiche di server TFTP hanno avuto bug più gravi nel tempo: server come SolarWinds TFTP Server hanno avuto vulnerabilità che permettevano di caricare file arbitrari sfruttando una gestione non corretta dei percorsi, mentre altre implementazioni hanno sofferto di attraversamento di directory, capace di far leggere o scrivere file fuori dalla cartella prevista dal server. Il punto in comune è sempre lo stesso: un protocollo che non verifica nulla lascia al singolo software server tutto il peso di controllare cosa è lecito leggere o scrivere, e non tutti i server lo fanno bene.

Detection & difesa #

  • TFTP non dovrebbe mai essere raggiungibile da reti non fidate o da Internet: se un dispositivo deve scaricare configurazioni via TFTP, tienilo su una VLAN dedicata e isolata
  • Se il caso d’uso lo permette, sostituiscilo con alternative che offrono almeno un minimo di autenticazione o cifratura (SCP, SFTP, HTTPS per la distribuzione firmware)
  • Monitora il traffico UDP sulla porta 69: in molte reti aziendali è un servizio che dovrebbe comparire solo durante finestre di manutenzione pianificate, non in modo continuo
  • Se non puoi eliminarlo, limita rigidamente quali host possono contattare il server TFTP e quali file sono effettivamente esposti — evita di lasciare l’intera directory di configurazione raggiungibile

Domande frequenti #

TFTP richiede credenziali? No, per definizione: è uno dei motivi per cui il protocollo esiste, pensato per dispositivi che devono scaricare un file all’avvio nel modo più semplice possibile.

Perché Nmap segna spesso la porta 69 come open|filtered? Perché UDP non ha handshake: senza una risposta esplicita, Nmap non distingue una porta chiusa da una filtrata. Uno script come tftp-enum, che prova davvero a interagire col servizio, dà una risposta più affidabile.

TFTP si trova ancora in produzione oggi? Sì, soprattutto in reti interne con dispositivi VoIP, switch/router che scaricano configurazioni all’avvio, e sistemi embedded — molto meno sul web pubblico, dove l’assenza di autenticazione lo rende troppo rischioso da esporre.


Per approfondire #

  • HackTricks — 69/UDP TFTP — riferimento tecnico completo su enumerazione e casi particolari
  • La nostra guida a Scapy mostra come costruire e intercettare pacchetti come quelli TFTP quando serve controllo completo sul traffico

Articolo a scopo didattico. Tecniche testate su ambienti autorizzati come HackTheBox, VulnLab e lab personali.

#TFTP #UDP #Network Enumeration #VoIP #Network Pentesting

lascia un messaggio

Non sono un robot