500/udp - Pentesting IPsec/IKE VPN
Try Hard सुरक्षा समूह
मौलिक जानकारी
IPsec को नेटवर्क (LAN-to-LAN) के बीच संचार को सुरक्षित बनाने के लिए मुख्य प्रौद्योगिकी के रूप में मान्यता प्राप्त है और दूरस्थ उपयोगकर्ताओं को नेटवर्क गेटवे (दूरस्थ पहुंच) से सुरक्षित करने के लिए, उद्यमी VPN समाधानों के लिए मूलभूत रूप से काम करता है।
दो बिंदुओं के बीच एक सुरक्षा संघटन (SA) की स्थापना IKE द्वारा प्रबंधित की जाती है, जो ISAKMP की छाती के तहत कार्य करता है, एक प्रोटोकॉल जो प्रमाणीकरण और कुंजी विनिमय के लिए डिज़ाइन किया गया है। यह प्रक्रिया कई चरणों में विकसित होती है:
चरण 1: दो अंतबिंदुओं के बीच एक सुरक्षित चैनल बनाया जाता है। इसे एक पूर्व-साझा कुंजी (PSK) या प्रमाणपत्रों का उपयोग करके प्राप्त किया जाता है, जिसमें मुख्य मोड, जिसमें तीन जोड़ों का संदेश शामिल है, या उत्कृष्ट मोड शामिल है।
चरण 1.5: यह चरण अनिवार्य नहीं है, इसे विस्तारित प्रमाणीकरण चरण के रूप में जाना जाता है, जो उपयोगकर्ता की पहचान की पुष्टि करता है जो कनेक्ट करने का प्रयास कर रहा है, उपयोगकर्ता नाम और पासवर्ड की आवश्यकता होती है।
चरण 2: यह चरण ESP और AH के साथ डेटा को सुरक्षित करने के पैरामीटरों की बातचीत के लिए समर्पित है। यह चरण चरण 1 में उपयोग किए गए एल्गोरिदम के अलावा अलग एल्गोरिदमों का उपयोग करने की अनुमति देता है ताकि पर्फेक्ट फॉरवर्ड सीक्रेसी (PFS) सुनिश्चित कर सके, सुरक्षा को बढ़ाते हुए।
डिफ़ॉल्ट पोर्ट: 500/udp
nmap का उपयोग करके सेवा की खोज करें
एक वैध परिवर्तन खोजना
IPSec कॉन्फ़िगरेशन केवल एक या कुछ परिवर्तन स्वीकार करने के लिए तैयार किया जा सकता है। एक परिवर्तन एक मानों का संयोजन है। प्रत्येक परिवर्तन में DES या 3DES जैसे एन्क्रिप्शन एल्गोरिथ्म, SHA या MD5 जैसे अखंडता एल्गोरिथ्म, पूर्व-साझा की गई कुंजी जैसे प्रमाणीकरण प्रकार, Diffie-Hellman 1 या 2 जैसे कुंजी **वितरण एल्गोर
जैसा कि आप पिछले जवाब में देख सकते हैं, एक फ़ील्ड है जिसे AUTH नाम से दिखाया गया है और इसका मान PSK है। इसका मतलब है कि vpn को एक पूर्व-साझा कुंजी का उपयोग करके कॉन्फ़िगर किया गया है (और यह एक पेंटेस्टर के लिए वास्तव में अच्छा है)। आखिरी पंक्ति का मान भी बहुत महत्वपूर्ण है:
0 returned handshake; 0 returned notify: इसका मतलब है कि लक्ष्य एक आईपीसेक गेटवे नहीं है।
1 returned handshake; 0 returned notify: इसका मतलब है कि लक्ष्य आईपीसेक के लिए कॉन्फ़िगर किया गया है और आईके वार्ता करने के लिए तैयार है, और आपके प्रस्तावित एक या एक से अधिक ट्रांसफ़ॉर्म स्वीकारने योग्य हैं (एक मान्य ट्रांसफ़ॉर्म आउटपुट में दिखाया जाएगा)।
0 returned handshake; 1 returned notify: VPN गेटवे उस समय एक सूचना संदेश के साथ प्रतिक्रिया करते हैं जब कोई भी ट्रांसफ़ॉर्म स्वीकारने योग्य नहीं है (हालांकि कुछ गेटवे ऐसा नहीं करते, जिसका मतलब यह है कि और विश्लेषण और एक संशोधित प्रस्ताव की कोशिश की जानी चाहिए)।
फिर, इस मामले में हमारे पास पहले से ही एक मान्य परिवर्तन है लेकिन यदि आप तीसरे मामले में हैं, तो आपको एक मान्य परिवर्तन खोजने के लिए थोड़ा सा ब्रूट-फ़ोर्स करना होगा:
सबसे पहले आपको सभी संभावित परिवर्तन बनाने होंगे:
और फिर ike-scan का उपयोग करके प्रत्येक को ब्रूट-फोर्स करें (यह कई मिनट ले सकता है):
अगर ब्रूट-फोर्स काम नहीं कर रहा है, तो शायद सर्वर मान्य ट्रांसफॉर्म के बिना हैंडशेक के बिना प्रतिक्रिया दे रहा है। फिर, आप एक ही ब्रूट-फोर्स का प्रयास कर सकते हैं लेकिन एग्रेसिव मोड का उपयोग करके:
Hopefully एक मान्य परिवर्तन वापस दिखाया जाएगा. You can try the same attack using iker.py. You could also try to brute force transformations with ikeforce:
DH समूह: 14 = 2048-बिट MODP और 15 = 3072-बिट
2 = HMAC-SHA = SHA1 (इस मामले में)। --trans
प्रारूप है $Enc,$Hash,$Auth,$DH
सिस्को इसका सुझाव देता है कि DH समूह 1 और 2 का उपयोग न करें क्योंकि वे पर्याप्त मजबूत नहीं हैं। विशेषज्ञ मानते हैं कि संसाधनों से भरपूर देश आसानी से इन कमजोर समूहों का उपयोग करते डेटा के एन्क्रिप्शन को तोड़ सकते हैं। इसे तेजी से कोड तोड़ने के लिए तैयार करने वाली एक विशेष विधि का उपयोग करके किया जाता है। यह विधि स्थापित करने में काफी पैसा खर्च करने के बावजूद, यह शक्तिशाली देशों को यदि यह एन्क्रिप्टेड डेटा पढ़ रहे हैं तो उसे वास्तविक समय में पढ़ने की अनुमति देता है अगर यह किसी मजबूत समूह का उपयोग नहीं कर रहा है (जैसे 1,024-बिट या छोटा)।
सर्वर फिंगरप्रिंटिंग
फिर, आप उस उपकरण के विक्रेता का पता लगाने के लिए ike-scan का उपयोग कर सकते हैं। यह उपकरण एक प्रारंभिक प्रस्ताव भेजता है और पुनरावृत्ति करना बंद कर देता है। फिर, यह सर्वर से प्राप्त संदेशों और मिलान जवाब पैटर्न के बीच समय अंतर का विश्लेषण करके, पेंटेस्टर वीपीएन गेटवे विक्रेता को सफलतापूर्वक फिंगरप्रिंट कर सकता है। इसके अतिरिक्त, कुछ वीपीएन सर्वर आईके के साथ वैकल्पिक विक्रेता आईडी (वीआईडी) पेलोड का उपयोग करेंगे।
आवश्यक होने पर मान्य परिवर्तन निर्दिष्ट करें (उपयोग करके --trans)
यदि आईके जांचता है कि विक्रेता कौन है तो यह उसे प्रिंट करेगा:
यह भी nmap स्क्रिप्ट ike-version के साथ प्राप्त किया जा सकता है।
सही आईडी (समूह नाम) खोजना
हैश को कैप्चर करने की अनुमति प्राप्त करने के लिए आपको एक मान्य परिवर्तन की आवश्यकता है जो आग्रेसिव मोड का समर्थन करता है और सही आईडी (समूह नाम)। आप शायद मान्य समूह नाम नहीं जानेंगे, इसलिए आपको इसे ब्रूट-फोर्स करना होगा। इसे करने के लिए, मैं आपको 2 तरीके सुझाऊंगा:
ike-scan के साथ आईडी को ब्रूटफोर्स करना
सबसे पहले, एक नकली आईडी के साथ एक अनुरोध बनाने की कोशिश करें हैश जुटाने की कोशिश करें ("-P"):
यदि कोई हैश वापस नहीं आता है, तो संभावना है कि इस तरह का ब्रूट फोर्सिंग का तरीका काम करेगा। यदि कोई हैश वापस आता है, तो इसका मतलब है कि एक नकली हैश एक नकली आईडी के लिए भेजा जा रहा है, इसलिए यह तरीका आईडी को ब्रूट-फोर्स न करने के लिए विश्वसनीय नहीं होगा। उदाहरण के लिए, एक नकली हैश वापस भेजा जा सकता है (यह आधुनिक संस्करणों में होता है):
लेकिन जैसा कि मैंने कहा है, अगर कोई हैश वापस नहीं आता है, तो आपको ike-scan का उपयोग करके सामान्य समूह नामों को ब्रूट-फोर्स करने की कोशिश करनी चाहिए।
यह स्क्रिप्ट संभावित आईडी को ब्रूट-फोर्स करने की कोशिश करेगा और उन आईडी को वापस देगा जहां एक वैध हैंडशेक वापस आता है (यह एक वैध समूह नाम होगा)।
यदि आपने कोई विशिष्ट परिवर्तन खोज लिया है तो इसे ike-scan कमांड में जोड़ें। और यदि आपने कई परिवर्तन खोज लिए हैं तो उन सभी को प्रयास करने के लिए एक नया लूप जोड़ने का मुक्त है (आपको सभी को प्रयास करना चाहिए जब तक एक सही तरीके से काम न करने लगे)।
आप ikeforce की शब्दावली या seclists में एक सामान्य समूह नामों की शब्दावली का उपयोग कर सकते हैं।
ID को आईकेर के साथ ब्रूटफोर्सिंग
iker.py भी ike-scan का उपयोग करता है ताकि संभावित समूह नामों की ब्रूटफोर्सिंग कर सके। यह अपनी विधि का पालन करता है ike-scan के आउटपुट के आधार पर एक वैध आईडी खोजने के लिए।
आईकेफोर्सिंग के साथ आईडी को ब्रूटफोर्सिंग
ikeforce.py एक उपकरण है जिसका उपयोग आईडी को ब्रूटफोर्स करने के लिए किया जा सकता है। यह उपकरण विभिन्न सुरक्षा दोषों का उपयोग करने की कोशिश करेगा जो एक वैध और एक अवैध आईडी के बीच भिन्नता कर सकते हैं (यह झूठे सकारात्मक और झूठे नकारात्मक हो सकते हैं, इसलिए मैं यदि संभव हो तो आईके-स्कैन विधि का उपयोग करने की प्राथमिकता देता हूं)।
डिफ़ॉल्ट रूप से ikeforce शुरुआत में कुछ यादृच्छिक आईडी भेजेगा ताकि सर्वर के व्यवहार की जांच कर सके और उपयुक्त तकनीक का निर्धारण कर सके।
पहली विधि समूह नामों को ब्रूटफोर्स करने के लिए डेड पीयर डिटेक्शन डीपीडी की जानकारी की खोज करना है Cisco सिस्टमों के लिए (यह जानकारी केवल तब सर्वर द्वारा पुनः भेजी जाती है जब समूह नाम सही होता है)।
उपलब्ध दूसरी विधि हर प्रयास पर भेजे गए प्रतिक्रियाओं की संख्या की जांच करती है क्योंकि कभी-कभी सही आईडी का उपयोग करने पर अधिक पैकेट भेजे जाते हैं।
तीसरी विधि गलत आईडी के प्रति प्रतिक्रिया में "अवैध आईडी जानकारी" की खोज करने का है।
अंततः, यदि सर्वर किसी भी जांच का कोई जवाब नहीं देता है, तो ikeforce सर्वर को ब्रूटफोर्स करने की कोशिश करेगा और जांचेगा कि सही आईडी भेजने पर सर्वर किसी पैकेट के साथ प्रतिक्रिया करता है।
स्पष्ट है कि आईडी को ब्रूटफोर्स करने का उद्देश्य एक वैध आईडी होने पर PSK प्राप्त करना है। फिर, आईडी और PSK के साथ आपको XAUTH को ब्रूटफोर्स करना होगा (यदि यह सक्षम है)।
यदि आपने कोई विशिष्ट परिवर्तन खोज लिया है तो आईकेफोर्स कमांड में उसे जोड़ें। और यदि आपने कई परिवर्तन खोज लिए हैं तो उन्हें सभी की जांच करने के लिए एक नया लूप जोड़ने के लिए स्वतंत्र महसूस करें (आपको सभी की जांच करनी चाहिए जब तक एक सही तरीके से काम कर रहा हो)।
स्निफ़िंग आईडी
(पुस्तक से नेटवर्क सुरक्षा मूल्यांकन: अपने नेटवर्क को जानें): VPN क्लाइंट और सर्वर के बीच कनेक्शन को स्निफ़ करके मान्य उपयोगकर्ता नाम प्राप्त करना भी संभव है, क्योंकि पहला एग्रेसिव मोड पैकेट जो क्लाइंट आईडी वाला होता है, वह साफ होता है।
हैश को कैप्चर और क्रैक करना
अंत में, अगर आपने एक मान्य परिवर्तन और समूह नाम पाया है और यदि एग्रेसिव मोड अनुमत है, तो आप बहुत आसानी से क्रैक करने योग्य हैश को पकड़ सकते हैं:
हैश hash.txt फ़ाइल के अंदर सहेजा जाएगा।
आप psk-crack, john (using ikescan2john.py) और hashcat का उपयोग करके हैश को crack कर सकते हैं:
XAuth
आक्रामक मोड IKE को पूर्व-साझा कुंजी (PSK) के साथ सामान्यत: समूह प्रमाणीकरण के लिए प्रयोग किया जाता है। यह विधि XAuth (विस्तारित प्रमाणीकरण) द्वारा बढ़ाई जाती है, जो एक अतिरिक्त परत प्रमाणीकरण की एक तह लाती है। ऐसा प्रमाणीकरण सामान्यत: माइक्रोसॉफ्ट एक्टिव डायरेक्ट्री, RADIUS, या तुलनात्मक प्रणालियों का उपयोग करता है।
IKEv2 में परिभाषित होने पर, एक प्रमुख परिवर्तन देखा जाता है जहाँ EAP (विस्तारणीय प्रमाणीकरण प्रोटोकॉल) का उपयोग XAuth के स्थान पर उपयोग किया जाता है उपयोगकर्ताओं की प्रमाणीकरण के उद्देश्य से। यह परिवर्तन सुरक्षित संचार प्रोटोकॉलों में प्रमाणीकरण अभ्यासों में एक विकास को दर्शाता है।
स्थानीय नेटवर्क MitM क्रेडेंशियल कैप्चर करने के लिए
ताकि आप लॉगिन के डेटा को fiked का उपयोग करके कैप्चर कर सकें और देख सकें कि क्या कोई डिफ़ॉल्ट उपयोगकर्ता है (आपको IKE ट्रैफिक को स्निफ़ करने के लिए fiked
पर पुनर्निर्देशित करने की आवश्यकता है, जो ARP स्पूफिंग के साथ किया जा सकता है, अधिक जानकारी)। Fiked एक VPN अंत-बिंदु के रूप में कार्य करेगा और XAuth क्रेडेंशियल को कैप्चर करेगा:
IPSec का उपयोग करके MitM हमला करने का प्रयास करें और पोर्ट 500 पर सभी ट्रैफिक को ब्लॉक करें, यदि IPSec टनल स्थापित नहीं किया जा सकता है तो शायद ट्रैफिक साफ में भेजा जाएगा।
ikeforce के साथ XAUTH उपयोगकर्ता नाम और पासवर्ड की ब्रूट-फोर्सिंग
XAUTH (जब आप एक मान्य समूह नाम id और psk को जानते हैं) को ब्रूट फोर्स करने के लिए आप एक उपयोगकर्ता नाम या उपयोगकर्ता नामों की सूची और एक पासवर्ड की सूची का उपयोग कर सकते हैं:
इस तरह, ikeforce यूजरनेम:पासवर्ड के प्रत्येक कॉम्बिनेशन का उपयोग करके कनेक्ट करने का प्रयास करेगा।
IPSEC VPN के साथ प्रमाणीकरण
काली में, VPNC का उपयोग IPsec टनल स्थापित करने के लिए किया जाता है। प्रोफाइल को निर्दिष्ट करने के लिए निर्देशिका /etc/vpnc/
में होनी चाहिए। आप इन प्रोफाइल्स को vpnc कमांड का उपयोग करके प्रारंभ कर सकते हैं।
निम्नलिखित कमांड और कॉन्फ़िगरेशन VPN कनेक्शन स्थापित करने की प्रक्रिया का वर्णन करते हैं:
In this setup:
[VPN_GATEWAY_IP]
को VPN गेटवे का वास्तविक IP पता से बदलें।[VPN_CONNECTION_ID]
को VPN कनेक्शन के लिए पहचानकर्ता से बदलें।[VPN_GROUP_SECRET]
को VPN के समूह गुप्त से बदलें।[VPN_USERNAME]
और[VPN_PASSWORD]
को VPN प्रमाणीकरण क्रेडेंशियल्स से बदलें।vpnc
शुरू करते समय जिस प्रक्रिया आईडी को नियुक्त किया जाएगा, उसे[PID]
प्रतीत करता है।
VPN को कॉन्फ़िगर करते समय, कृपया प्लेसहोल्डर की जगह वास्तविक, सुरक्षित मानों का उपयोग सुनिश्चित करें।
संदर्भ सामग्री
नेटवर्क सुरक्षा मूल्यांकन 3 वीं संस्करण
शोडन
port:500 IKE
Try Hard सुरक्षा समूह
Last updated