AWS - IAM Post Exploitation

Reading time: 4 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

IAM

Kwa maelezo zaidi kuhusu ufikiaji wa IAM:

AWS - IAM, Identity Center & SSO Enum

Tatizo la Mwakilishi Aliyechanganyikiwa

Ikiwa unaruhusu akaunti ya nje (A) kufikia jukumu katika akaunti yako, huenda ukawa na 0 uelewa kuhusu nani hasa anaweza kufikia akaunti hiyo ya nje. Hii ni tatizo, kwa sababu ikiwa akaunti nyingine ya nje (B) inaweza kufikia akaunti ya nje (A) inawezekana kwamba B pia itaweza kufikia akaunti yako.

Kwa hiyo, unaporuhusu akaunti ya nje kufikia jukumu katika akaunti yako inawezekana kubainisha ExternalId. Hii ni "nywila" ya siri ambayo akaunti ya nje (A) inahitaji kubainisha ili ichukue jukumu katika shirika lako. Kwa kuwa akaunti ya nje B haitajui nywila hii, hata kama ana ufikiaji juu ya A hataweza kufikia jukumu lako.

Hata hivyo, kumbuka kwamba ExternalId hii "siri" sio siri, mtu yeyote anayeweza kusoma sera ya jukumu la IAM atakuwa na uwezo wa kuiona. Lakini kadri akaunti ya nje A inavyoijua, lakini akaunti ya nje B haijui, in azuia B kutumia A kufikia jukumu lako.

Mfano:

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

warning

Ili mshambuliaji aweze kutumia msaidizi aliyechanganyikiwa, itabidi apate kwa namna fulani ikiwa wakuu wa akaunti ya sasa wanaweza kujifanya kuwa majukumu katika akaunti nyingine.

Imani zisizotarajiwa

Wildcard kama mkuu

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

Sera hii inaruhusu AWS zote kuchukua jukumu.

Huduma kama kiongozi

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

Sera hii inaruhusu akaunti yoyote kuunda apigateway yao ili kuita Lambda hii.

S3 kama kiongozi

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

Ikiwa S3 bucket inatolewa kama principal, kwa sababu S3 buckets haina Account ID, ikiwa ulifuta bucket yako na mshambuliaji akaunda hiyo katika akaunti yao, basi wanaweza kuitumia vibaya hii.

Not supported

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

Njia ya kawaida ya kuepuka matatizo ya Confused Deputy ni matumizi ya hali na AWS:SourceArn ili kuangalia ARN ya asili. Hata hivyo, huduma zingine huenda zisipokee hiyo (kama CloudTrail kulingana na vyanzo vingine).

Marejeleo

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks