AWS - Codestar Privesc

Erlernen Sie AWS-Hacking von Null auf Heldenniveau mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Codestar

Weitere Informationen zu Codestar finden Sie unter:

pagecodestar:CreateProject, codestar:AssociateTeamMember

iam:PassRole, codestar:CreateProject

Mit diesen Berechtigungen können Sie eine Codestar-IAM-Rolle missbrauchen, um beliebige Aktionen über eine CloudFormation-Vorlage auszuführen. Überprüfen Sie die folgende Seite:

pageiam:PassRole, codestar:CreateProject

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 zu aktualisieren, anstatt codestar:AssociateTeamMember.

Mögliche Auswirkungen: Privilege Escalation zur codestar-Richtlinie generiert. Ein Beispiel für diese Richtlinie finden Sie unter:

pagecodestar:CreateProject, codestar:AssociateTeamMember

codestar:CreateProjectFromTemplate

  1. Erstellen eines neuen Projekts:

  • Verwenden Sie die Aktion codestar:CreateProjectFromTemplate, 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 ab, der mit der IAM-Rolle CodeStarWorker-<generischer Projektname>-CloudFormation verknüpft ist.

  1. Aktualisieren des Ziel-Stacks:

  • Mit den gewährten CloudFormation-Berechtigungen können Sie mit der Aktualisierung des angegebenen Stacks fortfahren.

  • Der Name des Stacks entspricht in der Regel einem der beiden Muster:

  • awscodestar-<generischer Projektname>-infrastructure

  • awscodestar-<generischer Projektname>-lambda

  • Der genaue Name hängt vom gewählten Template 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 verknüpft ist.

  • Hinweis: Dies gewährt nicht automatisch volle Administratorrechte. Möglicherweise sind zusätzliche falsch konfigurierte Ressourcen in der Umgebung erforderlich, um die Berechtigungen weiter zu eskalieren.

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

Mögliche Auswirkungen: Privilege Escalation zur CloudFormation IAM-Rolle.

Last updated