Translated ['src/network-services-pentesting/pentesting-ntp.md'] to de

This commit is contained in:
Translator 2025-07-10 09:32:41 +00:00
parent 278b8e1b87
commit c015de4b55

View File

@ -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 <IP_ADDRESS>
ntpq -c readvar <IP_ADDRESS>
ntpq -c peers <IP_ADDRESS>
ntpq -c associations <IP_ADDRESS>
ntpdc -c monlist <IP_ADDRESS>
ntpdc -c listpeers <IP_ADDRESS>
ntpdc -c sysinfo <IP_ADDRESS>
```
### 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>
```
## 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 <IP>
# 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 <IP>
# Grab banner & ALPN
openssl s_client -connect <IP>: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 <victim>; 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-2655155**, **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}}