AWS - EC2 Privesc
EC2
Za više informacija o EC2 proverite:
AWS - EC2, EBS, ELB, SSM, VPC & VPN Enumiam:PassRole
, ec2:RunInstances
iam:PassRole
, ec2:RunInstances
Napadač bi mogao kreirati instancu koja pridružuje IAM ulogu, a zatim pristupiti instanci da bi ukrao IAM kredencijale uloge sa metadata endpointa.
Pristup putem SSH-a
Pokrenite novu instancu koristeći kreirani ssh ključ (--key-name
) a zatim se povežite putem ssh-a (ako želite da kreirate novi, možda će vam biti potrebna dozvola ec2:CreateKeyPair
).
Pristup putem reverznog školjka u korisničkim podacima
Možete pokrenuti novu instancu koristeći korisničke podatke (--user-data
) koji će vam poslati reverzni školjka. Na ovaj način nije potrebno specificirati sigurnosnu grupu.
Budite oprezni sa GuradDuty ako koristite akreditive IAM uloge van instance-a:
AWS - GuardDuty EnumPotencijalni uticaj: Direktno povećanje privilegija do bilo koje EC2 uloge povezane sa postojećim profilima instance.
Povećanje privilegija do ECS
Sa ovim setom dozvola možete takođe kreirati EC2 instancu i registrovati je unutar ECS klastera. Na taj način, ECS servisi će se izvršavati unutar EC2 instance gde imate pristup, a zatim možete provaliti u te servise (docker kontejnere) i ukrasti njihove povezane ECS uloge.
Da biste saznali kako prisiliti ECS usluge da se pokrenu na ovom novom EC2 instanci, pogledajte:
AWS - ECS PrivescAko ne možete kreirati novu instancu, ali imate dozvolu ecs:RegisterContainerInstance
, možda ćete moći registrovati instancu unutar klastera i izvršiti komentiran napad.
Potencijalni uticaj: Direktno povećanje privilegija na ECS ulogama povezanim sa zadacima.
iam:PassRole
, iam:AddRoleToInstanceProfile
iam:PassRole
, iam:AddRoleToInstanceProfile
Slično kao i u prethodnom scenariju, napadač sa ovim dozvolama može promeniti IAM ulogu kompromitovane instance kako bi ukrao nove akreditive.
Pošto profil instance može imati samo jednu ulogu, ako profil instance već ima ulogu (uobičajeni slučaj), takođe će vam biti potrebno iam:RemoveRoleFromInstanceProfile
.
Ako profil instance ima ulogu i napadač je ne može ukloniti, postoji još jedan način. On može pronaći profil instance bez uloge ili kreirati novi (iam:CreateInstanceProfile
), dodati ulogu tom profilu instance (kao što je ranije opisano) i povezati profil instance koji je kompromitovan sa kompromitovanom instancijom:
Ako instanca nema nijedan profil instance (
ec2:AssociateIamInstanceProfile
) *
Potencijalni uticaj: Direktno povećanje privilegija na drugu EC2 ulogu (potrebno je da ste kompromitovali AWS EC2 instancu i imate dodatne dozvole ili specifičan status instance profila).
iam:PassRole
(( ec2:AssociateIamInstanceProfile
& ec2:DisassociateIamInstanceProfile
) || ec2:ReplaceIamInstanceProfileAssociation
)
iam:PassRole
(( ec2:AssociateIamInstanceProfile
& ec2:DisassociateIamInstanceProfile
) || ec2:ReplaceIamInstanceProfileAssociation
)Sa ovim dozvolama je moguće promeniti profil instance koji je povezan sa instancom, tako da ako je napad već imao pristup instanci, moći će da ukrade akreditive za više uloga profila instance menjajući onu koja je povezana sa njom.
Ako ima profil instance, možete ga ukloniti (
ec2:DisassociateIamInstanceProfile
) i povezati ga *
ili zamenite profil instance kompromitovane instance (
ec2:ReplaceIamInstanceProfileAssociation
). *
Potencijalni uticaj: Direktno povećanje privilegija na drugu EC2 ulogu (morate da kompromitujete AWS EC2 instancu i imate dodatne dozvole ili određeni status instance profila).
ec2:RequestSpotInstances
,iam:PassRole
ec2:RequestSpotInstances
,iam:PassRole
Napadač sa dozvolama ec2:RequestSpotInstances
i iam:PassRole
može zahtevati instancu Spot sa povezanom EC2 ulogom i rev shell-om u korisničkim podacima.
Kada se instanca pokrene, može ukrasti IAM ulogu.
ec2:ModifyInstanceAttribute
ec2:ModifyInstanceAttribute
Napadač sa ec2:ModifyInstanceAttribute
može da menja atribute instanci. Među njima, može promeniti korisničke podatke, što implicira da može da pokrene proizvoljne podatke na instanci. To se može iskoristiti za dobijanje rev šela na EC2 instanci.
Napomena da se atributi mogu menjati samo dok je instanca zaustavljena, pa su potrebne dozvole ec2:StopInstances
i ec2:StartInstances
.
Potencijalni uticaj: Direktno povećanje privilegija na bilo koju EC2 IAM ulogu koja je pridružena kreiranoj instanci.
ec2:CreateLaunchTemplateVersion
,ec2:CreateLaunchTemplate
,ec2:ModifyLaunchTemplate
ec2:CreateLaunchTemplateVersion
,ec2:CreateLaunchTemplate
,ec2:ModifyLaunchTemplate
Napadač sa dozvolama ec2:CreateLaunchTemplateVersion
,ec2:CreateLaunchTemplate
i ec2:ModifyLaunchTemplate
može kreirati novu verziju Launch Template-a sa rev shell-om u podacima korisnika i bilo kojom EC2 IAM ulogom na njoj, promeniti podrazumevanu verziju, i bilo koja grupa automatskog skaliranja koja koristi taj Launch Template koji je konfigurisan da koristi najnoviju ili podrazumevanu verziju će ponovo pokrenuti instance koristeći taj template i izvršiti rev shell.
Potencijalni uticaj: Direktno povećanje privilegija na drugu EC2 ulogu.
autoscaling:CreateLaunchConfiguration
, autoscaling:CreateAutoScalingGroup
, iam:PassRole
autoscaling:CreateLaunchConfiguration
, autoscaling:CreateAutoScalingGroup
, iam:PassRole
Napadač sa dozvolama autoscaling:CreateLaunchConfiguration
,autoscaling:CreateAutoScalingGroup
,iam:PassRole
može kreirati konfiguraciju pokretanja sa IAM ulogom i rev shell-om unutar korisničkih podataka, zatim kreirati grupu automatskog skaliranja iz te konfiguracije i sačekati da rev shell ukrade IAM ulogu.
Potencijalni uticaj: Direktno povećanje privilegija na drugu EC2 ulogu.
!autoscaling
!autoscaling
Skup dozvola ec2:CreateLaunchTemplate
i autoscaling:CreateAutoScalingGroup
nije dovoljan za povećanje privilegija na IAM ulogu jer da biste pridružili ulogu navedenu u konfiguraciji pokretanja ili u predlošku pokretanja potrebne su vam dozvole iam:PassRole
i ec2:RunInstances
(što je poznato povećanje privilegija).
ec2-instance-connect:SendSSHPublicKey
ec2-instance-connect:SendSSHPublicKey
Napadač sa dozvolom ec2-instance-connect:SendSSHPublicKey
može dodati SSH ključ korisniku i koristiti ga za pristup (ako ima SSH pristup instanci) ili za povećanje privilegija.
Potencijalni uticaj: Direktno povećanje privilegija na EC2 IAM ulogama koje su pridružene pokrenutim instancama.
ec2-instance-connect:SendSerialConsoleSSHPublicKey
ec2-instance-connect:SendSerialConsoleSSHPublicKey
Napadač sa dozvolom ec2-instance-connect:SendSerialConsoleSSHPublicKey
može dodati SSH ključ na serijsku vezu. Ako serijska veza nije omogućena, napadaču je potrebna dozvola ec2:EnableSerialConsoleAccess
da je omogući.
Da biste se povezali na serijski port, takođe morate znati korisničko ime i lozinku korisnika unutar mašine.
Ovaj način nije toliko koristan za privesc jer je potrebno znati korisničko ime i lozinku da bi se iskoristio.
Potencijalni uticaj: (Visoko nepotvrđeno) Direktan privesc na EC2 IAM uloge povezane sa pokrenutim instancama.
Reference
Last updated