Kubelet Authentication & Authorization
Reading time: 4 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Kubelet Authentication
Kwa default, maombi kwa mwisho wa HTTPS wa kubelet ambayo hayakukataliwa na mbinu nyingine za uthibitishaji zilizowekwa yanachukuliwa kama maombi ya kutotambulika, na yanapewa jina la mtumiaji system:anonymous
na kikundi cha system:unauthenticated
.
Mbinu 3 za uthibitishaji ni:
- Kutotambulika (default): Tumia kuweka param
--anonymous-auth=true
au usanidi:
"authentication": {
"anonymous": {
"enabled": true
},
- Webhook: Hii itawawezesha API bearer tokens za kubectl kama idhini (token yoyote halali itakuwa halali). Ruhusu kwa:
- hakikisha kundi la API
authentication.k8s.io/v1beta1
limewezeshwa katika seva ya API - anzisha kubelet na bendera za
--authentication-token-webhook
na--kubeconfig
au tumia mipangilio ifuatayo:
"authentication": {
"webhook": {
"cacheTTL": "2m0s",
"enabled": true
},
note
Kubelet inaita TokenReview
API kwenye seva ya API iliyowekwa ili kubaini taarifa za mtumiaji kutoka kwa alama za kubeba
- X509 client certificates: Ruhusu kuthibitisha kupitia X509 client certs
- angalia apiserver authentication documentation kwa maelezo zaidi
- anza kubelet na bendera
--client-ca-file
, ukitoa pakiti ya CA ili kuthibitisha vyeti vya wateja. Au kwa usanidi:
"authentication": {
"x509": {
"clientCAFile": "/etc/kubernetes/pki/ca.crt"
}
}
Kubelet Authorization
Maombi yoyote ambayo yamefanikiwa kuthibitishwa (ikiwemo maombi ya kutotambulika) yanaruhusiwa. Njia ya kuthibitisha ya AlwaysAllow
inaruhusu maombi yote.
Hata hivyo, thamani nyingine inayowezekana ni webhook
(ambayo ndio utakuwa ukiona zaidi huko nje). Njia hii itafanya ukaguzi wa ruhusa za mtumiaji aliyeidhinishwa ili kuruhusu au kukataa kitendo.
warning
Kumbuka kwamba hata kama uthibitisho wa kutotambulika umewezeshwa, upatikanaji wa kutotambulika huenda usiwe na ruhusa za kufanya kitendo chochote.
Kuthibitisha kupitia webhook kunaweza kuwekewa mipangilio kwa kutumia param --authorization-mode=Webhook
au kupitia faili ya usanidi na:
"authorization": {
"mode": "Webhook",
"webhook": {
"cacheAuthorizedTTL": "5m0s",
"cacheUnauthorizedTTL": "30s"
}
},
Kubelet inaita SubjectAccessReview
API kwenye seva ya API iliyowekwa ili kuamua ikiwa kila ombi lime idhinishwa.
Kubelet inaruhusu maombi ya API kwa kutumia njia ile ile ya attributes za ombi kama apiserver:
- Kitendo
Kitenzi cha HTTP | kitenzi cha ombi |
---|---|
POST | kuunda |
GET, HEAD | pata (kwa rasilimali binafsi), orodha (kwa makundi, ikiwa ni pamoja na maudhui kamili ya kitu), angalia (kwa kuangalia rasilimali binafsi au kundi la rasilimali) |
PUT | sasisha |
PATCH | patch |
DELETE | futa (kwa rasilimali binafsi), futakoleksiyoni (kwa makundi) |
- Rasilimali inayozungumza na Kubelet api ni daima nodes na subresource inapatikana kutoka kwa njia ya ombi linalokuja:
Kubelet API | rasilimali | subresource |
---|---|---|
/stats/* | nodes | stats |
/metrics/* | nodes | metrics |
/logs/* | nodes | log |
/spec/* | nodes | spec |
rasilimali zingine zote | nodes | proxy |
Kwa mfano, ombi lifuatalo lilijaribu kufikia taarifa za pods za kubelet bila ruhusa:
curl -k --header "Authorization: Bearer ${TOKEN}" 'https://172.31.28.172:10250/pods'
Forbidden (user=system:node:ip-172-31-28-172.ec2.internal, verb=get, resource=nodes, subresource=proxy)
- Tulipata Forbidden, hivyo ombi lilipita ukaguzi wa Uthibitishaji. La sivyo, tungekuwa na ujumbe wa
Unauthorised
tu. - Tunaweza kuona jina la mtumiaji (katika kesi hii kutoka kwa token)
- Angalia jinsi rasilimali ilikuwa nodes na subresource proxy (ambayo ina maana na taarifa za awali)
References
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.