AWS - IAM Post Exploitation

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

IAM

Vir meer inligting oor IAM-toegang:

pageAWS - IAM, Identity Center & SSO Enum

Verwarde Plaasvervangerprobleem

As jy 'n eksterne rekening (A) toelaat om 'n rol in jou rekening te benader, sal jy waarskynlik 0 sigbaarheid hê oor wie presies daardie eksterne rekening kan benader. Dit is 'n probleem, want as 'n ander eksterne rekening (B) die eksterne rekening (A) kan benader, is dit moontlik dat B ook jou rekening kan benader.

Daarom, wanneer jy 'n eksterne rekening toelaat om 'n rol in jou rekening te benader, is dit moontlik om 'n ExternalId te spesifiseer. Dit is 'n "geheime" string wat die eksterne rekening (A) moet spesifiseer om die rol in jou organisasie aan te neem. Aangesien die eksterne rekening B nie hierdie string sal ken nie, selfs al het hy toegang tot A, sal hy nie jou rol kan benader nie.

Let egter daarop dat hierdie ExternalId "geheim" nie 'n geheim is nie, enigiemand wat die IAM aanneemrolbeleid kan lees, sal dit kan sien. Maar solank die eksterne rekening A dit weet, maar die eksterne rekening B dit nie weet nie, voorkom dit dat B A misbruik om jou rol te benader.

Voorbeeld:

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

Vir 'n aanvaller om 'n verwarde adjunk te benut, sal hy op een of ander manier moet vind of die hoofde van die huidige rekening rolle in ander rekeninge kan naboots.

Onverwagte Vertroue

Wildcard as hoofdpersoon

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

Hierdie beleid laat alle AWS toe om die rol aan te neem.

Diens as hoofsubjek

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

Hierdie beleid laat enige rekening toe om hul apigateway te konfigureer om hierdie Lambda te roep.

S3 as hoofsubjek

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

Indien 'n S3-emmer as 'n hoofakteur gegee word, omdat S3-emmers nie 'n Rekening-ID het nie, as jy jou emmer verwyder en die aanvaller dit in hul eie rekening skep, kan hulle dit misbruik.

Nie ondersteun nie

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

'n Algemene manier om Verwarde Adjunkprobleme te vermy is die gebruik van 'n voorwaarde met AWS:SourceArn om die oorsprong ARN te kontroleer. Nietemin, sommige dienste mag dit nie ondersteun nie (soos CloudTrail volgens sommige bronne).

Verwysings

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated