AWS - EKS Post Exploitation
EKS
Kwa habari zaidi angalia
pageAWS - EKS EnumTathmini kikundi kutoka kwenye Konsoli ya AWS
Ikiwa una ruhusa ya eks:AccessKubernetesApi
unaweza kuona vitu vya Kubernetes kupitia konsoli ya AWS EKS (Jifunze zaidi).
Unganisha kwenye Kikundi cha AWS Kubernetes
Njia rahisi:
Si njia rahisi:
Ikiwa unaweza kupata token na aws eks get-token --name <cluster_name>
lakini huna ruhusa ya kupata habari za kikundi (describeCluster), unaweza kuandaa ~/.kube/config
yako mwenyewe. Walakini, ukiwa na token, bado unahitaji url ya mwisho wa kuunganisha (ikiwa umefanikiwa kupata token ya JWT kutoka kwa pod soma hapa) na jina la kikundi.
Katika kesi yangu, sikupata habari hiyo kwenye magogo ya CloudWatch, lakini nilipata kwenye userData za LaunchTemplates na pia kwenye mashine za EC2 kwenye userData pia. Unaweza kuona habari hii katika userData kwa urahisi, kwa mfano katika mfano ufuatao (jina la kikundi lilikuwa cluster-name):
Kutoka AWS kwenda Kubernetes
Mwanzilishi wa kikundi cha EKS cluster daima ataweza kuingia kwenye sehemu ya kikundi cha kubernetes system:masters
(k8s admin). Wakati wa kuandika hii, hakuna njia moja kwa moja ya kupata nani aliyeanzisha kikundi hicho (unaweza kuangalia CloudTrail). Na hakuna njia ya kuondoa hicho haki.
Njia ya kutoa upatikanaji wa zaidi wa K8s kwa watumiaji au majukumu zaidi ya AWS IAM ni kutumia configmap aws-auth
.
Hivyo, yeyote mwenye upatikanaji wa kuandika kwenye ramani ya config aws-auth
ataweza kuathiri kikundi chote.
Kwa habari zaidi kuhusu jinsi ya kutoa haki za ziada kwa majukumu na watumiaji wa IAM katika akaunti ile ile au tofauti na jinsi ya kutumia vibaya hii angalia ukurasa huu.
Angalia pia hii nzuri chapisho kujifunza jinsi uwakilishi wa IAM -> Kubernetes unavyofanya kazi.
Kutoka Kubernetes kwenda AWS
Inawezekana kuruhusu uthibitishaji wa OpenID kwa akaunti ya huduma ya kubernetes kuwaruhusu kuchukua majukumu katika AWS. Jifunze jinsi hii inavyofanya kazi kwenye ukurasa huu.
Pata Mwisho wa Seva ya API kutoka kwa Tokeni ya JWT
Hakupata nyaraka yoyote inayoeleza vigezo vya 'herufi mbili' na 'namba'. Lakini baada ya kufanya majaribio binafsi, nimeona hizi zinajirudia:
gr7
yl4
Kwa vyovyote vile, kwa kuwa ni herufi 3 tu, tunaweza kuzitafuta kwa nguvu ya kompyuta. Tumia script hapa chini kwa kuzalisha orodha hiyo
Kisha na wfuzz
Kumbuka kubadilisha & .
Kupita kwa CloudTrail
Ikiwa mshambuliaji anapata siri za AWS na ruhusa juu ya EKS. Ikiwa mshambuliaji anasanidi kubeconfig
yake mwenyewe (bila kuita update-kubeconfig
) kama ilivyoelezwa hapo awali, get-token
haitoi logs katika Cloudtrail kwa sababu haina mwingiliano na AWS API (inajenga token kwa upande wa mshambuliaji).
Kwa hivyo wakati mshambuliaji anazungumza na kikundi cha EKS, cloudtrail haitaandika chochote kinachohusiana na mtumiaji aliyeibiwa na kufikia.
Tafadhali kumbuka kuwa kikundi cha EKS kinaweza kuwa na logs zilizowezeshwa ambazo zitaandika ufikiaji huu (ingawa, kwa chaguo-msingi, zimelemazwa).
EKS Ransom?
Kwa chaguo-msingi mtumiaji au jukumu lililounda kikundi LINAKUWA na mamlaka ya admin juu ya kikundi. Na hiyo ndiyo njia pekee ya ufikiaji "salama" AWS itakayokuwa nayo juu ya kikundi cha Kubernetes.
Kwa hivyo, ikiwa mshambuliaji anashambulia kikundi kwa kutumia fargate na kuondoa waendeshaji wengine wote na kufuta mtumiaji/jukumu la AWS lililounda Kikundi, mshambuliaji anaweza kuwa ameteka nyara kikundir.
Tafadhali kumbuka kuwa ikiwa kikundi kilikuwa kinatumia EC2 VMs, inaweza kuwa inawezekana kupata mamlaka ya Admin kutoka kwa Node na kurejesha kikundi.
Kwa kweli, Ikiwa kikundi kinatumia Fargate unaweza kutumia vifaa vya EC2 au kuhamisha kila kitu kwa EC2 kwenye kikundi na kukirejesha kwa kupata vibali kwenye kifaa.
Last updated