123/udp - Pentesting NTP
Reading time: 7 minutes
tip
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
Podstawowe informacje
Protokół Czasu Sieciowego (NTP) zapewnia, że komputery i urządzenia sieciowe w sieciach o zmiennej latencji synchronizują swoje zegary dokładnie. Jest to kluczowe dla utrzymania precyzyjnego pomiaru czasu w operacjach IT, bezpieczeństwie i logowaniu. Ponieważ czas jest używany w niemal każdym procesie uwierzytelniania, protokole kryptograficznym i procesie kryminalistycznym, atakujący, który może wpływać na NTP, często może obejść kontrole bezpieczeństwa lub utrudnić dochodzenia w sprawie ataków.
Podsumowanie i wskazówki dotyczące bezpieczeństwa
- Cel: Synchronizuje zegary urządzeń w sieciach.
- Znaczenie: Krytyczne dla bezpieczeństwa, logowania, protokołów kryptograficznych i systemów rozproszonych.
- Środki bezpieczeństwa:
- Używaj zaufanych źródeł NTP lub NTS (Network Time Security) z uwierzytelnieniem.
- Ogranicz, kto może zapytywać/komendować demon (
restrict default noquery
,kod
itp.). - Wyłącz zapytania kontrolne w trybie 6/7 (
monlist
,ntpdc
) lub ogranicz ich częstotliwość. - Monitoruj dryf synchronizacji/stan sekund przestępnych w celu wykrywania manipulacji.
- Utrzymuj demona w aktualizacji (zobacz ostatnie CVE poniżej).
Domyślne porty
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
Enumeracja
Klasyczny 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 (w większości nowoczesnych dystrybucji Linuksa)
Tylko garstka poleceń monitorujących jest akceptowana z zdalnych adresów IP, gdy cmdallow
jest włączone:
chronyc -a -n tracking -h <IP>
chronyc -a -n sources -v -h <IP>
chronyc -a -n sourcestats -h <IP>
Zobacz stronę podręcznika chronyc, aby poznać znaczenie flag M/S i innych pól (stratum, reach, jitter itp.).
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>
Skanowanie masowe/Internetowe
# Check if MONLIST is enabled (zgrab2 module)
zgrab2 ntp --monlist --timeout 3 --output-file monlist.json -f "zmap_results.csv"
Zbadaj pliki konfiguracyjne
/etc/ntp.conf
(ntpd)/etc/chrony/chrony.conf
(chrony)/etc/systemd/timesyncd.conf
(timesyncd – tylko klient)
Zwróć szczególną uwagę na linie restrict
, ustawienia kod
(Kiss-o'-Death), disable monitor
/includefile /etc/ntp/crypto
oraz czy NTS jest włączone (nts enable
).
Ostatnie luki (2023-2025)
Rok | CVE | Komponent | Wpływ |
---|---|---|---|
2023 | CVE-2023-26551→26555 | ntp 4.2.8p15 (libntp mstolfp, praecis_parse) | Wiele zapisów poza zakresem dostępnych poprzez odpowiedzi ntpq. Łatka w 4.2.8p16 🡒 aktualizacja lub przeniesienie poprawek. |
2023 | CVE-2023-33192 | ntpd-rs (implementacja w Rust) | Źle sformatowane ciasteczko NTS powoduje zdalny DoS przed wersją v0.3.3 – wpływa na port 123 nawet gdy NTS wyłączone. |
2024 | aktualizacje dystrybucji | chrony 4.4 / 4.5 – kilka poprawek zabezpieczeń i NTS-KE (np. SUSE-RU-2024:2022) | |
2024 | Rekordowy DDoS | Cloudflare zgłasza atak 5.6 Tbps UDP reflection (NTP wśród używanych protokołów). Utrzymuj monitor i monlist wyłączone na hostach wystawionych na Internet. |
Zestawy exploitów: Dowody koncepcji dla serii OOB-write ntpq z 2023 roku są dostępne na GitHubie (zobacz opis Meinberga) i mogą być wykorzystane do phishingu po stronie klienta w celu ataku na administratorów systemów.
Zaawansowane ataki
1. Wzmacnianie / Odbicie NTP
Zapytanie w trybie 7 monlist
zwraca do 600 adresów hostów i wciąż jest obecne na tysiącach hostów w Internecie. Ponieważ odpowiedź (428-468 bajtów/wejście) jest ~ 200× większa niż 8-bajtowe zapytanie, atakujący może osiągnąć współczynniki wzmocnienia w trzech cyfrach. Środki zaradcze:
- Zaktualizuj do ntp 4.2.8p15+ i dodaj
disable monitor
. - Ogranicz przepustowość UDP/123 na krawędzi lub włącz sessions-required na urządzeniach DDoS.
- Włącz filtrowanie egress BCP 38, aby zablokować fałszowanie źródła.
Zobacz artykuł w centrum wiedzy Cloudflare dla szczegółowego opisu krok po kroku.
2. Ataki na przesunięcie czasu / opóźnienie (badania Khronos / Chronos)
Nawet przy uwierzytelnieniu, atakujący na ścieżce może cicho przesunąć zegar klienta poprzez gubienie/opóźnianie pakietów. Khronos (dawniej Chronos) IETF proponuje zapytanie do różnorodnego zestawu serwerów w tle i sprawdzanie wyników, aby wykryć przesunięcie > 𝚡 ms. Nowoczesny chrony (4.4+) już implementuje podobny filtr sanity (maxdistance
/ maxjitter
).
3. Nadużycie NTS i ekspozycja 4460/tcp
NTS przenosi ciężką kryptografię do osobnego kanału TLS 1.3 na 4460/tcp (ntske/1
). Słabe implementacje (zobacz CVE-2023-33192) zawieszają się podczas analizy ciasteczek lub pozwalają na słabe szyfry. Pentesterzy powinni:
# 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
Szukaj certyfikatów samopodpisanych lub wygasłych oraz słabych zestawów szyfrujących (non-AEAD). Odniesienie: RFC 8915 §4.
Wzmacnianie / Najlepsze aktualne praktyki (BCP-233 / RFC 8633)
Operatorzy POWINNI:
- Używać ≥ 4 niezależnych, różnorodnych źródeł czasu (publiczne pule, GPS, mosty PTP), aby uniknąć zanieczyszczenia z jednego źródła.
- Włączyć ograniczenia
kod
orazlimited
/nomodify
, aby klienci nadużywający otrzymywali pakiety Kiss-o'-Death z ograniczeniem prędkości zamiast pełnych odpowiedzi. - Monitorować logi demona pod kątem zdarzeń panic lub dostosowań kroków > 1000 s. (Podpisy ataku zgodnie z RFC 8633 §5.3.)
- Rozważyć leap-smear, aby uniknąć przerw związanych z sekundą przestępną, ale upewnić się, że wszyscy klienci downstream używają tego samego okna smarowania.
- Utrzymywać polling ≤24 h, aby nie przegapić flag sekund przestępnych.
Zobacz RFC 8633, aby uzyskać kompleksową listę kontrolną.
Shodan / Censys Dorks
port:123 "ntpd" # Version banner
udp port:123 monlist:true # Censys tag for vulnerable servers
port:4460 "ntske" # NTS-KE
Przydatne Narzędzia
Narzędzie | Cel | Przykład |
---|---|---|
ntpwn | Wrapper dla script-kiddie do rozprzestrzeniania zapytań monlist i peers | python ntpwn.py --monlist targets.txt |
zgrab2 ntp | Masowe skanowanie / wyjście JSON z flagą monlist | Zobacz polecenie powyżej |
chronyd z allow | Uruchomienie nieautoryzowanego serwera NTP w laboratorium pentestowym | chronyd -q 'server 127.127.1.0 iburst' |
BetterCap | Wstrzykiwanie pakietów NTP dla ataku MITM z przesunięciem czasowym na Wi-Fi | set arp.spoof.targets <victim>; set ntp.time.delta 30s; arp.spoof on |
Automatyczne Komendy 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}
Odniesienia
- RFC 8915 – Bezpieczeństwo Czasu Sieciowego dla Protokółu Czasu Sieciowego (port 4460)
- RFC 8633 – Protokół Czasu Sieciowego BCP
- Raport Cloudflare DDoS 2024 Q4 (5.6 Tbps)
- Artykuł Cloudflare Atak Amplifikacyjny NTP
- NTP 4.2.8p15 seria CVE 2023-04
- Wpisy NVD CVE-2023-26551–55, CVE-2023-33192
- Aktualizacja zabezpieczeń SUSE chrony 2024 (chrony 4.5)
- Projekt Khronos/Chronos (łagodzenie przesunięcia czasowego)
- Podręcznik chronyc/przykłady do zdalnego monitorowania
- Dokumentacja modułu ntp zgrab2
tip
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się i ćwicz Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Wsparcie dla HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.