AWS - ECS Pós Exploração
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.
ECS
Para mais informações, consulte:
Funções IAM do Host
No ECS, uma função IAM pode ser atribuída à tarefa que está sendo executada dentro do contêiner. Se a tarefa estiver sendo executada dentro de uma instância EC2, a instância EC2 terá outra função IAM anexada a ela.
Isso significa que, se você conseguir comprometer uma instância ECS, poderá potencialmente obter a função IAM associada ao ECR e à instância EC2. Para mais informações sobre como obter essas credenciais, consulte:
caution
Observe que, se a instância EC2 estiver aplicando IMDSv2, de acordo com a documentação, a resposta da solicitação PUT terá um limite de salto de 1, tornando impossível acessar os metadados da EC2 a partir de um contêiner dentro da instância EC2.
Privesc para nó para roubar credenciais e segredos de outros contêineres
Além disso, o EC2 usa docker para executar tarefas ECs, então, se você conseguir escapar para o nó ou acessar o socket do docker, você pode verificar quais outros contêineres estão sendo executados e até mesmo entrar neles e roubar suas funções IAM anexadas.
Fazendo contêineres rodarem no host atual
Além disso, a função da instância EC2 geralmente terá permissões suficientes para atualizar o estado da instância do contêiner das instâncias EC2 que estão sendo usadas como nós dentro do cluster. Um atacante poderia modificar o estado de uma instância para DRAINING, então o ECS removerá todas as tarefas dela e as que estão sendo executadas como REPLICA serão executadas em uma instância diferente, potencialmente dentro da instância do atacante, para que ele possa roubar suas funções IAM e informações sensíveis potenciais de dentro do contêiner.
aws ecs update-container-instances-state \
--cluster <cluster> --status DRAINING --container-instances <container-instance-id>
A mesma técnica pode ser feita desregistrando a instância EC2 do cluster. Isso é potencialmente menos discreto, mas forçará as tarefas a serem executadas em outras instâncias:
aws ecs deregister-container-instance \
--cluster <cluster> --container-instance <container-instance-id> --force
Uma técnica final para forçar a reexecução de tarefas é indicando ao ECS que a tarefa ou contêiner foi parado. Existem 3 APIs potenciais para fazer isso:
# Needs: ecs:SubmitTaskStateChange
aws ecs submit-task-state-change --cluster <value> \
--status STOPPED --reason "anything" --containers [...]
# Needs: ecs:SubmitContainerStateChange
aws ecs submit-container-state-change ...
# Needs: ecs:SubmitAttachmentStateChanges
aws ecs submit-attachment-state-changes ...
Roubar informações sensíveis de contêineres ECR
A instância EC2 provavelmente também terá a permissão ecr:GetAuthorizationToken
, permitindo que ela baixe imagens (você pode procurar informações sensíveis nelas).
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.