AWS - ECS Post Exploitation
ECS
Für weitere Informationen siehe:
pageAWS - ECS EnumHost-IAM-Rollen
In ECS kann einer IAM-Rolle die Aufgabe zugewiesen werden, die im Container ausgeführte Aufgabe. Wenn die Aufgabe in einer EC2-Instanz ausgeführt wird, wird der EC2-Instanz eine weitere IAM-Rolle zugewiesen. Das bedeutet, dass Sie, wenn es Ihnen gelingt, eine ECS-Instanz zu kompromittieren, potenziell die IAM-Rolle, die dem ECR und der EC2-Instanz zugeordnet ist, erhalten können. Weitere Informationen dazu, wie Sie diese Anmeldeinformationen erhalten können, finden Sie unter:
Beachten Sie, dass, wenn die EC2-Instanz IMDSv2 durchsetzt, gemäß der Dokumentation, die Antwort auf die PUT-Anfrage eine Hop-Limit von 1 haben wird, was es unmöglich macht, auf die EC2-Metadaten von einem Container innerhalb der EC2-Instanz zuzugreifen.
Privilege Eskalation 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.
Ausführen von Containern im aktuellen Host
Darüber hinaus wird die EC2-Instanzrolle in der Regel über ausreichende Berechtigungen verfügen, um den Status der Containerinstanz zu aktualisieren, der von den als Knoten in dem Cluster verwendeten EC2-Instanzen verwendet wird. Ein Angreifer könnte den Status einer Instanz auf DRAINING ändern, dann wird ECS alle Aufgaben daraus entfernen, und diejenigen, die als REPLICA ausgeführt werden, werden in einer anderen Instanz ausgeführt, möglicherweise in der Instanz des Angreifers, damit er ihre IAM-Rollen und potenziell sensible Informationen aus dem Container stehlen kann.
Die gleiche Technik kann durch Deregistrieren der EC2-Instanz aus dem Cluster durchgeführt werden. Dies ist potenziell weniger unauffällig, aber es wird die Tasks dazu zwingen, auf anderen Instanzen ausgeführt zu werden:
Eine letzte Technik, um die erneute Ausführung von Aufgaben zu erzwingen, besteht darin, ECS mitzuteilen, dass die Aufgabe oder der Container gestoppt wurde. Es gibt 3 potenzielle APIs, um dies zu tun:
Sensible Informationen aus ECR-Containern stehlen
Die EC2-Instanz wird wahrscheinlich auch die Berechtigung ecr:GetAuthorizationToken
haben, die es ihr ermöglicht, Images herunterzuladen (Sie könnten nach sensiblen Informationen darin suchen).
Last updated