123/udp - Pentesting NTP
Reading time: 8 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Informazioni di Base
Il Network Time Protocol (NTP) garantisce che computer e dispositivi di rete su reti a latenza variabile sincronizzino i loro orologi in modo accurato. È fondamentale per mantenere una precisa misurazione del tempo nelle operazioni IT, nella sicurezza e nel logging. Poiché il tempo è utilizzato in quasi ogni processo di autenticazione, protocollo crittografico e forense, un attaccante che può influenzare l'NTP può spesso eludere i controlli di sicurezza o rendere più difficile l'indagine sugli attacchi.
Riepilogo e Consigli di Sicurezza
- Scopo: Sincronizza gli orologi dei dispositivi su reti.
- Importanza: Critico per la sicurezza, il logging, i protocolli crittografici e i sistemi distribuiti.
- Misure di Sicurezza:
- Utilizzare fonti NTP o NTS (Network Time Security) affidabili con autenticazione.
- Limitare chi può interrogare/comandare il demone (
restrict default noquery
,kod
ecc.). - Disabilitare le query di controllo legacy Mode-6/7 (
monlist
,ntpdc
) o limitarle in base al tasso. - Monitorare la deriva di sincronizzazione/stato del secondo intercalare per manomissioni.
- Mantenere il demone aggiornato (vedere i recenti CVE di seguito).
Porte predefinite
123/udp NTP (data + legacy control)
4460/tcp NTS-KE (RFC 8915) – TLS key-establishment for NTP
PORT STATE SERVICE REASON
123/udp open ntp udp-response
Enumerazione
Classic ntpd / ntpq / ntpdc
# Information & variables
ntpq -c rv <IP>
ntpq -c readvar <IP>
ntpq -c peers <IP>
ntpq -c associations <IP>
# Legacy mode-7 (often disabled >=4.2.8p9)
ntpdc -c monlist <IP>
ntpdc -c listpeers <IP>
ntpdc -c sysinfo <IP>
chrony / chronyc (nelle moderne distribuzioni Linux)
Solo un numero limitato di comandi di monitoraggio è accettato da IP remoti quando cmdallow
è abilitato:
chronyc -a -n tracking -h <IP>
chronyc -a -n sources -v -h <IP>
chronyc -a -n sourcestats -h <IP>
Vedi la pagina man di chronyc per il significato delle flag M/S e altri campi (stratum, reach, jitter, ecc.).
Nmap
# Safe discovery & vuln detection
nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 <IP>
# Explicit monlist check
nmap -sU -p123 --script ntp-monlist <IP>
Scansione di massa/Internet
# Check if MONLIST is enabled (zgrab2 module)
zgrab2 ntp --monlist --timeout 3 --output-file monlist.json -f "zmap_results.csv"
Esaminare i file di configurazione
/etc/ntp.conf
(ntpd)/etc/chrony/chrony.conf
(chrony)/etc/systemd/timesyncd.conf
(timesyncd – solo client)
Presta particolare attenzione alle righe restrict
, alle impostazioni kod
(Kiss-o'-Death), a disable monitor
/includefile /etc/ntp/crypto
e se NTS è abilitato (nts enable
).
Vulnerabilità recenti (2023-2025)
Anno | CVE | Componente | Impatto |
---|---|---|---|
2023 | CVE-2023-26551→26555 | ntp 4.2.8p15 (libntp mstolfp, praecis_parse) | Scritture multiple fuori dai limiti raggiungibili tramite risposte ntpq. Patch in 4.2.8p16 🡒 aggiorna o riporta le correzioni. |
2023 | CVE-2023-33192 | ntpd-rs (implementazione Rust) | Cookie NTS malformato causa DoS remoto prima della v0.3.3 – influisce sulla porta 123 anche quando NTS è disabilitato. |
2024 | aggiornamenti distro | chrony 4.4 / 4.5 – diverse correzioni di sicurezza e NTS-KE (es. SUSE-RU-2024:2022) | |
2024 | Record DDoS | Cloudflare riporta un attacco di riflessione UDP da 5.6 Tbps (NTP tra i protocolli utilizzati). Mantieni monitor e monlist disabilitati sugli host esposti a Internet. |
Kit di exploit: I payload di proof-of-concept per la serie di scritture OOB di ntpq del 2023 sono su GitHub (vedi il report di Meinberg) e possono essere armati per phishing lato client degli amministratori di sistema.
Attacchi avanzati
1. Amplificazione / Riflessione NTP
La query legacy Mode-7 monlist
restituisce fino a 600 indirizzi host ed è ancora presente su migliaia di host Internet. Poiché la risposta (428-468 byte/voce) è ~ 200× più grande della richiesta di 8 byte, un attaccante può raggiungere fattori di amplificazione a tre cifre. Mitigazioni:
- Aggiorna a ntp 4.2.8p15+ e aggiungi
disable monitor
. - Limita il rate UDP/123 sul bordo o abilita sessions-required sugli apparecchi DDoS.
- Abilita il filtraggio in uscita BCP 38 per bloccare lo spoofing della sorgente.
Consulta l'articolo del centro di apprendimento di Cloudflare per una spiegazione passo-passo.
2. Attacchi di spostamento/ritardo del tempo (ricerca Khronos / Chronos)
Anche con l'autenticazione, un attaccante in percorso può silenziosamente spostare l'orologio del client eliminando/ritardando pacchetti. La bozza Khronos (ex Chronos) dell'IETF propone di interrogare un insieme diversificato di server in background e controllare la sanità del risultato per rilevare uno spostamento > 𝚡 ms. Il moderno chrony (4.4+) implementa già un filtro di sanità simile (maxdistance
/ maxjitter
).
3. Abuso di NTS e esposizione 4460/tcp
NTS sposta la pesante crittografia su un canale separato TLS 1.3 su 4460/tcp (ntske/1
). Implementazioni scadenti (vedi CVE-2023-33192) si bloccano durante l'analisi dei cookie o consentono cifrari deboli. I pentester dovrebbero:
# TLS reconnaissance
nmap -sV -p 4460 --script ssl-enum-ciphers,ssl-cert <IP>
# Grab banner & ALPN
openssl s_client -connect <IP>:4460 -alpn ntske/1 -tls1_3 -ign_eof
Cerca certificati autofirmati o scaduti e suite di cifratura deboli (non-AEAD). Riferimento: RFC 8915 §4.
Indurimento / Migliori Pratiche Correnti (BCP-233 / RFC 8633)
Gli operatori DOVREBBERO:
- Utilizzare ≥ 4 fonti di tempo indipendenti e diverse (pool pubblici, GPS, ponti PTP) per evitare il avvelenamento da una singola fonte.
- Abilitare le restrizioni
kod
elimited
/nomodify
in modo che i client abusivi ricevano pacchetti di limitazione della velocità Kiss-o'-Death invece di risposte complete. - Monitorare i log del demone per eventi di panic o aggiustamenti di passo > 1000 s. (Firme di attacco secondo RFC 8633 §5.3.)
- Considerare leap-smear per evitare interruzioni di secondo intercalare, ma assicurarsi che tutti i client downstream utilizzino la stessa finestra di smear.
- Mantenere il polling ≤24 h in modo che i flag di secondo intercalare non vengano persi.
Vedi RFC 8633 per un elenco di controllo completo.
Shodan / Censys Dorks
port:123 "ntpd" # Version banner
udp port:123 monlist:true # Censys tag for vulnerable servers
port:4460 "ntske" # NTS-KE
Strumenti Utili
Strumento | Scopo | Esempio |
---|---|---|
ntpwn | Wrapper per script-kiddie per spruzzare query monlist e peers | python ntpwn.py --monlist targets.txt |
zgrab2 ntp | Scansione di massa / output JSON incluso flag monlist | Vedi comando sopra |
chronyd con allow | Esegui server NTP malevolo nel laboratorio di pentest | chronyd -q 'server 127.127.1.0 iburst' |
BetterCap | Inietta pacchetti NTP per MITM a cambio di tempo su Wi-Fi | set arp.spoof.targets <victim>; set ntp.time.delta 30s; arp.spoof on |
Comandi Automatici HackTricks
Protocol_Name: NTP
Port_Number: 123
Protocol_Description: Network Time Protocol
Entry_1:
Name: Notes
Description: Notes for NTP
Note: |
The Network Time Protocol (NTP) ensures computers and network devices across variable-latency networks sync their clocks accurately. It's vital for maintaining precise timekeeping in IT operations, security, and logging. NTP's accuracy is essential, but it also poses security risks if not properly managed.
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-ntp.html
Entry_2:
Name: Nmap
Description: Enumerate NTP
Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 {IP}
Riferimenti
- RFC 8915 – Sicurezza del Tempo di Rete per il Protocollo di Tempo di Rete (porta 4460)
- RFC 8633 – Protocollo di Tempo di Rete BCP
- Rapporto DDoS di Cloudflare Q4 2024 (5.6 Tbps)
- Articolo di Cloudflare Attacco di Amplificazione NTP
- NTP 4.2.8p15 serie CVE 2023-04
- Voci NVD CVE-2023-26551–55, CVE-2023-33192
- Aggiornamento di sicurezza chrony SUSE 2024 (chrony 4.5)
- Bozza Khronos/Chronos (mitigazione dello spostamento temporale)
- Manuale chronyc/esempi per monitoraggio remoto
- Documentazione del modulo ntp di zgrab2
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.