
Kerberos प्रमाणीकरण करने के लिए Burp Suite एक्सटेंशन
NCC Group Plc द्वारा ओपन सोर्स के रूप में जारी - http://www.nccgroup.trust/
Richard Turnbull द्वारा विकसित, richard [dot] turnbull [at] nccgroup [dot] com
http://www.github.com/nccgroup/Berserko
AGPL के अंतर्गत जारी, अधिक जानकारी के लिए LICENSE देखें
Berserko का आगे का विकास https://github.com/rteatea/Berserko पर होगा
Berserko एक Burp एक्सटेंशन है जो Kerberos प्रमाणीकरण करने के लिए समर्थन जोड़ता है। यह Windows डोमेन में परीक्षण के लिए उपयोगी है जब NTLM प्रमाणीकरण समर्थित नहीं होता है (Burp पहले से ही NTLM को संभालता है)। Berserko के लिए यह आवश्यक नहीं है कि Burp चलाने वाली मशीन डोमेन से जुड़ी हो (या यहाँ तक कि वह Windows चला रही हो)।
Burp का उपयोग करके Kerberos अनुप्रयोगों के परीक्षण के लिए वर्तमान में हमें ज्ञात एकमात्र मौजूदा समाधान Fiddler के माध्यम से श्रृंखला बनाना है, जिसमें इन निर्देशों के अनुसार प्रमाणीकरण सेट किया गया हो। लेकिन Fiddler केवल Windows के लिए है, और प्रॉक्सी की श्रृंखला बनाने से जटिलता बढ़ती है और प्रदर्शन बाधित होता है, इसलिए Burp के भीतर ही Kerberos क्षमता होना अच्छा है।
Releases टैब से, या berserko\releases फ़ोल्डर से नवीनतम Berserko jar फ़ाइल प्राप्त करें
Burp में Extender टैब पर जाएँ, Add चुनें, सुनिश्चित करें कि Extension type के रूप में Java चुना गया है, और फिर इसे jar फ़ाइल की ओर इंगित करें। सब ठीक रहने पर, Berserko टैब Burp UI में जुड़ जाना चाहिए।
Burp में Berserko टैब पर विभिन्न नियंत्रण हैं।
Do Kerberos authentication चेकबॉक्स एक मास्टर स्विच है। जब तक इसे सक्षम नहीं किया जाता, Berserko कुछ भी नहीं करेगा।
Restore defaults बटन Berserko को डिफ़ॉल्ट कॉन्फ़िगरेशन पर लौटा देगा (जिसमें कोई डोमेन विवरण या उपयोगकर्ता क्रेडेंशियल मौजूद नहीं हैं)।
Clear Kerberos state बटन क्लाइंट पर सभी Kerberos टिकट और अन्य स्थिति को साफ़ कर देगा। आपको इसका उपयोग करने की आवश्यकता केवल तभी पड़ सकती है यदि सर्वर पक्ष पर Kerberos कॉन्फ़िगरेशन में परिवर्तन किए गए हों और आप एक नई स्थिति से शुरू करना चाहते हों।
Write tickets to log बटन आपके वर्तमान Kerberos टिकटों के बारे में जानकारी Berserko की लॉग स्ट्रीम में लिखेगा - यह डिबगिंग/समस्या निवारण के लिए उपयोगी हो सकता है। लॉग देखने के लिए Burp के Extender टैब पर जाएँ, Berserko चुनें और नीचे Output टैब देखें। यहाँ Save to file विकल्प का उपयोग करना समझदारी हो सकती है, क्योंकि टिकट डेटा GUI में लॉग बफर को आसानी से भर सकता है।
कुछ नियंत्रणों में एक सहायता बटन होता है जो अधिक जानकारी पॉप अप करेगा।
इस अनुभाग में नियंत्रणों का उपयोग करके Domain DNS Name और KDC Host निर्दिष्ट करें। टेक्स्टबॉक्स को सीधे संपादित नहीं किया जा सकता; उन्हें संशोधित करने के लिए आपको 'Change' बटन का उपयोग करना होगा।
Domain DNS Name उस डोमेन का DNS नाम होना चाहिए जिसके विरुद्ध आप प्रमाणीकरण करना चाहते हैं (सटीक कहें तो, यह वास्तव में Kerberos रियल्म है)। यह कुछ ऐसा होना चाहिए जैसे mydomain.acme.local। यह डोमेन का NETBIOS नाम नहीं होना चाहिए (जो कुछ ऐसा होगा जैसे MYDOMAIN)।
KDC Host एक Kerberos KDC (Key Distribution Center) का होस्टनाम (या IP पता) होना चाहिए। Windows डोमेन में, KDC बस एक डोमेन कंट्रोलर होता है।
Domain DNS Name प्रदान करने के बाद, आप स्वचालित रूप से KDC का पता लगाने के प्रयास के लिए Auto बटन का उपयोग कर सकते हैं। यह Kerberos सेवा के लिए DNS SRV क्वेरी भेजकर ऐसा करता है। यदि आपके DNS सर्वरों में से एक सही डोमेन के लिए डोमेन कंट्रोलर है, तो यह काम करना चाहिए। यदि नहीं, तो यह काम नहीं करेगा। ❗यह कार्यक्षमता Burp के हाल के संस्करणों में काम नहीं करेगी, क्योंकि आवश्यक DNS लाइब्रेरी बंडल किए गए JRE के भाग के रूप में शामिल नहीं की जा रही हैं। आप इस README के शीर्ष पर वर्णित अनुसार पूर्ण JRE के अंतर्गत लॉन्च करके इससे बच सकते हैं।❗
जब Domain DNS Name और KDC Host दर्ज कर लिए गए हों, तो कनेक्टिविटी का परीक्षण करने के लिए Test domain settings बटन का उपयोग करें। सब ठीक रहने पर, आपको Successfully contacted Kerberos service प्रतिक्रिया मिलेगी।
इन Domain Settings के लिए सही मान प्राप्त करने के बारे में अधिक जानकारी के लिए यह फ़ाइल देखें।
इस अनुभाग में नियंत्रणों का उपयोग करके डोमेन खाते के लिए Username और Password निर्दिष्ट करें। टेक्स्टबॉक्स को सीधे संपादित नहीं किया जा सकता; उन्हें संशोधित करने के लिए आपको 'Change' बटन का उपयोग करना होगा।
Username केवल सादा उपयोगकर्ता नाम होना चाहिए। यह कुछ ऐसा होना चाहिए जैसे bob। यह MYDOMAIN\bob या [email protected] या समान नहीं होना चाहिए।
क्रेडेंशियल प्रदान करने के बाद, आप Test credentials बटन का उपयोग कर सकते हैं। यह निर्दिष्ट उपयोगकर्ता के लिए Kerberos टिकट-ग्रांटिंग टिकट प्राप्त करने का प्रयास करेगा। सफल होने पर, आपको TGT successfully acquired प्रतिक्रिया मिलेगी। यदि सफल नहीं होता है, तो ध्यान दें कि यह एक डोमेन प्रमाणीकरण प्रयास है, इसलिए सावधान रहें कि आपका खाता लॉक न हो।
पासवर्ड अगली बार के लिए Berserko कॉन्फ़िग में सहेजा नहीं जाएगा जब तक कि Save password in Burp config? चेकबॉक्स चिह्नित न किया गया हो। हालाँकि, अन्य सभी सेटिंग्स सहेजी जाएँगी।
कुछ अनुप्रयोग क्लाइंट की पहचान को अन्य सर्वरों तक अग्रेषित करने के लिए सर्वर पक्ष पर Kerberos प्रतिनिधिमंडल का उपयोग करते हैं (लेकिन क्लाइंट पक्ष से यह निर्धारित करने का कोई आसान तरीका नहीं है कि यह उपयोग में है या नहीं)।
Berserko इसका समर्थन करता है, लेकिन एक समस्या है। प्रतिनिधिमंडल तभी काम करता है जब उपयोगकर्ता के पास एक forwardable TGT (टिकट-ग्रांटिंग टिकट) हो। Kerberos का Java कार्यान्वयन दुर्भाग्य से प्रोग्रामेटिक रूप से यह निर्दिष्ट करने का कोई तरीका प्रदान नहीं करता है कि एक forwardable टिकट प्राप्त किया जाना चाहिए। यह केवल krb5.conf कॉन्फ़िगरेशन फ़ाइल में एक उपयुक्त प्रविष्टि जोड़कर किया जा सकता है।
इसलिए, प्रतिनिधिमंडल के काम करने के लिए, Berserko को एक उपयुक्त krb5.conf फ़ाइल की ओर इंगित किया जाना चाहिए, और यहाँ दो संभावित दृष्टिकोण हैं।
सबसे आसान काम, और अनुशंसित दृष्टिकोण, Create krb5.conf file बटन का उपयोग करना है। यह आपकी पसंद के स्थान पर आपके लिए एक उपयुक्त फ़ाइल बनाएगा। आप इसे अस्थायी निर्देशिका में, या अपनी प्रोजेक्ट निर्देशिका में, या कहीं भी रख सकते हैं। लेकिन उसी फ़ाइल का अनिश्चित काल तक पुन: उपयोग किया जा सकता है, इसलिए इसे किसी अधिक स्थायी स्थान पर रखना समझदारी हो सकती है। Change बटन आपको उपयोग की जाने वाली एक अलग फ़ाइल चुनने देता है।