Quebrando um cluster Kubernetes usando o leme Helm v2

Quebrando um cluster Kubernetes usando o leme Helm v2

Helm é um gerenciador de pacotes para Kubernetes, algo como apt-get para Ubuntu. Nesta nota veremos a versão anterior do helm (v2) com o serviço de leme instalado por padrão, através do qual acessaremos o cluster.

Vamos preparar o cluster; para isso, execute o comando:

kubectl run --rm --restart=Never -it --image=madhuakula/k8s-goat-helm-tiller -- bash

Quebrando um cluster Kubernetes usando o leme Helm v2

Demonstração

  • Se você não configurar nada adicional, o helm v2 iniciará o serviço de leme, que possui RBAC com direitos totais de administrador de cluster.
  • Após a instalação no namespace kube-system aparece tiller-deploye também abre a porta 44134, vinculada a 0.0.0.0. Isso pode ser verificado usando telnet.

$ telnet tiller-deploy.kube-system 44134

Quebrando um cluster Kubernetes usando o leme Helm v2

  • Agora você pode se conectar ao serviço de leme. Usaremos o binário helm para realizar operações ao nos comunicarmos com o serviço do leme:

$ helm --host tiller-deploy.kube-system:44134 version

Quebrando um cluster Kubernetes usando o leme Helm v2

  • Vamos tentar obter os segredos do cluster Kubernetes do namespace kube-system:

$ kubectl get secrets -n kube-system

Quebrando um cluster Kubernetes usando o leme Helm v2

  • Agora podemos criar nosso próprio gráfico, no qual criaremos uma função com direitos de administrador e atribuiremos essa função à conta de serviço padrão. Usando o token desta conta de serviço, recebemos acesso total ao nosso cluster.

$ helm --host tiller-deploy.kube-system:44134 install /pwnchart

Quebrando um cluster Kubernetes usando o leme Helm v2

  • Agora quando pwnchart implantada, a conta de serviço padrão terá acesso administrativo total. Vamos verificar novamente como obter segredos de kube-system

kubectl get secrets -n kube-system

Quebrando um cluster Kubernetes usando o leme Helm v2

A execução bem-sucedida desse script depende de como o Tiller foi implantado; às vezes, os administradores o implantam em um namespace separado com privilégios diferentes. Helm 3 não é suscetível a tais vulnerabilidades porque... não há leme nele.

Nota do tradutor: O uso de políticas de rede para filtrar o tráfego em um cluster ajuda a proteger contra vulnerabilidades desse tipo.

Fonte: habr.com

Adicionar um comentário