AWS - Cloudformation Privesc
cloudformation
Para obtener más información sobre cloudformation, consulta:
AWS - CloudFormation & Codestar Enumiam:PassRole
, cloudformation:CreateStack
iam:PassRole
, cloudformation:CreateStack
Un atacante con estos permisos puede escalar privilegios creando una pila de CloudFormation con una plantilla personalizada, alojada en su servidor, para ejecutar acciones bajo los permisos de un rol especificado:
En la siguiente página tienes un ejemplo de explotación con el permiso adicional cloudformation:DescribeStacks
:
Impacto Potencial: Escalada de privilegios al rol de servicio de cloudformation especificado.
iam:PassRole
, (cloudformation:UpdateStack
| cloudformation:SetStackPolicy
)
iam:PassRole
, (cloudformation:UpdateStack
| cloudformation:SetStackPolicy
)En este caso puedes abusar de una pila de cloudformation existente para actualizarla y escalar privilegios como en el escenario anterior:
La permisión cloudformation:SetStackPolicy
se puede utilizar para otorgarte permiso de UpdateStack
sobre una pila y llevar a cabo el ataque.
Impacto potencial: Escalada de privilegios al rol de servicio de cloudformation especificado.
cloudformation:UpdateStack
| cloudformation:SetStackPolicy
cloudformation:UpdateStack
| cloudformation:SetStackPolicy
Si tienes esta permisión pero no tienes iam:PassRole
, aún puedes actualizar las pilas utilizadas y abusar de los Roles IAM que ya tienen adjuntos. Consulta la sección anterior para ver un ejemplo de explotación (simplemente no indiques ningún rol en la actualización).
La permisión cloudformation:SetStackPolicy
se puede utilizar para otorgarte permiso de UpdateStack
sobre una pila y llevar a cabo el ataque.
Impacto potencial: Escalada de privilegios al rol de servicio de cloudformation ya adjunto.
iam:PassRole
,((cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)
iam:PassRole
,((cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)Un atacante con permisos para pasar un rol y crear y ejecutar un ChangeSet puede crear/actualizar una nueva pila de cloudformation y abusar de los roles de servicio de cloudformation de la misma manera que con CreateStack o UpdateStack.
La siguiente explotación es una variación de la anterior de CreateStack utilizando los permisos de ChangeSet para crear una pila.
El permiso cloudformation:SetStackPolicy
se puede utilizar para otorgarte permisos de ChangeSet
sobre una pila y llevar a cabo el ataque.
Impacto potencial: Escalada de privilegios a roles de servicio de cloudformation.
(cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)
cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)Este método es similar al anterior sin pasar roles de IAM, por lo que simplemente puedes abusar de los que ya están adjuntos, solo modifica el parámetro:
Impacto Potencial: Escalada de privilegios al rol de servicio de cloudformation ya adjunto.
iam:PassRole
,(cloudformation:CreateStackSet
| cloudformation:UpdateStackSet
)
iam:PassRole
,(cloudformation:CreateStackSet
| cloudformation:UpdateStackSet
)Un atacante podría abusar de estos permisos para crear/actualizar StackSets y abusar de roles de cloudformation arbitrarios.
Impacto Potencial: Escalada de privilegios a roles de servicio de cloudformation.
cloudformation:UpdateStackSet
cloudformation:UpdateStackSet
Un atacante podría abusar de este permiso sin el permiso de passRole para actualizar StackSets y abusar de los roles de cloudformation adjuntos.
Impacto Potencial: Escalada de privilegios a los roles de cloudformation adjuntos.
Referencias
Last updated