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

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

bash
# 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:

bash
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

bash
# 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

bash
# 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)

AnnoCVEComponenteImpatto
2023CVE-2023-26551→26555ntp 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.
2023CVE-2023-33192ntpd-rs (implementazione Rust)Cookie NTS malformato causa DoS remoto prima della v0.3.3 – influisce sulla porta 123 anche quando NTS è disabilitato.
2024aggiornamenti distrochrony 4.4 / 4.5 – diverse correzioni di sicurezza e NTS-KE (es. SUSE-RU-2024:2022)
2024Record DDoSCloudflare 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:

bash
# 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:

  1. Utilizzare ≥ 4 fonti di tempo indipendenti e diverse (pool pubblici, GPS, ponti PTP) per evitare il avvelenamento da una singola fonte.
  2. Abilitare le restrizioni kod e limited/nomodify in modo che i client abusivi ricevano pacchetti di limitazione della velocità Kiss-o'-Death invece di risposte complete.
  3. Monitorare i log del demone per eventi di panic o aggiustamenti di passo > 1000 s. (Firme di attacco secondo RFC 8633 §5.3.)
  4. Considerare leap-smear per evitare interruzioni di secondo intercalare, ma assicurarsi che tutti i client downstream utilizzino la stessa finestra di smear.
  5. 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

StrumentoScopoEsempio
ntpwnWrapper per script-kiddie per spruzzare query monlist e peerspython ntpwn.py --monlist targets.txt
zgrab2 ntpScansione di massa / output JSON incluso flag monlistVedi comando sopra
chronyd con allowEsegui server NTP malevolo nel laboratorio di pentestchronyd -q 'server 127.127.1.0 iburst'
BetterCapInietta pacchetti NTP per MITM a cambio di tempo su Wi-Fiset 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