AWS - Cloudformation Privesc
cloudformation
Per ulteriori informazioni su cloudformation controlla:
AWS - CloudFormation & Codestar Enumiam:PassRole
, cloudformation:CreateStack
iam:PassRole
, cloudformation:CreateStack
Un attaccante con queste autorizzazioni può escalare i privilegi creando uno stack di CloudFormation con un modello personalizzato, ospitato sul proprio server, per eseguire azioni sotto i permessi di un ruolo specificato:
Nella seguente pagina hai un esempio di sfruttamento con il permesso aggiuntivo cloudformation:DescribeStacks
:
Impatto Potenziale: Escalation dei privilegi al ruolo di servizio cloudformation specificato.
iam:PassRole
, (cloudformation:UpdateStack
| cloudformation:SetStackPolicy
)
iam:PassRole
, (cloudformation:UpdateStack
| cloudformation:SetStackPolicy
)In questo caso puoi abusare di uno stack cloudformation esistente per aggiornarlo ed escalare i privilegi come nello scenario precedente:
La permissione cloudformation:SetStackPolicy
può essere utilizzata per conferire a te stesso il permesso UpdateStack
su uno stack e eseguire l'attacco.
Impatto Potenziale: Privesc al ruolo di servizio di cloudformation specificato.
cloudformation:UpdateStack
| cloudformation:SetStackPolicy
cloudformation:UpdateStack
| cloudformation:SetStackPolicy
Se hai questa permissione ma non hai iam:PassRole
puoi comunque aggiornare gli stack utilizzati e abusare dei Ruoli IAM a cui sono già collegati. Controlla la sezione precedente per un esempio di exploit (basta non indicare alcun ruolo nell'aggiornamento).
La permissione cloudformation:SetStackPolicy
può essere utilizzata per conferire a te stesso il permesso UpdateStack
su uno stack e eseguire l'attacco.
Impatto Potenziale: Privesc al ruolo di servizio di cloudformation già collegato.
iam:PassRole
,((cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)
iam:PassRole
,((cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)Un attaccante con permessi per passare un ruolo e creare ed eseguire un ChangeSet può creare/aggiornare un nuovo stack di cloudformation abusando dei ruoli di servizio di cloudformation proprio come con CreateStack o UpdateStack.
L'exploit seguente è una variazione di quello del CreateStack utilizzando i permessi ChangeSet per creare uno stack.
Il permesso cloudformation:SetStackPolicy
può essere utilizzato per conferirti i permessi ChangeSet
su uno stack e eseguire l'attacco.
Impatto Potenziale: Privesc ai ruoli di servizio di cloudformation.
(cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)
cloudformation:CreateChangeSet
, cloudformation:ExecuteChangeSet
) | cloudformation:SetStackPolicy
)Questo è simile al metodo precedente senza passare ruoli IAM, quindi puoi semplicemente abusare di quelli già allegati, basta modificare il parametro:
Impatto Potenziale: Privesc al ruolo di servizio cloudformation già collegato.
iam:PassRole
,(cloudformation:CreateStackSet
| cloudformation:UpdateStackSet
)
iam:PassRole
,(cloudformation:CreateStackSet
| cloudformation:UpdateStackSet
)Un attaccante potrebbe abusare di queste autorizzazioni per creare/aggiornare StackSets per abusare di ruoli cloudformation arbitrari.
Impatto Potenziale: Privesc ai ruoli di servizio cloudformation.
cloudformation:UpdateStackSet
cloudformation:UpdateStackSet
Un attaccante potrebbe abusare di questa autorizzazione senza l'autorizzazione passRole per aggiornare StackSets per abusare dei ruoli cloudformation collegati.
Impatto Potenziale: Privesc ai ruoli cloudformation collegati.
Riferimenti
Last updated