GCP - Container Privesc
kontena
container.clusters.get
container.clusters.get
Ruhusa hii inaruhusu kukusanya vibali vya kikundi cha Kubernetes kwa kutumia kitu kama:
Bila idhini ya ziada, sifa ni za msingi ambapo unaweza kuorodhesha baadhi ya rasilimali, lakini ni muhimu kwa kupata mizunguko isiyo sahihi katika mazingira.
Tafadhali elewa kwamba vivutio vya kubernetes vinaweza kuwekwa kwa faragha, hivyo kuzuia upatikanaji wa seva ya Kube-API kutoka kwa Mtandao.
Ikiwa huna idhini hii, bado unaweza kupata kikundi, lakini unahitaji kuunda faili yako ya kikokoto cha kubectl na habari za vikundi. Moja iliyoundwa hivi karibuni inaonekana hivi:
container.roles.escalate
| container.clusterRoles.escalate
container.roles.escalate
| container.clusterRoles.escalate
Kubernetes kwa chaguo-msingi inazuia mabalozi kutoka kuweza kuunda au kusasisha Vyeo na Vyeo vya Kikundi na mamlaka zaidi kuliko zile ambazo balozi anayo. Walakini, balozi wa GCP mwenye mamlaka hayo ataweza kuunda/kusasisha Vyeo/Vyeo vya Kikundi na mamlaka zaidi kuliko zile alizokuwa nazo, hivyo kukiuka kinga ya Kubernetes dhidi ya tabia hii.
container.roles.create
na/au container.roles.update
AU container.clusterRoles.create
na/au container.clusterRoles.update
mtawalia pia ni muhimu kufanya vitendo hivyo vya kukuza mamlaka.
container.roles.bind
| container.clusterRoles.bind
container.roles.bind
| container.clusterRoles.bind
Kubernetes kwa chaguo-msingi inazuia mabalozi kutoka kuweza kuunda au kusasisha RoleBindings na ClusterRoleBindings ili kutoa mamlaka zaidi kuliko zile ambazo balozi anayo. Walakini, balozi wa GCP mwenye mamlaka hayo ataweza kuunda/kusasisha RoleBindings/ClusterRoleBindings na mamlaka zaidi kuliko zile alizokuwa nazo, hivyo kukiuka kinga ya Kubernetes dhidi ya tabia hii.
container.roleBindings.create
na/au container.roleBindings.update
AU container.clusterRoleBindings.create
na/au container.clusterRoleBindings.update
mtawalia ni muhimu pia kufanya vitendo hivyo vya kukuza mamlaka.
container.cronJobs.create
| container.cronJobs.update
| container.daemonSets.create
| container.daemonSets.update
| container.deployments.create
| container.deployments.update
| container.jobs.create
| container.jobs.update
| container.pods.create
| container.pods.update
| container.replicaSets.create
| container.replicaSets.update
| container.replicationControllers.create
| container.replicationControllers.update
| container.scheduledJobs.create
| container.scheduledJobs.update
| container.statefulSets.create
| container.statefulSets.update
container.cronJobs.create
| container.cronJobs.update
| container.daemonSets.create
| container.daemonSets.update
| container.deployments.create
| container.deployments.update
| container.jobs.create
| container.jobs.update
| container.pods.create
| container.pods.update
| container.replicaSets.create
| container.replicaSets.update
| container.replicationControllers.create
| container.replicationControllers.update
| container.scheduledJobs.create
| container.scheduledJobs.update
| container.statefulSets.create
| container.statefulSets.update
Mamlaka hizi zote zitaruhusu kuunda au kusasisha rasilimali ambapo unaweza kuainisha kikasha. Kwa kufafanua kikasha, unaweza kutaja SA ambayo itakuwa imeambatanishwa na picha ambayo itakuwa inaendeshwa, hivyo unaweza kuendesha picha ambayo ita kuvuja kitufe cha SA kwenye seva yako ikiruhusu wewe kukuza hadi akaunti yoyote ya huduma. Kwa habari zaidi angalia:
Kwa kuwa tuko katika mazingira ya GCP, pia utaweza kupata SA ya nodepool ya GCP kutoka kwa huduma ya metadata na kukuza mamlaka katika GCP (kwa chaguo-msingi SA ya kuhesabu hutumiwa).
container.secrets.get
| container.secrets.list
container.secrets.get
| container.secrets.list
Kama ilivyoelezwa katika ukurasa huu, kwa mamlaka hizi unaweza kusoma vitufe vya SAs zote za kubernetes, hivyo unaweza kukuza hadi kwao.
container.pods.exec
container.pods.exec
Kwa mamlaka haya utaweza kuingia kwenye podi, ambayo inakupa upatikanaji wa SAs za Kubernetes zinazoendeshwa kwenye podi kukuza mamlaka ndani ya K8s, lakini pia utaweza kuiba SA ya Huduma ya GCP ya NodePool, kukuza mamlaka katika GCP.
container.pods.portForward
container.pods.portForward
Kama ilivyoelezwa katika ukurasa huu, kwa mamlaka hizi unaweza kufikia huduma za ndani zinazoendeshwa kwenye podi ambazo zinaweza kukuruhusu kukuza mamlaka katika Kubernetes (na katika GCP ikiwa kwa njia fulani unaweza kuzungumza na huduma ya metadata).
container.serviceAccounts.createToken
container.serviceAccounts.createToken
Kutokana na jina la mamlaka, inaonekana itakuruhusu kuzalisha vitufe vya Akaunti za Huduma za K8s, hivyo utaweza kupanda hadi SA yoyote ndani ya Kubernetes. Walakini, sikupata mwisho wa API wa kutumia hii, hivyo niambie ikiwa utaipata.
container.mutatingWebhookConfigurations.create
| container.mutatingWebhookConfigurations.update
container.mutatingWebhookConfigurations.create
| container.mutatingWebhookConfigurations.update
Mamlaka haya yanaweza kuruhusu kukuza mamlaka katika Kubernetes, lakini zaidi inawezekana, unaweza kuzitumia vibaya kwa kudumu katika kikundi. Kwa habari zaidi fuata kiungo hiki.
Last updated