From c015de4b556a5d8692809e7234fa59964ead6b9e Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 10 Jul 2025 09:32:41 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/pentesting-ntp.md'] to de --- .../pentesting-ntp.md | 178 ++++++++++++++---- 1 file changed, 143 insertions(+), 35 deletions(-) diff --git a/src/network-services-pentesting/pentesting-ntp.md b/src/network-services-pentesting/pentesting-ntp.md index b96642304..2e616c75f 100644 --- a/src/network-services-pentesting/pentesting-ntp.md +++ b/src/network-services-pentesting/pentesting-ntp.md @@ -2,61 +2,156 @@ {{#include ../banners/hacktricks-training.md}} -## Grundlegende Informationen +## 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 genaue Zeitmessung in IT-Betrieb, Sicherheit und Protokollierung. Die Genauigkeit von NTP ist wichtig, birgt jedoch auch Sicherheitsrisiken, wenn sie nicht ordnungsgemäß verwaltet wird. +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: +### Zusammenfassung & Sicherheitstipps - **Zweck**: Synchronisiert die Uhren von Geräten über Netzwerke. -- **Bedeutung**: Kritisch für Sicherheit, Protokollierung und Betrieb. +- **Bedeutung**: Kritisch für Sicherheit, Protokollierung, Krypto-Protokolle und verteilte Systeme. - **Sicherheitsmaßnahmen**: -- Verwenden Sie vertrauenswürdige NTP-Quellen mit Authentifizierung. -- Beschränken Sie den Netzwerkzugang zum NTP-Server. -- Überwachen Sie die Synchronisierung auf Anzeichen von Manipulation. +- 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 +``` -**Standardport:** 123/udp ``` PORT STATE SERVICE REASON 123/udp open ntp udp-response ``` +--- ## Aufzählung -```bash -ntpq -c readlist -ntpq -c readvar -ntpq -c peers -ntpq -c associations -ntpdc -c monlist -ntpdc -c listpeers -ntpdc -c sysinfo -``` +### Klassisches ntpd / ntpq / ntpdc ```bash +# Information & variables +ntpq -c rv +ntpq -c readvar +ntpq -c peers +ntpq -c associations + +# Legacy mode-7 (often disabled >=4.2.8p9) +ntpdc -c monlist +ntpdc -c listpeers +ntpdc -c sysinfo +``` +### 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 +chronyc -a -n sources -v -h +chronyc -a -n sourcestats -h +``` +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 + +# Explicit monlist check +nmap -sU -p123 --script ntp-monlist ``` -## Konfigurationsdateien überprüfen - -- ntp.conf - -## NTP Amplifikationsangriff - -[**Wie NTP DDoS-Angriffe funktionieren**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref) - -Das **NTP-Protokoll**, das UDP verwendet, ermöglicht den Betrieb ohne die Notwendigkeit von Handshake-Verfahren, im Gegensatz zu TCP. Diese Eigenschaft wird in **NTP DDoS-Amplifikationsangriffen** ausgenutzt. Hier erstellen Angreifer Pakete mit einer gefälschten Quell-IP, wodurch es so aussieht, als kämen die Angriffsanforderungen vom Opfer. Diese Pakete, die zunächst klein sind, veranlassen den NTP-Server, mit viel größeren Datenmengen zu antworten, was den Angriff verstärkt. - -Der _**MONLIST**_-Befehl, obwohl er selten verwendet wird, kann die letzten 600 Clients melden, die mit dem NTP-Dienst verbunden sind. Während der Befehl selbst einfach ist, hebt sein Missbrauch in solchen Angriffen kritische Sicherheitsanfälligkeiten hervor. +### Massen-/Internetscanning ```bash -ntpdc -n -c monlist +# Check if MONLIST is enabled (zgrab2 module) +zgrab2 ntp --monlist --timeout 3 --output-file monlist.json -f "zmap_results.csv" ``` -## Shodan +--- +## Konfigurationdateien überprüfen -- `ntp` +- ``/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) + +| Jahr | CVE | Komponente | Auswirkung | +|------|-----|------------|------------| +| 2023 | **CVE-2023-26551→26555** | ntp 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. citeturn1search1turn1search2turn1search0| +| 2023 | **CVE-2023-33192** | **ntpd-rs** (Rust-Implementierung) | Fehlformatierte **NTS**-Cookies verursachen einen Remote-**DoS** vor v0.3.3 – betrifft Port 123, selbst wenn NTS **deaktiviert** ist. citeturn4view0| +| 2024 | Distro-Updates | **chrony 4.4 / 4.5** – mehrere Sicherheitsverbesserungen & NTS-KE-Fixes (z.B. SUSE-RU-2024:2022) citeturn2search2| +| 2024 | Rekord DDoS | Cloudflare berichtet über einen **5.6 Tbps UDP-Reflexions**-Angriff (NTP unter den verwendeten Protokollen). Halten Sie *monitor* & *monlist* auf internet-facing Hosts deaktiviert. citeturn5search0| + +> **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. citeturn1search4 + +--- +## 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. Milderungen: + +- 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 Schritt-für-Schritt-Erklärung. citeturn5search1 + +### 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``). citeturn9search1 + +### 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 + +# Grab banner & ALPN +openssl s_client -connect :4460 -alpn ntske/1 -tls1_3 -ign_eof +``` +Look for self-signed or expired certificates and weak cipher-suites (non-AEAD). Reference: RFC 8915 §4. citeturn11search0 + +--- +## Hardening / Best-Current-Practice (BCP-233 / RFC 8633) + +*Betreiber SOLLTEN:* + +1. **≥ 4** unabhängige, vielfältige Zeitquellen (öffentliche Pools, GPS, PTP-Brücken) verwenden, um eine Vergiftung durch eine einzige Quelle 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. citeturn8search0turn8search1 + +--- +## 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 + +| Werkzeug | Zweck | Beispiel | +|---------|-------|---------| +| ``ntpwn`` | Script-kiddie Wrapper zum Sprühen von monlist- & peers-Abfragen | ``python ntpwn.py --monlist targets.txt`` | +| **zgrab2 ntp** | Massen-Scanning / JSON-Ausgabe einschließlich monlist-Flag | Siehe Befehl oben | +| ``chronyd`` mit ``allow`` | Führen Sie einen bösartigen NTP-Server im Pentest-Labor aus | ``chronyd -q 'server 127.127.1.0 iburst'`` | +| ``BetterCap`` | Injektion von NTP-Paketen für Zeitverschiebungs-MITM über Wi-Fi | ``set arp.spoof.targets ; set ntp.time.delta 30s; arp.spoof on`` | + +--- ## HackTricks Automatische Befehle ``` -Protocol_Name: NTP #Protocol Abbreviation if there is one. -Port_Number: 123 #Comma separated if there is more than one. -Protocol_Description: Network Time Protocol #Protocol Abbreviation Spelled out +Protocol_Name: NTP +Port_Number: 123 +Protocol_Description: Network Time Protocol Entry_1: Name: Notes @@ -71,4 +166,17 @@ Name: Nmap Description: Enumerate NTP Command: nmap -sU -sV --script "ntp* and (discovery or vuln) and not (dos or brute)" -p 123 {IP} ``` -{{#include ../banners/hacktricks-training.md}} +--- +## Referenzen + +- RFC 8915 – *Network Time Security für das Network Time Protocol* (Port 4460) citeturn11search0 +- RFC 8633 – *Network Time Protocol BCP* citeturn8search0 +- Cloudflare DDoS-Bericht 2024 Q4 (5,6 Tbps) citeturn5search0 +- Cloudflare *NTP Amplification Attack* Artikel citeturn5search1 +- NTP 4.2.8p15 CVE-Serie 2023-04 citeturn1search4 +- NVD-Einträge **CVE-2023-26551–55**, **CVE-2023-33192** citeturn1search1turn1search2turn1search0turn4view0 +- SUSE chrony Sicherheitsupdate 2024 (chrony 4.5) citeturn2search2 +- Khronos/Chronos Entwurf (Zeitverschiebungs-Minderung) citeturn9search1 +- chronyc Handbuch/Beispiele für Remote-Überwachung citeturn3search0turn10search1 +- zgrab2 ntp Modul-Dokumentation citeturn7search0 +{{#include /banners/hacktricks-training.md}}