diff --git a/src/network-services-pentesting/pentesting-ntp.md b/src/network-services-pentesting/pentesting-ntp.md index 60060548c..cd4a5ecf0 100644 --- a/src/network-services-pentesting/pentesting-ntp.md +++ b/src/network-services-pentesting/pentesting-ntp.md @@ -4,59 +4,154 @@ ## 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 kayıt tutma için kesin zaman tutmanın sürdürülmesi açısından hayati öneme sahiptir. NTP'nin doğruluğu önemlidir, ancak düzgün yönetilmediğinde güvenlik riskleri de taşır. +**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 sağlanmasında kritik ö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ı: +### Özet & Güvenlik İpuçları - **Amaç**: Cihaz saatlerini ağlar üzerinden senkronize eder. -- **Önemi**: Güvenlik, kayıt tutma ve operasyonlar için kritik. +- **Önemi**: Güvenlik, günlükleme, kripto-protokoller ve dağıtık sistemler için kritik. - **Güvenlik Önlemleri**: -- Kimlik doğrulama ile güvenilir NTP kaynakları kullanın. -- NTP sunucusu ağ erişimini sınırlayın. -- Manipülasyon belirtileri için senkronizasyonu izleyin. +- Kimlik doğrulama ile güvenilir NTP veya NTS (Ağ Zaman Güvenliği) kaynakları kullanın. +- Daemon'u 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'u 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 +``` -**Varsayılan port:** 123/udp ``` PORT STATE SERVICE REASON 123/udp open ntp udp-response ``` -## Sayım -```bash -ntpq -c readlist -ntpq -c readvar -ntpq -c peers -ntpq -c associations -ntpdc -c monlist -ntpdc -c listpeers -ntpdc -c sysinfo -``` +--- +## 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 ``` -## Konfigürasyon dosyalarını inceleyin - -- ntp.conf - -## NTP Amplifikasyon Saldırısı - -[**NTP DDoS Saldırısının Nasıl Çalıştığı**](https://resources.infosecinstitute.com/network-time-protocol-ntp-threats-countermeasures/#gref) - -**NTP protokolü**, UDP kullanarak, TCP'nin aksine el sıkışma prosedürlerine ihtiyaç duymadan çalışmasına olanak tanır. Bu özellik, **NTP DDoS amplifikasyon saldırıları** sırasında istismar edilir. Burada, saldırganlar sahte bir kaynak IP ile paketler oluşturur, böylece saldırı taleplerinin kurban tarafından geldiği izlenimi yaratılır. Başlangıçta küçük olan bu paketler, NTP sunucusunun çok daha büyük veri hacimleriyle yanıt vermesine neden olarak saldırıyı amplifiye eder. - -_**MONLIST**_ komutu, nadir kullanıma rağmen, NTP hizmetine bağlı son 600 istemciyi raporlayabilir. Komutun kendisi basit olmasına rağmen, bu tür saldırılardaki kötüye kullanımı kritik güvenlik açıklarını vurgular. +### Kitle/İnternet taraması ```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 +--- +## Yapılandırma dosyalarını inceleyin -- `ntp` +- ``/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üncelleyin veya düzeltmeleri geri taşıyın. citeturn1search1turn1search2turn1search0| +| 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. citeturn4view0| +| 2024 | dağıtım güncellemeleri | **chrony 4.4 / 4.5** – birkaç güvenlik güçlendirmesi ve NTS-KE düzeltmesi (örneğin, SUSE-RU-2024:2022) citeturn2search2| +| 2024 | Kayıt DDoS | Cloudflare, **5.6 Tbps UDP yansıma** saldırısı (kullanılan protokoller arasında NTP) bildirmektedir. İnternete açık sunucularda *monitor* ve *monlist*'i devre dışı bırakın. citeturn5search0| + +> **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ı kimlik avı için silahlandırılabilir. citeturn1search4 + +--- +## İleri Düzey Saldırılar + +### 1. NTP Amplifikasyonu / Yansıma + +Eski Mod-7 ``monlist`` sorgusu, **600 host adresine** kadar dönebilir 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 **``disable monitor``** ekleyin. +- 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. citeturn5search1 + +### 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. citeturn9search1 + +### 3. NTS kötüye kullanımı ve 4460/tcp maruziyeti + +NTS, ağır kriptografiyi ayrı bir **TLS 1.3 kanalı üzerinde 4460/tcp** (``ntske/1``) taşır. Kötü uygulamalar (bkz. CVE-2023-33192) çerezleri işlerken çökebilir veya zayıf şifrelemelere izin verebilir. Pentester'lar şunları yapmalıdır: +```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. citeturn11search0 + +--- +## Güçlendirme / En İyi Mevcut Uygulama (BCP-233 / RFC 8633) + +*Operatörler ŞUNLARı yapmalıdır:* + +1. Tek kaynak 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 fazla 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 sorgulamayı ≤24 saat tutun. + +Kapsamlı bir kontrol listesi için RFC 8633'e bakın. 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 +``` +--- +## 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 #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}} +--- +## Referanslar + +- RFC 8915 – *Ağ Zaman Güvenliği için Ağ Zaman Protokolü* (port 4460) citeturn11search0 +- RFC 8633 – *Ağ Zaman Protokolü BCP* citeturn8search0 +- Cloudflare DDoS raporu 2024 Q4 (5.6 Tbps) citeturn5search0 +- Cloudflare *NTP Amplifikasyon Saldırısı* makalesi citeturn5search1 +- NTP 4.2.8p15 CVE serisi 2023-04 citeturn1search4 +- NVD kayıtları **CVE-2023-26551–55**, **CVE-2023-33192** citeturn1search1turn1search2turn1search0turn4view0 +- SUSE chrony güvenlik güncellemesi 2024 (chrony 4.5) citeturn2search2 +- Khronos/Chronos taslağı (zaman kaydırma azaltma) citeturn9search1 +- chronyc kılavuzu/uzaktan izleme için örnekler citeturn3search0turn10search1 +- zgrab2 ntp modülü belgeleri citeturn7search0 +{{#include /banners/hacktricks-training.md}}