
Eine Sammlung von Manifesten, die Pods mit erhöhten Rechten erstellen.

Eine Sammlung von Manifests, die Pods mit unterschiedlichen erhöhten Privilegien erstellen. Demonstriert schnell die Auswirkungen, wenn sicherheitsrelevante Pod-Attribute wie hostNetwork, hostPID, hostPath, hostIPC und privileged erlaubt sind.
Weitere Hintergrundinformationen findest du in unserem Blogbeitrag: Bad Pods: Kubernetes Pod Privilege Escalation.
Jeder Link unten enthält detaillierte Nutzungsinformationen und Empfehlungen für die Post-Exploitation.
Weitere allgemeine Informationen zu Voraussetzungen, Repository-Struktur und gängigen Nutzungsmustern findest du in den folgenden Abschnitten.
├── manifests
│ ├── everything-allowed
│ │ ├── cronjob
│ │ │ ├── everything-allowed-exec-cronjob.yaml
│ │ │ └── everything-allowed-revshell-cronjob.yaml
│ │ ├── daemonset
│ │ │ ├── everything-allowed-exec-daemonset.yaml
│ │ │ └── everything-allowed-revshell-daemonset.yaml
│ │ ├── deployment
│ │ │ ├── everything-allowed-exec-deployment.yaml
│ │ │ └── everything-allowed-revshell-deployment.yaml
│ │ ├── job
│ │ │ ├── everything-allowed-exec-job.yaml
│ │ │ └── everything-allowed-revshell-job.yaml
│ │ ├── pod
│ │ │ ├── everything-allowed-exec-pod.yaml
│ │ │ └── everything-allowed-revshell-pod.yaml
│ │ ├── replicaset
│ │ │ ├── everything-allowed-exec-replicaset.yaml
│ │ │ └── everything-allowed-revshell-replicaset.yaml
│ │ ├── replicationcontroller
│ │ │ ├── everything-allowed-exec-replicationcontroller.yaml
│ │ │ └── everything-allowed-revshell-replicationcontroller.yaml
│ │ └── statefulset
│ │ ├── everything-allowed-exec-statefulset.yaml
│ │ └── everything-allowed-revshell-statefulset.yaml
│ ├── hostipc
│ │ ├── cronjob
│ │ │ ├── hostipc-exec-cronjob.yaml
│ │ │ └── hostipc-revshell-cronjob.yaml
│ │ ├── daemonset
│ │ │ ├── hostipc-exec-daemonset.yaml
│ │ │ └── hostipc-revshell-daemonset.yaml
...omitted for brevity...
Wie Eviatar Gerzi (@g3rzi) in dem Beitrag Eight Ways to Create a Pod betont, gibt es 8 verschiedene Controller, die einen Pod oder eine Gruppe von Pods erstellen können. Du bist vielleicht nicht berechtigt, Pods zu erstellen, aber vielleicht kannst du einen anderen Ressourcentyp erstellen, der einen oder mehrere Pods erstellt. Für jeden badPod-Typ gibt es Manifests, die allen acht Ressourcentypen entsprechen.
Aber warte, es wird noch schlimmer! Zusätzlich zu den acht aktuellen Kubernetes-Controllern, die Pods erstellen können, gibt es Drittanbieter-Controller, die ebenfalls Pods erstellen können, wenn sie auf den Cluster angewendet werden. Halte Ausschau nach ihnen, indem du dir kubectl api-resources ansiehst.
Obwohl es üblich ist, ist es nicht immer der Fall, dass du in Pods exec-en kannst, die du erstellen kannst. Um in solchen Situationen zu helfen, ist eine Version jedes Manifests enthalten, die Rory McCunes (@raesene) ncat-Docker-Hub-Image verwendet. Nach der Erstellung nimmt der Pod eine verschlüsselte Verbindung zu deinem Listener auf.
Jede Ressource im Verzeichnis manifests zielt auf ein bestimmtes Attribut oder eine Kombination von Attributen ab, die den Cluster einem Risiko aussetzen, wenn sie erlaubt sind.