AWS - Cloudformation Privesc
cloudformation
Per ulteriori informazioni su cloudformation, controlla:
pageAWS - CloudFormation & Codestar Enumiam:PassRole
, cloudformation:CreateStack
iam:PassRole
, cloudformation:CreateStack
Un attaccante con queste autorizzazioni può ottenere privilegi di escalation creando uno stack di CloudFormation con un modello personalizzato, ospitato sul proprio server, per eseguire azioni con i permessi di un ruolo specificato:
Nella seguente pagina hai un esempio di sfruttamento con il permesso aggiuntivo cloudformation:DescribeStacks
:
Impatto potenziale: Privesc al ruolo di servizio di cloudformation specificato.
iam:PassRole
, (cloudformation:UpdateStack
| cloudformation:SetStackPolicy
)
iam:PassRole
, (cloudformation:UpdateStack
| cloudformation:SetStackPolicy
)In questo caso puoi abusare di uno stack di cloudformation esistente per aggiornarlo ed elevare i privilegi come nello scenario precedente:
La permissione cloudformation:SetStackPolicy
può essere utilizzata per darti la permissione 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 nessuna 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 (solo non indicare alcun ruolo nell'aggiornamento).
La permissione cloudformation:SetStackPolicy
può essere utilizzata per darti la permissione 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 le permissioni per passare un ruolo e creare ed eseguire un ChangeSet può creare/aggiornare uno stack di cloudformation e abusare dei ruoli di servizio di cloudformation proprio come con CreateStack o UpdateStack.
L'exploit seguente è una variazione di quello CreateStack utilizzando le permissioni ChangeSet per creare uno stack.
Il permesso cloudformation:SetStackPolicy
può essere utilizzato per conferire a te stesso 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à collegati, basta modificare il parametro:
Potenziale impatto: Privesc al ruolo del servizio CloudFormation già collegato.
iam:PassRole
,(cloudformation:CreateStackSet
| cloudformation:UpdateStackSet
)
iam:PassRole
,(cloudformation:CreateStackSet
| cloudformation:UpdateStackSet
)Un attaccante potrebbe sfruttare queste autorizzazioni per creare/aggiornare StackSets per abusare di ruoli di cloudformation arbitrari.
Potenziale impatto: Privesc ai ruoli del servizio CloudFormation.
cloudformation:UpdateStackSet
cloudformation:UpdateStackSet
Un attaccante potrebbe sfruttare questa autorizzazione senza l'autorizzazione passRole per aggiornare StackSets per abusare dei ruoli di cloudformation collegati.
Potenziale impatto: Privesc ai ruoli di cloudformation collegati.
Riferimenti
Last updated