# 123/udp - Pentesting NTP {{#include ../banners/hacktricks-training.md}} ## Basic Information **नेटवर्क टाइम प्रोटोकॉल (NTP)** यह सुनिश्चित करता है कि कंप्यूटर और नेटवर्क उपकरण विभिन्न-लेटेंसी नेटवर्क में अपने घड़ियों को सटीक रूप से समन्वयित करें। यह IT संचालन, सुरक्षा और लॉगिंग में सटीक समयkeeping बनाए रखने के लिए महत्वपूर्ण है। चूंकि समय का उपयोग लगभग हर प्रमाणीकरण, क्रिप्टो-प्रोटोकॉल और फोरेंसिक प्रक्रिया में किया जाता है, **एक हमलावर जो NTP को प्रभावित कर सकता है, अक्सर सुरक्षा नियंत्रणों को बायपास कर सकता है या हमलों की जांच करना कठिन बना सकता है।** ### Summary & Security Tips - **उद्देश्य**: नेटवर्क के माध्यम से उपकरणों की घड़ियों को समन्वयित करना। - **महत्व**: सुरक्षा, लॉगिंग, क्रिप्टो-प्रोटोकॉल और वितरित प्रणालियों के लिए महत्वपूर्ण। - **सुरक्षा उपाय**: - प्रमाणीकरण के साथ विश्वसनीय NTP या NTS (नेटवर्क टाइम सुरक्षा) स्रोतों का उपयोग करें। - यह सीमित करें कि कौन डेमन को क्वेरी/कमांड कर सकता है (``restrict default noquery``, ``kod`` आदि)। - पुराने मोड-6/7 नियंत्रण क्वेरी (``monlist``, ``ntpdc``) को निष्क्रिय करें या उनकी दर को सीमित करें। - छेड़छाड़ के लिए समन्वय ड्रिफ्ट/लीप-सेकंड स्थिति की निगरानी करें। - डेमन को अपडेट रखें (नीचे हाल के CVE देखें)। **डिफ़ॉल्ट पोर्ट्स** ``` 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 ### Classic 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 (अधिकांश आधुनिक Linux वितरणों में) जब ``cmdallow`` सक्षम होता है, तो केवल कुछ ही निगरानी कमांड दूरस्थ IP से स्वीकार किए जाते हैं: ```bash chronyc -a -n tracking -h chronyc -a -n sources -v -h chronyc -a -n sourcestats -h ``` **M/S** ध्वजों और अन्य क्षेत्रों (stratum, reach, jitter, आदि) के अर्थ के लिए chronyc मैन पृष्ठ देखें। ### 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 ``` ### मास/इंटरनेट स्कैनिंग ```bash # Check if MONLIST is enabled (zgrab2 module) zgrab2 ntp --monlist --timeout 3 --output-file monlist.json -f "zmap_results.csv" ``` --- ## कॉन्फ़िगरेशन फ़ाइलों की जांच करें - ``/etc/ntp.conf`` (ntpd) - ``/etc/chrony/chrony.conf`` (chrony) - ``/etc/systemd/timesyncd.conf`` (timesyncd – केवल क्लाइंट) ``restrict`` लाइनों, ``kod`` (Kiss-o'-Death) सेटिंग्स, ``disable monitor``/``includefile /etc/ntp/crypto`` और यह कि *NTS* सक्षम है (``nts enable``) पर विशेष ध्यान दें। --- ## हाल की कमजोरियाँ (2023-2025) | वर्ष | CVE | घटक | प्रभाव | |------|-----|-----------|--------| | 2023 | **CVE-2023-26551→26555** | ntp 4.2.8p15 (libntp *mstolfp*, *praecis_parse*) | **ntpq** प्रतिक्रियाओं के माध्यम से पहुंच योग्य कई आउट-ऑफ-बाउंड लिखते हैं। **4.2.8p16** में पैच 🡒 अपग्रेड या बैक-पोर्ट फिक्स करें। | | 2023 | **CVE-2023-33192** | **ntpd-rs** (Rust कार्यान्वयन) | गलत फ़ॉर्मेट वाला **NTS** कुकी दूरस्थ **DoS** का कारण बनता है v0.3.3 से पहले – पोर्ट 123 को प्रभावित करता है जब NTS **अक्षम** हो। | | 2024 | वितरण अपडेट | **chrony 4.4 / 4.5** – कई सुरक्षा हार्डनिंग और NTS-KE फिक्स (जैसे SUSE-RU-2024:2022) | | 2024 | रिकॉर्ड DDoS | Cloudflare ने **5.6 Tbps UDP परावर्तन** हमले की रिपोर्ट की (NTP प्रोटोकॉल में से एक)। इंटरनेट-फेसिंग होस्ट पर *monitor* और *monlist* को अक्षम रखें। | > **एक्सप्लॉइट किट**: 2023 ntpq OOB-write श्रृंखला के लिए प्रूफ-ऑफ-कॉन्सेप्ट पेलोड GitHub पर हैं (Meinberg लेख देखें) और इसे सिस्टम प्रशासकों के लिए क्लाइंट-साइड फ़िशिंग के लिए हथियारबंद किया जा सकता है। --- ## उन्नत हमले ### 1. NTP एम्प्लीफिकेशन / परावर्तन विरासत मोड-7 ``monlist`` क्वेरी **600 होस्ट पते** तक लौटाती है और अभी भी हजारों इंटरनेट होस्ट पर मौजूद है। क्योंकि उत्तर (428-468 बाइट/एंट्री) 8-बाइट अनुरोध से *~ 200×* बड़ा है, एक हमलावर तीन अंकों के एम्प्लीफिकेशन फैक्टर तक पहुंच सकता है। शमन: - ntp 4.2.8p15+ पर अपग्रेड करें और ``disable monitor`` **जोड़ें**। - DDoS उपकरणों पर UDP/123 की दर-सीमा निर्धारित करें या *sessions-required* सक्षम करें। - स्रोत स्पूफिंग को ब्लॉक करने के लिए *BCP 38* निकासी फ़िल्टरिंग सक्षम करें। चरण-दर-चरण विवरण के लिए Cloudflare के लर्निंग-सेंटर लेख को देखें। ### 2. समय-शिफ्ट / देरी हमले (Khronos / Chronos अनुसंधान) प्रमाणीकरण के साथ भी, एक ऑन-पाथ हमलावर चुपचाप **क्लाइंट घड़ी** को पैकेट गिराकर/देरी देकर **शिफ्ट** कर सकता है। IETF **Khronos (पूर्व में Chronos) ड्राफ्ट** पृष्ठभूमि में विभिन्न सर्वरों को क्वेरी करने और परिणाम की सच्चाई की जांच करने का प्रस्ताव करता है ताकि > 𝚡 ms का शिफ्ट पता लगाया जा सके। आधुनिक chrony (4.4+) पहले से ही एक समान सच्चाई फ़िल्टर (``maxdistance`` / ``maxjitter``) लागू करता है। ### 3. NTS दुरुपयोग और 4460/tcp एक्सपोजर NTS भारी क्रिप्टो को एक अलग **TLS 1.3 चैनल पर 4460/tcp** (``ntske/1``) पर ले जाता है। खराब कार्यान्वयन (देखें CVE-2023-33192) कुकीज़ को पार्स करते समय क्रैश हो जाते हैं या कमजोर सिफर की अनुमति देते हैं। पेंटेस्टर्स को चाहिए: ```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 ``` स्व-हस्ताक्षरित या समाप्त प्रमाणपत्रों और कमजोर सिफर-सुइट्स (गैर-AEAD) की तलाश करें। संदर्भ: RFC 8915 §4। --- ## हार्डनिंग / सर्वोत्तम-वर्तमान-प्रथा (BCP-233 / RFC 8633) *ऑपरेटर को चाहिए:* 1. **≥ 4** स्वतंत्र, विविध समय स्रोतों (सार्वजनिक पूल, GPS, PTP-ब्रिज) का उपयोग करें ताकि एकल-स्रोत विषाक्तता से बचा जा सके। 2. ``kod`` और ``limited``/``nomodify`` प्रतिबंधों को सक्षम करें ताकि दुरुपयोग करने वाले क्लाइंट्स को पूर्ण प्रतिक्रियाओं के बजाय **Kiss-o'-Death** दर-सीमा पैकेट प्राप्त हों। 3. **panic** घटनाओं या चरण समायोजनों > 1000 सेकंड के लिए डेमन लॉग की निगरानी करें। (RFC 8633 §5.3 के अनुसार हमले के संकेत।) 4. कूद-धुंधलापन पर विचार करें ताकि कूद-सेकंड आउटेज से बचा जा सके, लेकिन सुनिश्चित करें कि *सभी* डाउनस्ट्रीम क्लाइंट्स एक ही धुंधलापन विंडो का उपयोग करें। 5. पोलिंग को ≤24 घंटे रखें ताकि कूद-सेकंड ध्वज छूट न जाएं। व्यापक चेकलिस्ट के लिए RFC 8633 देखें। --- ## Shodan / Censys Dorks ``` port:123 "ntpd" # Version banner udp port:123 monlist:true # Censys tag for vulnerable servers port:4460 "ntske" # NTS-KE ``` --- ## उपयोगी उपकरण | उपकरण | उद्देश्य | उदाहरण | |------|---------|---------| | ``ntpwn`` | स्क्रिप्ट-किडी wrapper जो monlist & peers क्वेरी को स्प्रे करता है | ``python ntpwn.py --monlist targets.txt`` | | **zgrab2 ntp** | मास स्कैनिंग / JSON आउटपुट जिसमें monlist फ्लैग शामिल है | ऊपर दिए गए कमांड को देखें | | ``chronyd`` with ``allow`` | पेंटेस्ट लैब में धोखाधड़ी NTP सर्वर चलाना | ``chronyd -q 'server 127.127.1.0 iburst'`` | | ``BetterCap`` | Wi-Fi पर समय-शिफ्ट MITM के लिए NTP पैकेट इंजेक्ट करना | ``set arp.spoof.targets ; set ntp.time.delta 30s; arp.spoof on`` | --- ## 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} ``` --- ## संदर्भ - RFC 8915 – *नेटवर्क टाइम प्रोटोकॉल के लिए नेटवर्क टाइम सुरक्षा* (पोर्ट 4460) - RFC 8633 – *नेटवर्क टाइम प्रोटोकॉल BCP* - Cloudflare DDoS रिपोर्ट 2024 Q4 (5.6 Tbps) - Cloudflare *NTP एम्प्लीफिकेशन अटैक* लेख - NTP 4.2.8p15 CVE श्रृंखला 2023-04 - NVD प्रविष्टियाँ **CVE-2023-26551–55**, **CVE-2023-33192** - SUSE क्रोनि सुरक्षा अपडेट 2024 (क्रोनि 4.5) - Khronos/Chronos ड्राफ्ट (समय-शिफ्ट शमन) - chronyc मैनुअल/दूरस्थ निगरानी के लिए उदाहरण - zgrab2 ntp मॉड्यूल दस्तावेज़ {{#include ../banners/hacktricks-training.md}}