diff --git a/src/network-services-pentesting/700-pentesting-epp.md b/src/network-services-pentesting/700-pentesting-epp.md index 94fabaaa8..369b47e69 100644 --- a/src/network-services-pentesting/700-pentesting-epp.md +++ b/src/network-services-pentesting/700-pentesting-epp.md @@ -4,12 +4,112 @@ ## Basic Information -Extensible Provisioning Protocol (EPP) एक नेटवर्क प्रोटोकॉल है जिसका उपयोग **डोमेन नामों और अन्य इंटरनेट संसाधनों के प्रबंधन** के लिए डोमेन नाम रजिस्ट्रियों और रजिस्ट्रार द्वारा किया जाता है। यह डोमेन नाम पंजीकरण, नवीनीकरण, स्थानांतरण और हटाने की प्रक्रियाओं का स्वचालन सक्षम बनाता है, जो डोमेन नाम प्रणाली (DNS) में विभिन्न संस्थाओं के बीच एक मानकीकृत और सुरक्षित संचार ढांचे को सुनिश्चित करता है। EPP को लचीला और विस्तारणीय बनाने के लिए डिज़ाइन किया गया है, जिससे इंटरनेट अवसंरचना की आवश्यकताओं के अनुसार नई सुविधाओं और आदेशों को जोड़ा जा सके। +Extensible Provisioning Protocol (EPP) एक नेटवर्क प्रोटोकॉल है जो **डोमेन नामों और अन्य इंटरनेट संसाधनों के प्रबंधन** के लिए डोमेन नाम रजिस्ट्रियों और रजिस्ट्रार द्वारा उपयोग किया जाता है। यह डोमेन नाम पंजीकरण, नवीनीकरण, स्थानांतरण और हटाने की प्रक्रियाओं का स्वचालन सक्षम करता है, जिससे डोमेन नाम प्रणाली (DNS) में विभिन्न संस्थाओं के बीच एक मानकीकृत और सुरक्षित संचार ढांचा सुनिश्चित होता है। EPP को लचीला और विस्तारित करने योग्य बनाने के लिए डिज़ाइन किया गया है, जिससे इंटरनेट बुनियादी ढांचे की आवश्यकताओं के अनुसार नई सुविधाओं और आदेशों को जोड़ा जा सके। -बुनियादी रूप से, यह एक ऐसा प्रोटोकॉल है जो **TLD रजिस्ट्रार डोमेन रजिस्ट्रारों को नए डोमेन पंजीकरण के लिए प्रदान करने जा रहा है**। +बुनियादी रूप से, यह एक प्रोटोकॉल है जो **TLD रजिस्ट्रार डोमेन रजिस्ट्रारों को नए डोमेन पंजीकृत करने के लिए पेश करेगा**। ### Pentest -[**इस बहुत दिलचस्प लेख में**](https://hackcompute.com/hacking-epp-servers/) आप देख सकते हैं कि कैसे कुछ सुरक्षा शोधकर्ताओं ने पाया कि इस प्रोटोकॉल के कई **क्रियान्वयन** XXE (XML External Entity) के प्रति संवेदनशील थे क्योंकि यह प्रोटोकॉल संचार के लिए XML का उपयोग करता है, जिससे हमलावरों को विभिन्न TLDs पर नियंत्रण पाने की अनुमति मिलती। +[**इस बहुत दिलचस्प लेख में**](https://hackcompute.com/hacking-epp-servers/) आप देख सकते हैं कि कुछ सुरक्षा शोधकर्ताओं ने पाया कि इस प्रोटोकॉल के कई **क्रियान्वयन** XXE (XML External Entity) के प्रति संवेदनशील थे क्योंकि यह प्रोटोकॉल संचार के लिए XML का उपयोग करता है, जिससे हमलावरों को विभिन्न TLDs पर नियंत्रण पाने की अनुमति मिलती। +--- + +## Enumeration & Recon + +EPP सर्वर लगभग हमेशा TCP `700/tcp` पर TLS के माध्यम से सुनते हैं। एक सामान्य तैनाती **म्यूचुअल-TLS (mTLS)** को भी लागू करती है, इसलिए क्लाइंट को रजिस्ट्र्री CA द्वारा जारी एक मान्य प्रमाणपत्र प्रस्तुत करना चाहिए। फिर भी, कई निजी परीक्षण या पूर्व-उत्पादन तैनातियाँ उस नियंत्रण को भूल जाती हैं: +```bash +# Banner-grabbing / TLS inspection +nmap -p700 --script ssl-cert,ssl-enum-ciphers + +# Check if mTLS is *really* required (it frequently is not!) +openssl s_client -connect :700 -quiet \ +-servername epp.test 2>/dev/null | head +``` +यदि सर्वर TLS हैंडशेक के बाद कनेक्शन समाप्त नहीं करता है, तो आप एक अनधिकृत `` संदेश भेजने का प्रयास कर सकते हैं: +```xml + + + + +``` +### Open-source clients useful for testing + +* **epp-client (Go)** – सक्रिय रूप से बनाए रखा गया, TCP/TLS और EPP-over-HTTPS (RFC 8730) का समर्थन करता है: +`go install github.com/domainr/epp/cmd/epp@latest` +* **gandi/go-epp** – न्यूनतम क्लाइंट लाइब्रेरी जिसे फज़िंग या न्‍यूक्लीय-शैली के वर्कफ़्लो के लिए आसानी से उपकरणीकृत किया जा सकता है। +* **afq984/php-epp-client** – PHP कार्यान्वयन जो कई छोटे रजिस्ट्रार द्वारा उपयोग किया जाता है; कोड-रिव्यू के लिए एक सुविधाजनक लक्ष्य। + +Example minimal login+check script with Go epp-client: +```go +package main +import ( +"github.com/domainr/epp" +"crypto/tls" +) + +func main() { +cfg := &tls.Config{InsecureSkipVerify: true} +c, _ := epp.DialTLS("epp.test:700", cfg) +c.Login("CLIENT_ID", "PASSWORD", nil) +resp, _ := c.DomainCheck("example","com") +println(resp) +} +``` +--- + +## सामान्य कमजोरियाँ और 2023-2025 कमजोरियाँ + +| वर्ष | घटक | CWE | प्रभाव | +|------|-----------|-----|--------| +| 2023 | CoCCA रजिस्ट्र्री < 3.5 | CWE-611 XXE | दूरस्थ फ़ाइल पढ़ना और SSRF तैयार `` पेलोड के माध्यम से (पैच: 2023-11-02) | +| 2024 | FRED EPP सर्वर 2.x | CWE-322 अपर्याप्त TLS प्रमाणपत्र सत्यापन | mTLS का बायपास अनधिकृत रजिस्ट्रार लॉगिन की अनुमति देता है | +| 2025 | स्वामित्व वाला रजिस्ट्रार पैनल | CWE-306 महत्वपूर्ण कार्य के लिए प्रमाणीकरण की कमी | डोमेन ट्रांसफर अनुमोदन अंत बिंदु EPP-HTTP पुल के माध्यम से उजागर हुआ | + +### XXE / SSRF पेलोड (कई Java/Spring कार्यान्वयनों के खिलाफ काम करता है) +```xml + +]> + + + + +&xxe; + + + + +``` +जब पार्सर गलत तरीके से कॉन्फ़िगर किया गया हो (`XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES=true`), तो फ़ाइल की सामग्री `` संरचना के अंदर लौटाई जाती है। + +### अन्य सामान्य निष्कर्ष + +1. **कमजोर क्रेडेंशियल नीति** – EPP लॉगिन पासफ्रेज़ 8 अक्षरों से कम; ब्रूट-फोर्स अक्सर संभव है क्योंकि स्पेक केवल दर-सीमा लगाने की सिफारिश करता है (अनिवार्य नहीं)। +2. **गायब `registryLock` / `serverUpdateProhibited` स्थिति** – एक बार प्रमाणित होने के बाद, हमलावर तुरंत NS रिकॉर्ड अपडेट कर सकते हैं और ट्रैफ़िक चुरा सकते हैं। +3. **असाइन किए गए पोल संदेश** – कुछ कार्यान्वयन अभी भी पोल Q&A संदेशों पर हस्ताक्षर नहीं करते हैं, जिससे रजिस्ट्रार ऑपरेटरों की स्पूफिंग/फिशिंग संभव होती है। + +--- + +## हमले का मार्ग: शून्य से TLD हाइजैक तक + +1. एक EPP एंडपॉइंट खोजें (अक्सर एक सामान्य होस्ट जैसे `ot&e..nic.` के पीछे छिपा होता है)। +2. उपरोक्त में से एक कमजोरी का दुरुपयोग करके रजिस्ट्रार-स्तरीय क्रेडेंशियल प्राप्त करें (XXE → SSRF से IMDSv1, क्रेडेंशियल एक्सफिल, या TLS-बायपास)। +3. `` अनुरोध जारी करें ताकि डोमेन के `hostObj` रिकॉर्ड को हमलावर-नियंत्रित नाम सर्वरों में बदल सकें। +4. (वैकल्पिक) एक `` सबमिट करें ताकि डोमेन को हमलावर-नियंत्रित रजिस्ट्रार में स्थानांतरित किया जा सके – कई रजिस्ट्रियां अभी भी **एकल ऑथ-कोड** पर निर्भर करती हैं। +5. लाभ: DNS क्षेत्र का पूर्ण नियंत्रण, ACME के माध्यम से TLS प्रमाणपत्रों के लिए अनुरोध करने की क्षमता। + +--- + +## रक्षा उपाय और हार्डनिंग + +* **mTLS को प्रति-रजिस्ट्रार क्लाइंट प्रमाणपत्रों** के साथ लागू करें और रजिस्ट्र्री CA को पिन करें। +* `parserFeature secure-processing=true` या समकक्ष सेट करें ताकि XXE को समाप्त किया जा सके। +* XML पार्सर का **निरंतर फज़िंग** करें (जैसे, `go-fuzz` या Java के लिए `jazzer` के साथ)। +* उच्च-मूल्य वाले डोमेन के लिए **Registry Lock / server*Prohibited** स्थितियों को लागू करें। +* संदिग्ध `` या `` आदेशों के लिए `poll` कतार की निगरानी करें और वास्तविक समय में अलर्ट करें। +* ICANN 2024 DNS-शोषण अनुबंध संशोधन रजिस्ट्रियों को दर-सीमा और प्रमाणीकरण नियंत्रण साबित करने की आवश्यकता करते हैं – उनका लाभ उठाएं। + +## संदर्भ + +* ICANN सुरक्षा और स्थिरता सलाहकार समिति (SSAC)। "SAC118: रजिस्ट्र्री ऑपरेटर की EPP सुरक्षा नियंत्रण लागू करने में विफलता के परिणाम"। 2024। +* HackCompute – "EPP सर्वरों को हैक करना: TLD को हाइजैक करने के लिए XXE का दुरुपयोग" (2023)। {{#include ../banners/hacktricks-training.md}}