AWS - Cloudformation Privesc
cloudformation
Para mais informações sobre o Cloudformation, consulte:
AWS - CloudFormation & Codestar Enumiam:PassRole
, cloudformation:CreateStack
iam:PassRole
, cloudformation:CreateStack
Um atacante com essas permissões pode escalar privilégios criando uma pilha do CloudFormation com um modelo personalizado, hospedado em seu servidor, para executar ações sob as permissões de uma função especificada:
Na seguinte página, você tem um exemplo de exploração com a permissão adicional cloudformation:DescribeStacks
:
Impacto Potencial: Privesc para a função de serviço do cloudformation especificada.
iam:PassRole
, (cloudformation:UpdateStack
| cloudformation:SetStackPolicy
)
iam:PassRole
, (cloudformation:UpdateStack
| cloudformation:SetStackPolicy
)Neste caso, você pode abusar de uma pilha de cloudformation existente para atualizá-la e escalar privilégios como no cenário anterior:
A permissão cloudformation:SetStackPolicy
pode ser usada para conceder a si mesmo permissão UpdateStack
sobre um stack e realizar o ataque.
Impacto Potencial: Escalação de privilégios para a função de serviço do CloudFormation especificada.
cloudformation:UpdateStack
| cloudformation:SetStackPolicy
cloudformation:UpdateStack
| cloudformation:SetStackPolicy
Se você tiver essa permissão mas não tiver iam:PassRole
, ainda é possível atualizar os stacks usados e abusar dos IAM Roles que já estão anexados. Verifique a seção anterior para um exemplo de exploit (apenas não indique nenhum papel na atualização).
A permissão cloudformation:SetStackPolicy
pode ser usada para conceder a si mesmo permissão UpdateStack
sobre um stack e realizar o ataque.
Impacto Potencial: Escalação de privilégios para a função de serviço do CloudFormation já anexada.
iam:PassRole
,((cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)
iam:PassRole
,((cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)Um atacante com permissões para passar um papel e criar & executar um ChangeSet pode criar/atualizar um novo stack do CloudFormation abusando das funções de serviço do CloudFormation da mesma forma que com o CreateStack ou UpdateStack.
O exploit a seguir é uma variação do exploit CreateStack usando as permissões ChangeSet para criar um stack.
A permissão cloudformation:SetStackPolicy
pode ser usada para conceder a si mesmo permissões de ChangeSet
sobre um stack e realizar o ataque.
Impacto Potencial: Escalação de privilégios para funções de serviço do CloudFormation.
(cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)
cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)Este é semelhante ao método anterior sem passar funções IAM, então você pode apenas abusar das que já estão anexadas, basta modificar o parâmetro:
Impacto Potencial: Privesc para a função de serviço do cloudformation já anexada.
iam:PassRole
,(cloudformation:CreateStackSet
| cloudformation:UpdateStackSet
)
iam:PassRole
,(cloudformation:CreateStackSet
| cloudformation:UpdateStackSet
)Um atacante poderia abusar dessas permissões para criar/atualizar StackSets e abusar de funções de cloudformation arbitrárias.
Impacto Potencial: Privesc para funções de serviço do cloudformation.
cloudformation:UpdateStackSet
cloudformation:UpdateStackSet
Um atacante poderia abusar dessa permissão sem a permissão passRole para atualizar StackSets e abusar das funções de cloudformation anexadas.
Impacto Potencial: Privesc para as funções de cloudformation anexadas.
Referências
Last updated