123/udp - Pentesting NTP

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

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 <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 (अधिकांश आधुनिक Linux वितरणों में)

जब cmdallow सक्षम होता है, तो केवल कुछ ही निगरानी कमांड दूरस्थ IP से स्वीकार किए जाते हैं:

bash
chronyc -a -n tracking   -h <IP>
chronyc -a -n sources -v -h <IP>
chronyc -a -n sourcestats -h <IP>

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 <IP>

# Explicit monlist check
nmap -sU -p123 --script ntp-monlist <IP>

मास/इंटरनेट स्कैनिंग

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घटकप्रभाव
2023CVE-2023-26551→26555ntp 4.2.8p15 (libntp mstolfp, praecis_parse)ntpq प्रतिक्रियाओं के माध्यम से पहुंच योग्य कई आउट-ऑफ-बाउंड लिखते हैं। 4.2.8p16 में पैच 🡒 अपग्रेड या बैक-पोर्ट फिक्स करें।
2023CVE-2023-33192ntpd-rs (Rust कार्यान्वयन)गलत फ़ॉर्मेट वाला NTS कुकी दूरस्थ DoS का कारण बनता है v0.3.3 से पहले – पोर्ट 123 को प्रभावित करता है जब NTS अक्षम हो।
2024वितरण अपडेटchrony 4.4 / 4.5 – कई सुरक्षा हार्डनिंग और NTS-KE फिक्स (जैसे SUSE-RU-2024:2022)
2024रिकॉर्ड DDoSCloudflare ने 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 <IP>

# Grab banner & ALPN
openssl s_client -connect <IP>: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'
BetterCapWi-Fi पर समय-शिफ्ट MITM के लिए NTP पैकेट इंजेक्ट करनाset arp.spoof.targets <victim>; 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 मॉड्यूल दस्तावेज़

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें