GCP - Container Privesc
kontena
container.clusters.get
container.clusters.get
Ruhusa hii inaruhusu kukusanya siri za 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 mipangilio isiyofaa katika mazingira.
Tafadhali elewa kwamba vitalu vya kubernetes vinaweza kuwa vimepangwa kuwa binafsi, hivyo kuzuia upatikanaji wa seva ya Kube-API kutoka kwenye 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 wakuu kutoka kuweza kuunda au kuboresha Vyeo na Vyeo vya Kikundi na mamlaka zaidi kuliko zile ambazo kiongozi anayo. Walakini, kiongozi wa GCP mwenye mamlaka hayo ataweza kuunda/kuboresha 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 kuinua mamlaka.
container.roles.bind
| container.clusterRoles.bind
container.roles.bind
| container.clusterRoles.bind
Kubernetes kwa chaguo-msingi inazuia wakuu kutoka kuweza kuunda au kuboresha Unganisho wa Vyeo na Unganisho wa Vyeo vya Kikundi ili kutoa mamlaka zaidi kuliko zile ambazo kiongozi anazo. Walakini, kiongozi wa GCP mwenye mamlaka hayo ataweza kuunda/kuboresha Unganisho wa Vyeo/Unganisho wa Vyeo vya Kikundi 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 pia ni muhimu kufanya vitendo hivyo vya kuinua 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
Ruhusa hizi zote zitakuruhusu kuunda au kuboresha rasilimali ambapo unaweza kuainisha kikasha. Kwa kufafanua kikasha unaweza kuainisha SA ambayo itakuwa imeambatanishwa na picha ambayo itakuwa inaendeshwa, hivyo unaweza kuendesha picha ambayo ita kuvuja kitufe cha SA kwenye seva yako ikikuruhusu kuinua hadhi kwenda kwa 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 kuinua 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 ruhusa hizi unaweza kusoma vitufe vya SAs zote za kubernetes, hivyo unaweza kuinua hadhi kwao.
container.pods.exec
container.pods.exec
Kwa ruhusa hii utaweza kuingia kwenye podi, ambayo itakupa upatikanaji wa SAs za Kubernetes zinazoendeshwa kwenye podi kuinua mamlaka ndani ya K8s, lakini pia utaweza kuiba SA ya Huduma ya GCP ya NodePool, kuinua mamlaka katika GCP.
container.pods.portForward
container.pods.portForward
Kama ilivyoelezwa katika ukurasa huu, kwa ruhusa hizi unaweza kufikia huduma za ndani zinazoendeshwa kwenye podi ambazo zinaweza kukuruhusu kuinua mamlaka katika Kubernetes (na katika GCP ikiwa kwa njia fulani unaweza kuongea na huduma ya metadata).
container.serviceAccounts.createToken
container.serviceAccounts.createToken
Kutokana na jina la ruhusa, inaonekana itakuruhusu kuzalisha vitufe vya Akaunti za Huduma za K8s, hivyo utaweza kuinua hadhi kwenda kwa SA yoyote ndani ya Kubernetes. Walakini, sikupata mwisho wa API wa kutumia, hivyo niambie ukikutana nao.
container.mutatingWebhookConfigurations.create
| container.mutatingWebhookConfigurations.update
container.mutatingWebhookConfigurations.create
| container.mutatingWebhookConfigurations.update
Ruhusa hizi zinaweza kukuruhusu kuinua mamlaka katika Kubernetes, lakini zaidi uwezekano, unaweza kuzitumia vibaya kwa kudumu katika kikundi. Kwa habari zaidi fuata kiungo hiki.
Last updated