AWS - IAM Post Exploitation

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

IAM

Za više informacija o pristupu IAM-u:

pageAWS - IAM, Identity Center & SSO Enum

Problem zbunjenog zamenika

Ako dozvolite spoljnom nalogu (A) pristup ulogi u vašem nalogu, verovatno nećete imati vidljivost o ko može tačno pristupiti tom spoljnom nalogu. To je problem, jer ako drugi spoljni nalog (B) može pristupiti spoljnom nalogu (A), moguće je da B takođe može pristupiti vašem nalogu.

Stoga, kada dozvoljavate spoljnom nalogu pristup ulozi u vašem nalogu, moguće je specificirati ExternalId. Ovo je "tajni" string koji spoljni nalog (A) mora specificirati kako bi pretpostavio ulogu u vašoj organizaciji. Pošto spoljni nalog B neće znati ovaj string, čak i ako ima pristup nad A, neće moći pristupiti vašoj ulozi.

Međutim, imajte na umu da ovaj ExternalId "tajni" nije zapravo tajna, svako ko može pročitati politiku pretpostavljanja uloge IAM-a moći će je videti. Ali sve dok spoljni nalog A zna za to, a spoljni nalog B ne zna, sprečava B da zloupotrebi A kako bi pristupio vašoj ulozi.

Primer:

{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Principal": {
"AWS": "Example Corp's AWS Account ID"
},
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": {
"sts:ExternalId": "12345"
}
}
}
}

Da bi napadač iskoristio zbunjenog zamenika, moraće na neki način da otkrije da li principali trenutnog naloga mogu da se predstave kao uloge u drugim nalozima.

Neočekivani poverenici

Zvezdica kao princip

{
"Action": "sts:AssumeRole",
"Effect": "Allow",
"Principal": { "AWS": "*" },
}

Ova politika omogućava svim AWS da preuzmu ulogu.

Servis kao principala

{
"Action": "lambda:InvokeFunction",
"Effect": "Allow",
"Principal": { "Service": "apigateway.amazonaws.com" },
"Resource": "arn:aws:lambda:000000000000:function:foo"
}

Ova politika omogućava svakom nalogu da konfiguriše svoj apigateway da pozove ovaj Lambda.

S3 kao principala

"Condition": {
"ArnLike": { "aws:SourceArn": "arn:aws:s3:::source-bucket" },
"StringEquals": {
"aws:SourceAccount": "123456789012"
}
}

Nije podržano

Ako je S3 kanta data kao princip, jer S3 kante nemaju ID naloga, ako izbrišete svoju kantu i napadač je kreira u svom nalogu, tada bi to mogli zloupotrebiti.

{
"Effect": "Allow",
"Principal": {"Service": "cloudtrail.amazonaws.com"},
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::myBucketName/AWSLogs/MY_ACCOUNT_ID/*"
}

Jedan uobičajeni način za izbegavanje problema sa zbunjenim zamenikom je korišćenje uslova sa AWS:SourceArn da proveri poreklo ARN-a. Međutim, neke usluge možda ne podržavaju to (kao što je CloudTrail prema nekim izvorima).

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated