123/udp - Pentesting NTP

Reading time: 6 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Grundinformationen

Das Network Time Protocol (NTP) sorgt dafür, dass Computer und Netzwerkgeräte über Netzwerke mit variabler Latenz ihre Uhren genau synchronisieren. Es ist entscheidend für die Aufrechterhaltung einer präzisen Zeitmessung in IT-Betrieb, Sicherheit und Protokollierung. Da Zeit in nahezu jedem Authentifizierungs-, Krypto-Protokoll- und forensischen Prozess verwendet wird, kann ein Angreifer, der NTP beeinflussen kann, oft Sicherheitskontrollen umgehen oder Angriffe schwerer untersuchen.

Zusammenfassung & Sicherheitstipps

  • Zweck: Synchronisiert die Uhren von Geräten über Netzwerke.
  • Bedeutung: Kritisch für Sicherheit, Protokollierung, Krypto-Protokolle und verteilte Systeme.
  • Sicherheitsmaßnahmen:
  • Verwenden Sie vertrauenswürdige NTP- oder NTS (Network Time Security)-Quellen mit Authentifizierung.
  • Beschränken Sie, wer den Daemon abfragen/befehlen kann (restrict default noquery, kod usw.).
  • Deaktivieren Sie veraltete Mode-6/7-Steuerabfragen (monlist, ntpdc) oder begrenzen Sie deren Rate.
  • Überwachen Sie die Synchronisationsdrift/Schaltsekundenstatus auf Manipulation.
  • Halten Sie den Daemon aktualisiert (siehe die aktuellen CVEs unten).

Standardports

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

Aufzählung

Klassisches 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 (in den meisten modernen Linux-Distributionen)

Nur eine Handvoll von Überwachungsbefehlen wird von entfernten IPs akzeptiert, wenn cmdallow aktiviert ist:

bash
chronyc -a -n tracking   -h <IP>
chronyc -a -n sources -v -h <IP>
chronyc -a -n sourcestats -h <IP>

Siehe die chronyc-Man-Seite für die Bedeutung der M/S-Flags und anderer Felder (Stratum, Reach, Jitter usw.).

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>

Massen-/Internetscanning

bash
# Check if MONLIST is enabled (zgrab2 module)
zgrab2 ntp --monlist --timeout 3 --output-file monlist.json -f "zmap_results.csv"

Konfigurationdateien überprüfen

  • /etc/ntp.conf (ntpd)
  • /etc/chrony/chrony.conf (chrony)
  • /etc/systemd/timesyncd.conf (timesyncd – nur Client)

Achten Sie besonders auf die restrict-Zeilen, kod (Kiss-o'-Death)-Einstellungen, disable monitor/includefile /etc/ntp/crypto und ob NTS aktiviert ist (nts enable).


Aktuelle Schwachstellen (2023-2025)

JahrCVEKomponenteAuswirkung
2023CVE-2023-26551→26555ntp 4.2.8p15 (libntp mstolfp, praecis_parse)Mehrere Out-of-Bounds-Schreibvorgänge, die über ntpq-Antworten erreichbar sind. Patch in 4.2.8p16 🡒 Upgrade oder Backport-Fixes.
2023CVE-2023-33192ntpd-rs (Rust-Implementierung)Fehlformatierte NTS-Cookies verursachen einen Remote-DoS vor v0.3.3 – betrifft Port 123, selbst wenn NTS deaktiviert ist.
2024Distro-Updateschrony 4.4 / 4.5 – mehrere Sicherheitsverbesserungen & NTS-KE-Fixes (z.B. SUSE-RU-2024:2022)
2024Rekord DDoSCloudflare berichtet über einen 5,6 Tbps UDP-Reflexionsangriff (NTP unter den verwendeten Protokollen). Halten Sie monitor & monlist auf internetexponierten Hosts deaktiviert.

Exploit-Kits: Proof-of-Concept-Payloads für die 2023 ntpq OOB-Schreibserie sind auf GitHub (siehe Meinberg-Bericht) und können für Client-seitiges Phishing von Sysadmins verwendet werden.


Fortgeschrittene Angriffe

1. NTP-Verstärkung / Reflexion

Die Legacy Mode-7 monlist-Abfrage gibt bis zu 600 Host-Adressen zurück und ist immer noch auf Tausenden von Internet-Hosts vorhanden. Da die Antwort (428-468 Bytes/Eingabe) ~ 200× größer ist als die 8-Byte-Anfrage, kann ein Angreifer dreistellige Verstärkungsfaktoren erreichen. Milderungsmaßnahmen:

  • Upgrade auf ntp 4.2.8p15+ und hinzufügen von disable monitor.
  • Rate-Limit UDP/123 am Rand oder aktivieren Sie sessions-required auf DDoS-Geräten.
  • Aktivieren Sie BCP 38 Egress-Filterung, um Quellspoofing zu blockieren.

Siehe den Artikel im Lernzentrum von Cloudflare für eine schrittweise Aufschlüsselung.

2. Zeitverschiebungs- / Verzögerungsangriffe (Khronos / Chronos-Forschung)

Selbst mit Authentifizierung kann ein Angreifer auf dem Pfad die Client-Uhr stillschweigend verschieben, indem er Pakete verwirft/verzögert. Der IETF Khronos (ehemals Chronos) Entwurf schlägt vor, im Hintergrund eine vielfältige Menge von Servern abzufragen und das Ergebnis zu überprüfen, um eine Verschiebung > 𝚡 ms zu erkennen. Modernes chrony (4.4+) implementiert bereits einen ähnlichen Sanity-Filter (maxdistance / maxjitter).

3. NTS-Missbrauch & 4460/tcp-Exposition

NTS verlagert die schwere Kryptografie auf einen separaten TLS 1.3-Kanal auf 4460/tcp (ntske/1). Schlechte Implementierungen (siehe CVE-2023-33192) stürzen beim Parsen von Cookies ab oder erlauben schwache Chiffren. Pentester sollten:

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

Suche nach selbstsignierten oder abgelaufenen Zertifikaten und schwachen Cipher-Suites (nicht-AEAD). Referenz: RFC 8915 §4.


Härtung / Beste Aktuelle Praxis (BCP-233 / RFC 8633)

Betreiber SOLLTEN:

  1. ≥ 4 unabhängige, vielfältige Zeitquellen (öffentliche Pools, GPS, PTP-Brücken) verwenden, um eine Einzelquellenvergiftung zu vermeiden.
  2. kod und limited/nomodify-Einschränkungen aktivieren, damit missbräuchliche Clients Kiss-o'-Death-Rate-Limit-Pakete anstelle vollständiger Antworten erhalten.
  3. Daemon-Protokolle auf panic-Ereignisse oder Schrittanpassungen > 1000 s überwachen. (Signaturen eines Angriffs gemäß RFC 8633 §5.3.)
  4. leap-smear in Betracht ziehen, um Ausfälle durch Schaltsekunden zu vermeiden, aber sicherstellen, dass alle nachgelagerten Clients dasselbe Smear-Fenster verwenden.
  5. Polling auf ≤24 h halten, damit Schaltsekunden-Flags nicht verpasst werden.

Siehe RFC 8633 für eine umfassende Checkliste.


Shodan / Censys Dorks

port:123 "ntpd"          # Version banner
udp port:123 monlist:true # Censys tag for vulnerable servers
port:4460 "ntske"         # NTS-KE

Nützliche Werkzeuge

WerkzeugZweckBeispiel
ntpwnScript-kiddie Wrapper zum Sprühen von monlist- & peers-Abfragenpython ntpwn.py --monlist targets.txt
zgrab2 ntpMassen-Scanning / JSON-Ausgabe einschließlich monlist-FlagSiehe Befehl oben
chronyd mit allowFühren Sie einen bösartigen NTP-Server im Pentest-Labor auschronyd -q 'server 127.127.1.0 iburst'
BetterCapInjektion von NTP-Paketen für Zeitverschiebungs-MITM über Wi-Fiset arp.spoof.targets <victim>; set ntp.time.delta 30s; arp.spoof on

HackTricks Automatische Befehle

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}

Referenzen

  • RFC 8915 – Netzwerkzeit-Sicherheit für das Network Time Protocol (Port 4460)
  • RFC 8633 – Network Time Protocol BCP
  • Cloudflare DDoS-Bericht 2024 Q4 (5,6 Tbps)
  • Cloudflare NTP Amplification Attack Artikel
  • NTP 4.2.8p15 CVE-Serie 2023-04
  • NVD-Einträge CVE-2023-26551–55, CVE-2023-33192
  • SUSE chrony Sicherheitsupdate 2024 (chrony 4.5)
  • Khronos/Chronos Entwurf (Zeitverschiebungs-Minderung)
  • chronyc Handbuch/Beispiele für die Fernüberwachung
  • zgrab2 ntp Modul-Dokumentation {{#include /banners/hacktricks-training.md}}