# 123/udp - Pentesting NTP {{#include ../banners/hacktricks-training.md}} ## Temel Bilgiler **Ağ Zaman Protokolü (NTP)**, değişken gecikme sürelerine sahip ağlar üzerinden bilgisayarların ve ağ cihazlarının saatlerini doğru bir şekilde senkronize etmelerini sağlar. IT operasyonları, güvenlik ve günlükleme için kesin zaman tutmanın sürdürülmesi açısından hayati öneme sahiptir. Zaman, neredeyse her kimlik doğrulama, kripto-protokol ve adli süreçte kullanıldığından, **NTP'yi etkileyebilen bir saldırgan genellikle güvenlik kontrollerini atlayabilir veya saldırıları araştırmayı zorlaştırabilir.** ### Özet & Güvenlik İpuçları - **Amaç**: Cihaz saatlerini ağlar üzerinden senkronize eder. - **Önemi**: Güvenlik, günlükleme, kripto-protokoller ve dağıtık sistemler için kritik öneme sahiptir. - **Güvenlik Önlemleri**: - Kimlik doğrulama ile güvenilir NTP veya NTS (Ağ Zaman Güvenliği) kaynakları kullanın. - Daemon'ı sorgulama/emir verme yetkisini kısıtlayın (``restrict default noquery``, ``kod`` vb.). - Eski Mod-6/7 kontrol sorgularını devre dışı bırakın (``monlist``, ``ntpdc``) veya oran sınırlaması uygulayın. - Manipülasyon için senkronizasyon kayması/sıçrama saniyesi durumunu izleyin. - Daemon'ı güncel tutun (aşağıdaki son CVE'lere bakın). **Varsayılan portlar** ``` 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 ``` --- ## Enumeration ### Klasik 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 (çoğu modern Linux dağıtımında) ``cmdallow`` etkinleştirildiğinde, uzaktan IP'lerden yalnızca birkaç izleme komutu kabul edilir: ```bash chronyc -a -n tracking -h chronyc -a -n sources -v -h chronyc -a -n sourcestats -h ``` **M/S** bayraklarının ve diğer alanların (stratum, reach, jitter, vb.) anlamı için chronyc man sayfasına bakın. ### 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 ``` ### Kütle/İnternet taraması ```bash # Check if MONLIST is enabled (zgrab2 module) zgrab2 ntp --monlist --timeout 3 --output-file monlist.json -f "zmap_results.csv" ``` --- ## Yapılandırma dosyalarını inceleyin - ``/etc/ntp.conf`` (ntpd) - ``/etc/chrony/chrony.conf`` (chrony) - ``/etc/systemd/timesyncd.conf`` (timesyncd – yalnızca istemci) Özellikle ``restrict`` satırlarına, ``kod`` (Kiss-o'-Death) ayarlarına, ``disable monitor``/``includefile /etc/ntp/crypto`` ve *NTS*'nin etkin olup olmadığına (``nts enable``) dikkat edin. --- ## Son Güvenlik Açıkları (2023-2025) | Yıl | CVE | Bileşen | Etki | |------|-----|-----------|--------| | 2023 | **CVE-2023-26551→26555** | ntp 4.2.8p15 (libntp *mstolfp*, *praecis_parse*) | **ntpq** yanıtları aracılığıyla erişilebilen çoklu sınır dışı yazmaları. **4.2.8p16**'da yamanmış, güncelleme veya geri portlama düzeltmeleri yapılmalıdır. | | 2023 | **CVE-2023-33192** | **ntpd-rs** (Rust uygulaması) | Bozuk **NTS** çerezi, v0.3.3'ten önce uzaktan **DoS**'ye neden olur – NTS **devre dışı** olsa bile 123 numaralı portu etkiler. | | 2024 | dağıtım güncellemeleri | **chrony 4.4 / 4.5** – birkaç güvenlik güçlendirmesi ve NTS-KE düzeltmesi (örn. SUSE-RU-2024:2022) | | 2024 | Kayıt DDoS | Cloudflare, **5.6 Tbps UDP yansıma** saldırısı bildirmektedir (NTP kullanılan protokoller arasında). İnternete açık sunucularda *monitor* ve *monlist*'i devre dışı bırakın. | > **Sömürü kitleri**: 2023 ntpq OOB-yazma serisi için kanıt konsepti yükleri GitHub'da mevcuttur (Meinberg yazısına bakın) ve sistem yöneticilerinin istemci tarafında oltalama için silahlandırılabilir. --- ## İleri Düzey Saldırılar ### 1. NTP Amplifikasyonu / Yansıma Eski Mod-7 ``monlist`` sorgusu, **600 host adresine kadar** döner ve hala binlerce İnternet sunucusunda mevcuttur. Yanıt (428-468 bayt/girdi) 8 baytlık isteğin *~ 200×* daha büyük olduğu için, bir saldırgan üç haneli amplifikasyon faktörlerine ulaşabilir. Önlemler: - ntp 4.2.8p15+ sürümüne yükseltin ve **ekleyin** ``disable monitor``. - UDP/123'ü kenarda hız sınırlaması yapın veya DDoS cihazlarında *sessions-required*'ı etkinleştirin. - Kaynak sahteciliğini engellemek için *BCP 38* çıkış filtrelemesini etkinleştirin. Adım adım bir inceleme için Cloudflare’ın öğrenim merkezi makalesine bakın. ### 2. Zaman Kaydırma / Gecikme saldırıları (Khronos / Chronos araştırması) Kimlik doğrulama ile bile, bir yol üzerindeki saldırgan, paketleri düşürerek/geciktirerek istemci saatini sessizce **kaydırabilir**. IETF **Khronos (eski adıyla Chronos) taslağı**, arka planda çeşitli sunucuları sorgulamayı ve sonucu kontrol ederek > 𝚡 ms kaymayı tespit etmeyi önermektedir. Modern chrony (4.4+) zaten benzer bir kontrol filtresi (``maxdistance`` / ``maxjitter``) uygulamaktadır. ### 3. NTS kötüye kullanımı & 4460/tcp maruziyeti NTS, ağır kriptografiyi ayrı bir **TLS 1.3 kanalı üzerinde 4460/tcp**'ye taşır (``ntske/1``). Kötü uygulamalar (bkz. CVE-2023-33192) çerezleri işlerken çökebilir veya zayıf şifrelemelere izin verebilir. Pentester'lar: ```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 ``` Kendinden imzalı veya süresi dolmuş sertifikaları ve zayıf şifreleme takımları (non-AEAD) arayın. Referans: RFC 8915 §4. --- ## Güçlendirme / En İyi Güncel Uygulama (BCP-233 / RFC 8633) *Operatörler ŞUNLARı yapmalıdır:* 1. Tek bir kaynağın zehirlenmesini önlemek için **≥ 4** bağımsız, çeşitli zaman kaynakları (kamusal havuzlar, GPS, PTP-köprüleri) kullanın. 2. Kötüye kullanan istemcilerin tam yanıtlar yerine **Kiss-o'-Death** hız sınırlama paketleri alması için ``kod`` ve ``limited``/``nomodify`` kısıtlamalarını etkinleştirin. 3. **Panik** olayları veya 1000 s'den büyük adım ayarlamaları için daemon günlüklerini izleyin. (RFC 8633 §5.3'e göre saldırı imzaları.) 4. Leap-second kesintilerini önlemek için **leap-smear**'ı düşünün, ancak *tüm* aşağı akış istemcilerinin aynı smear penceresini kullandığından emin olun. 5. Leap-second bayraklarının kaçırılmaması için anketi ≤24 saat tutun. Kapsamlı bir kontrol listesi için RFC 8633'e bakın. --- ## Shodan / Censys Dorks ``` port:123 "ntpd" # Version banner udp port:123 monlist:true # Censys tag for vulnerable servers port:4460 "ntske" # NTS-KE ``` --- ## Kullanışlı Araçlar | Araç | Amaç | Örnek | |------|---------|---------| | ``ntpwn`` | monlist & peers sorgularını yaymak için script-kiddie sarmalayıcı | ``python ntpwn.py --monlist targets.txt`` | | **zgrab2 ntp** | Toplu tarama / monlist bayrağı içeren JSON çıktısı | Yukarıdaki komuta bakın | | ``chronyd`` ile ``allow`` | Pentest laboratuvarında sahte NTP sunucusu çalıştırma | ``chronyd -q 'server 127.127.1.0 iburst'`` | | ``BetterCap`` | Wi-Fi'de zaman kaydırma MITM için NTP paketleri enjekte etme | ``set arp.spoof.targets ; set ntp.time.delta 30s; arp.spoof on`` | --- ## HackTricks Otomatik Komutlar ``` 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} ``` --- ## Referanslar - RFC 8915 – *Ağ Zaman Güvenliği için Ağ Zaman Protokolü* (port 4460) - RFC 8633 – *Ağ Zaman Protokolü BCP* - Cloudflare DDoS raporu 2024 Q4 (5.6 Tbps) - Cloudflare *NTP Amplifikasyon Saldırısı* makalesi - NTP 4.2.8p15 CVE serisi 2023-04 - NVD girişleri **CVE-2023-26551–55**, **CVE-2023-33192** - SUSE chrony güvenlik güncellemesi 2024 (chrony 4.5) - Khronos/Chronos taslağı (zaman kaydırma azaltma) - chronyc kılavuzu/uzaktan izleme için örnekler - zgrab2 ntp modülü belgeleri {{#include ../banners/hacktricks-training.md}}