AWS - ECS Post Exploitation
Last updated
Last updated
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
詳細については、以下を確認してください:
AWS - ECS EnumECSでは、IAMロールはコンテナ内で実行されているタスクに割り当てることができます。もしタスクがEC2インスタンス内で実行されている場合、EC2インスタンスには別のIAMロールが付与されます。 つまり、ECSインスタンスを侵害することに成功すれば、ECRおよびEC2インスタンスに関連付けられたIAMロールを取得する可能性があります。これらの資格情報を取得する方法についての詳細は、以下を確認してください:
EC2インスタンスがIMDSv2を強制している場合、ドキュメントによると、PUTリクエストの応答にはホップ制限が1が設定され、EC2インスタンス内のコンテナからEC2メタデータにアクセスすることが不可能になります。
さらに、EC2はECタスクを実行するためにDockerを使用しているため、ノードにエスケープするか、Dockerソケットにアクセスできれば、他のコンテナがどのように実行されているかを確認でき、さらにはそれらの中に入って、付与されたIAMロールを盗むことができます。
さらに、EC2インスタンスロールは通常、クラスター内のノードとして使用されているEC2インスタンスのコンテナインスタンスの状態を更新するのに十分な権限を持っています。攻撃者は、インスタンスの状態をDRAININGに変更することができ、その後ECSはすべてのタスクを削除し、REPLICAとして実行されているものは別のインスタンスで実行されるため、攻撃者のインスタンス内で実行される可能性があり、彼はそれらのIAMロールを盗むことができ、コンテナ内の潜在的な機密情報を取得することができます。
同じ技術はクラスターからEC2インスタンスを登録解除することによって行うことができます。これは潜在的にあまりステルス性がありませんが、タスクを他のインスタンスで実行させることを強制します:
タスクの再実行を強制するための最終的な手法は、ECSにタスクまたはコンテナが停止したことを示すことです。これを行うための3つの潜在的なAPIがあります:
EC2インスタンスは、おそらくecr:GetAuthorizationToken
の権限を持っており、イメージをダウンロードすることができます(その中に機密情報を探すことができます)。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する: HackTricks Training GCP Red Team Expert (GRTE)