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

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

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 (w większości nowoczesnych dystrybucji Linuksa)

Tylko garstka poleceń monitorujących jest akceptowana z zdalnych adresów IP, gdy cmdallow jest włączone:

bash
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

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>

Skanowanie masowe/Internetowe

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

RokCVEKomponentWpływ
2023CVE-2023-26551→26555ntp 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.
2023CVE-2023-33192ntpd-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.
2024aktualizacje dystrybucjichrony 4.4 / 4.5 – kilka poprawek zabezpieczeń i NTS-KE (np. SUSE-RU-2024:2022)
2024Rekordowy DDoSCloudflare 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:

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

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:

  1. Używać ≥ 4 niezależnych, różnorodnych źródeł czasu (publiczne pule, GPS, mosty PTP), aby uniknąć zanieczyszczenia z jednego źródła.
  2. Włączyć ograniczenia kod oraz limited/nomodify, aby klienci nadużywający otrzymywali pakiety Kiss-o'-Death z ograniczeniem prędkości zamiast pełnych odpowiedzi.
  3. Monitorować logi demona pod kątem zdarzeń panic lub dostosowań kroków > 1000 s. (Podpisy ataku zgodnie z RFC 8633 §5.3.)
  4. 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.
  5. 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ędzieCelPrzykład
ntpwnWrapper dla script-kiddie do rozprzestrzeniania zapytań monlist i peerspython ntpwn.py --monlist targets.txt
zgrab2 ntpMasowe skanowanie / wyjście JSON z flagą monlistZobacz polecenie powyżej
chronyd z allowUruchomienie nieautoryzowanego serwera NTP w laboratorium pentestowymchronyd -q 'server 127.127.1.0 iburst'
BetterCapWstrzykiwanie pakietów NTP dla ataku MITM z przesunięciem czasowym na Wi-Fiset 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