AWS - IAM Post Exploitation
IAM
Para mais informações sobre acesso ao IAM:
pageAWS - IAM, Identity Center & SSO EnumProblema do Delegado Confuso
Se você permitir que uma conta externa (A) acesse uma função em sua conta, provavelmente terá 0 visibilidade sobre quem exatamente pode acessar essa conta externa. Isso é um problema, porque se outra conta externa (B) puder acessar a conta externa (A), é possível que B também consiga acessar sua conta.
Portanto, ao permitir que uma conta externa acesse uma função em sua conta, é possível especificar um ExternalId
. Este é uma string "secreta" que a conta externa (A) precisa especificar para assumir a função em sua organização. Como a conta externa B não conhecerá essa string, mesmo que ele tenha acesso sobre A, não poderá acessar sua função.
No entanto, observe que esse ExternalId
"secreto" não é um segredo, qualquer pessoa que possa ler a política de assumir função do IAM poderá vê-lo. Mas desde que a conta externa A o conheça, mas a conta externa B não o conheça, isso impede que B abuse de A para acessar sua função.
Exemplo:
Para um atacante explorar um delegado confuso, ele precisará descobrir de alguma forma se os princípios da conta atual podem se passar por funções em outras contas.
Confianças Inesperadas
Coringa como princípio
Esta política permite que todos os AWS assumam a função.
Serviço como principal
Esta política permite que qualquer conta configure seu apigateway para chamar este Lambda.
S3 como principal
Se um bucket S3 é dado como principal, porque os buckets S3 não possuem um ID de Conta, se você excluiu seu bucket e o atacante o criou em sua própria conta, então eles poderiam abusar disso.
Não suportado
Uma maneira comum de evitar problemas de Confused Deputy é o uso de uma condição com AWS:SourceArn
para verificar a origem do ARN. No entanto, alguns serviços podem não suportar isso (como o CloudTrail, de acordo com algumas fontes).
Referências
Última actualización