AWS - ECS Post Exploitation
Reading time: 4 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
ECS
Pour plus d'informations, consultez :
Rôles IAM de l'hôte
Dans ECS, un rôle IAM peut être attribué à la tâche s'exécutant à l'intérieur du conteneur. Si la tâche est exécutée à l'intérieur d'une instance EC2, l'instance EC2 aura un autre rôle IAM qui lui est attaché.
Ce qui signifie que si vous parvenez à compromettre une instance ECS, vous pouvez potentiellement obtenir le rôle IAM associé à l'ECR et à l'instance EC2. Pour plus d'informations sur la façon d'obtenir ces identifiants, consultez :
caution
Notez que si l'instance EC2 applique IMDSv2, selon la documentation, la réponse de la requête PUT aura une limite de saut de 1, rendant impossible l'accès aux métadonnées EC2 depuis un conteneur à l'intérieur de l'instance EC2.
Privesc vers le nœud pour voler les identifiants et secrets d'autres conteneurs
De plus, EC2 utilise Docker pour exécuter les tâches ECs, donc si vous pouvez échapper au nœud ou accéder au socket Docker, vous pouvez vérifier quels autres conteneurs sont en cours d'exécution, et même y entrer et voler leurs rôles IAM attachés.
Faire fonctionner des conteneurs sur l'hôte actuel
En outre, le rôle de l'instance EC2 aura généralement suffisamment de permissions pour mettre à jour l'état de l'instance de conteneur des instances EC2 utilisées comme nœuds à l'intérieur du cluster. Un attaquant pourrait modifier l'état d'une instance en DRAINING, puis ECS supprimera toutes les tâches de celle-ci et celles exécutées en tant que REPLICA seront exécutées dans une autre instance, potentiellement à l'intérieur de l'instance de l'attaquant afin qu'il puisse voler leurs rôles IAM et des informations sensibles potentielles à l'intérieur du conteneur.
aws ecs update-container-instances-state \
--cluster <cluster> --status DRAINING --container-instances <container-instance-id>
La même technique peut être réalisée en désenregistrant l'instance EC2 du cluster. Cela est potentiellement moins furtif mais cela forcera les tâches à être exécutées sur d'autres instances :
aws ecs deregister-container-instance \
--cluster <cluster> --container-instance <container-instance-id> --force
Une technique finale pour forcer la réexécution des tâches consiste à indiquer à ECS que le tâche ou le conteneur a été arrêté. Il existe 3 API potentielles pour cela :
# 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 ...
Voler des informations sensibles des conteneurs ECR
L'instance EC2 aura probablement également la permission ecr:GetAuthorizationToken
lui permettant de télécharger des images (vous pourriez rechercher des informations sensibles dans celles-ci).
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.