AWS - ECS Post Exploitation
Reading time: 4 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
ECS
Für weitere Informationen siehe:
Host IAM-Rollen
In ECS kann eine IAM-Rolle der Aufgabe zugewiesen werden, die innerhalb des Containers ausgeführt wird. Wenn die Aufgabe innerhalb einer EC2-Instanz ausgeführt wird, hat die EC2-Instanz eine andere IAM-Rolle, die ihr zugeordnet ist.
Das bedeutet, dass, wenn es Ihnen gelingt, eine ECS-Instanz zu kompromittieren, Sie potenziell die IAM-Rolle, die mit dem ECR und der EC2-Instanz verbunden ist, erhalten können. Für weitere Informationen, wie Sie diese Anmeldeinformationen erhalten können, siehe:
caution
Beachten Sie, dass, wenn die EC2-Instanz IMDSv2 durchsetzt, laut den Dokumenten, die Antwort der PUT-Anfrage ein Hop-Limit von 1 haben wird, was es unmöglich macht, auf die EC2-Metadaten von einem Container innerhalb der EC2-Instanz zuzugreifen.
Privesc zum Knoten, um Anmeldeinformationen und Geheimnisse anderer Container zu stehlen
Darüber hinaus verwendet EC2 Docker, um ECS-Aufgaben auszuführen. Wenn Sie also zum Knoten entkommen oder auf den Docker-Socket zugreifen können, können Sie überprüfen, welche anderen Container ausgeführt werden, und sogar in sie eindringen und ihre angehängten IAM-Rollen stehlen.
Container auf dem aktuellen Host ausführen
Darüber hinaus hat die EC2-Instanzrolle normalerweise genügend Berechtigungen, um den Zustand der Containerinstanz der EC2-Instanzen, die als Knoten im Cluster verwendet werden, zu aktualisieren. Ein Angreifer könnte den Zustand einer Instanz auf DRAINING ändern, dann wird ECS alle Aufgaben von ihr entfernen und die, die als REPLICA ausgeführt werden, werden in einer anderen Instanz ausgeführt, möglicherweise innerhalb der Instanz des Angreifers, sodass er ihre IAM-Rollen und potenziell sensible Informationen aus dem Container stehlen kann.
aws ecs update-container-instances-state \
--cluster <cluster> --status DRAINING --container-instances <container-instance-id>
Die gleiche Technik kann durch Deregistrierung der EC2-Instanz aus dem Cluster durchgeführt werden. Dies ist potenziell weniger heimlich, aber es wird die Aufgaben zwingen, auf anderen Instanzen ausgeführt zu werden:
aws ecs deregister-container-instance \
--cluster <cluster> --container-instance <container-instance-id> --force
Eine letzte Technik, um die erneute Ausführung von Aufgaben zu erzwingen, besteht darin, ECS anzuzeigen, dass der Task oder Container gestoppt wurde. Es gibt 3 potenzielle APIs, um dies zu tun:
# 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 ...
Sensible Informationen aus ECR-Containern stehlen
Die EC2-Instanz wird wahrscheinlich auch die Berechtigung ecr:GetAuthorizationToken
haben, die es ihr ermöglicht, Bilder herunterzuladen (du könntest nach sensiblen Informationen darin suchen).
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.