
Une collection de manifests qui créera des pods avec des privilèges élevés.

Une collection de manifests qui créent des pods avec différents privilèges élevés. Démontrez rapidement l'impact de l'autorisation d'attributs de pods sensibles pour la sécurité comme hostNetwork, hostPID, hostPath, hostIPC et privileged.
Pour plus de contexte, consultez notre article de blog : Bad Pods: Kubernetes Pod Privilege Escalation.
Chaque lien ci-dessous fournit des informations d'utilisation détaillées et des recommandations de post-exploitation.
Pour plus d'informations générales sur les prérequis, l'organisation du dépôt et les schémas d'utilisation courants, voir les sections ci-dessous.
├── 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...
Comme le souligne Eviatar Gerzi (@g3rzi) dans l'article Eight Ways to Create a Pod, il existe 8 contrôleurs différents capables de créer un pod, ou un ensemble de pods. Vous n'êtes peut-être pas autorisé à créer des pods, mais vous pouvez peut-être créer un autre type de ressource qui en créera un ou plusieurs. Pour chaque type de badPod, des manifests correspondant aux huit types de ressources sont fournis.
Mais attendez, ça se corse ! En plus des huit contrôleurs Kubernetes actuels capables de créer des pods, il existe des contrôleurs de tiers qui peuvent également créer des pods s'ils sont appliqués au cluster. Gardez un œil sur eux en consultant kubectl api-resources.
Bien que fréquente, il n'est pas toujours possible d'exécuter des commandes (exec) dans les pods que vous pouvez créer. Pour aider dans ces situations, une version de chaque manifest est incluse, utilisant l'image ncat dockerhub de Rory McCune (@raesene). Une fois créé, le pod établira un rappel chiffré vers votre listener.
Chaque ressource du répertoire manifests cible un attribut spécifique ou une combinaison d'attributs qui exposent le cluster à un risque lorsqu'ils sont autorisés.