AWS - Cloudformation Privesc
cloudformation
Para más información sobre cloudformation, consulta:
iam:PassRole
, cloudformation:CreateStack
iam:PassRole
, cloudformation:CreateStack
Un atacante con estos permisos puede escalar privilegios creando un stack 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: Privesc 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 cloudformation:SetStackPolicy
permiso se puede usar para darte a ti mismo el permiso UpdateStack
sobre una pila y realizar el ataque.
Impacto Potencial: Privesc al rol de servicio de cloudformation especificado.
cloudformation:UpdateStack
| cloudformation:SetStackPolicy
cloudformation:UpdateStack
| cloudformation:SetStackPolicy
Si tienes este permiso pero sin iam:PassRole
aún puedes actualizar las pilas utilizadas y abusar de los roles de IAM que ya tienen adjuntos. Consulta la sección anterior para un ejemplo de explotación (simplemente no indiques ningún rol en la actualización).
La cloudformation:SetStackPolicy
permiso se puede usar para darte a ti mismo el permiso UpdateStack
sobre una pila y realizar el ataque.
Impacto Potencial: Privesc 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 & ejecutar un ChangeSet puede crear/actualizar una nueva pila de cloudformation abusando de los roles de servicio de cloudformation al igual que con CreateStack o UpdateStack.
La siguiente explotación es una variación de la CreateStack one usando los permisos de ChangeSet para crear una pila.
La permiso cloudformation:SetStackPolicy
se puede usar para otorgarte permisos de ChangeSet
sobre una pila y realizar el ataque.
Impacto Potencial: Privesc a roles de servicio de cloudformation.
(cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)
cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)Esto es como el método anterior sin pasar roles de IAM, así que solo puedes abusar de los ya adjuntos, solo modifica el parámetro:
Impacto Potencial: Privesc 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: Privesc a los roles de servicio de cloudformation.
cloudformation:UpdateStackSet
cloudformation:UpdateStackSet
Un atacante podría abusar de este permiso sin el permiso passRole para actualizar StackSets y abusar de los roles de cloudformation adjuntos.
Impacto Potencial: Privesc a los roles de cloudformation adjuntos.
Referencias
Last updated