KUBER
Kubernetes Enum/Abuse

Ports
443/TCP
kube-apiserver
Kubernetes API port
2379/TCP
etcd
6666/TCP
etcd
etcd
4194/TCP
cAdvisor
Container metrics
6443/TCP
kube-apiserver
Kubernetes API port
8443/TCP
kube-apiserver
Minikube API port
8080/TCP
kube-apiserver
Insecure API port
10250/TCP
kubelet
HTTPS API which allows full mode access
10255/TCP
kubelet
Unauthenticated read-only HTTP port: pods, running pods and node state
10256/TCP
kube-proxy
Kube Proxy health check server
10249/TCP
kube-proxy
metrics and configuration information (EKS)
9099/TCP
calico-felix
Health check server for Calico
6782-4/TCP
weave
Metrics and endpoints
30000-32767/TCP
NodePort
Proxy to the services
44134/TCP
Tiller
Helm service listening
Kubelet Api
If the response is Unauthorized then it requires authentication.
Custom client for kubelet communication - https://github.com/cyberark/kubeletctl
kubelet (Read only)
etcd API
NodePort
When a port is exposed in all the nodes via a NodePort, the same port is opened in all the nodes proxifying the traffic into the declared Service. By default this port will be in in the range 30000-32767. So new unchecked services might be accessible through those ports.
Dnscan
https://github.com/Esonhugh/k8spider
utility for enum services inside cluster network by PTR record
https://gist.github.com/nirohfeld/c596898673ead369cb8992d97a1c764e
build:
Network subnets defaults:
Service Account
Check SA rights
По умолчанию Kubernetes хранит все токены и информацию об учетных записях служб в месте по умолчанию. Перейдите туда, чтобы найти полезную информацию.
Теперь мы можем использовать эту информацию для запроса и взаимодействия со службой API Kubernetes с доступными разрешениями и привилегиями.
Чтобы указать имя хоста внутреннего API-сервера, мы можем экспортировать его из переменных среды.
Чтобы установить путь к
ServiceAccountтокену
Чтобы установить значение пространства имен
Чтобы прочитать
ServiceAccountтокен на предъявителя
Чтобы указать
ca.crtпуть, чтобы мы могли использовать его при запросеcurlзапросов
Теперь мы можем изучить API Kubernetes с помощью токена и построенных запросов.
kubectl
Чтобы запросить доступные секреты в
defaultпространстве имен, выполните следующую команду
Чтобы запросить секреты, специфичные для пространства имен
Получите
k8svaulapikeyпользу от секретов
Bypass Pod Security Admission
This command can show pods that violate the new PodSecurity
High privileged service without auth
Longhorn
flux - have web server which can give the repository through which gitops is maintained, can contain credentials
vector - have graphql api through which you can view logs
flagger - rce by design
Kube objects disclosure
Kube-state-metrics on /metrics can show you object's name. It could be useful when you want to hijack secrets via pod creation
RBAC Abuse
Namespaces
Loot on kube nodes
Kube config
/etc/rancher/rke2/rke2.yaml/etc/kubernetes/admin.conf/root/.kube/home/*/.kubeservice accounts tokens:
/var/lib/kubelet/pods/*/volumes/kubernetes.io~secret//etc/kubernetes/pki/Основной каталог с TLS-сертификатами и ключами control-plane ноды
(api-server, etcd, scheduler, controller-manager). Содержит ca.crt, apiserver.crt, apiserver.key
и другие.
/var/lib/kubelet/pki/Каталог, где kubelet хранит свои сертификаты для аутентификации
перед API-сервером (обычно kubelet.crt и kubelet.key).
/var/lib/kubelet/Файл конфигурации kubelet. Может содержать ссылки на пути к
сертификатам или kubeconfig-файлы.
/etc/kubernetes/kubelet.confkubeconfig-файл для kubelet, содержащий встроенные
сертификаты или ссылки на них.
/etc/kubernetes/**/*.kubeconfigДругие kubeconfig-файлы (например, для scheduler,
controller-manager), которые содержат учетные данные.
/var/lib/rancher/**Актуально для кластеров, развернутых через RKE/RKE2. RKE2 хранит
сертификаты в /var/lib/rancher/rke2/server/tls/.
/opt/rke/**Путь по умолчанию для сертификатов в старых версиях RKE.
Last updated