
Una colección de manifiestos que crearán pods con privilegios elevados.

Una colección de manifiestos que crean pods con diferentes privilegios elevados. Demuestra rápidamente el impacto de permitir atributos de pod sensibles a la seguridad como hostNetwork, hostPID, hostPath, hostIPC y privileged.
Para obtener más información, consulte nuestra publicación de blog: Bad Pods: Escalada de privilegios en pods de Kubernetes.
Cada enlace a continuación proporciona información detallada de uso y recomendaciones de post-explotación.
Para obtener información más general sobre los requisitos previos, la organización del repositorio y los patrones de uso comunes, consulte las secciones siguientes.
├── 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...
Como señala Eviatar Gerzi (@g3rzi) en el artículo Eight Ways to Create a Pod, hay 8 controladores diferentes que pueden crear un pod o un conjunto de pods. Puede que no esté autorizado para crear pods, pero quizá pueda crear otro tipo de recurso que cree uno o más pods. Para cada tipo de badPod, existen manifiestos que corresponden a los ocho tipos de recursos.
Pero espera, ¡aún hay más! Además de los ocho controladores actuales de Kubernetes que pueden crear pods, hay controladores de terceros que también pueden crear pods si se aplican al clúster. Esté atento a ellos revisando kubectl api-resources.
Aunque es común, no siempre se puede ejecutar (exec) dentro de los pods que se crean. Para ayudar en esas situaciones, se incluye una versión de cada manifiesto que utiliza la imagen ncat de dockerhub de Rory McCune (@raesene). Al crearse, el pod realizará una llamada cifrada de vuelta a su listener.
Cada recurso en el directorio manifests apunta a un atributo específico o a una combinación de atributos que exponen al clúster a riesgo cuando se permiten.