# AWS - ECS Post Exploitation {{#include ../../../banners/hacktricks-training.md}} ## ECS 詳細については、次を確認してください: {{#ref}} ../aws-services/aws-ecs-enum.md {{#endref}} ### ホストIAMロール ECSでは、**IAMロールはコンテナ内で実行されているタスクに割り当てることができます**。**もし**タスクが**EC2**インスタンス内で実行されている場合、**EC2インスタンス**には**別のIAM**ロールが付与されます。\ つまり、ECSインスタンスを**侵害**することに成功すれば、**ECRおよびEC2インスタンスに関連付けられたIAMロールを取得する可能性があります**。これらの資格情報を取得する方法についての詳細は、次を確認してください: {{#ref}} https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html {{#endref}} > [!CAUTION] > EC2インスタンスがIMDSv2を強制している場合、[**ドキュメントによると**](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-metadata-v2-how-it-works.html)、**PUTリクエストの応答**は**ホップ制限が1**となり、EC2インスタンス内のコンテナからEC2メタデータにアクセスすることが不可能になります。 ### ノードへの特権昇格と他のコンテナの資格情報・秘密の盗難 さらに、EC2はECタスクを実行するためにdockerを使用しているため、ノードにエスケープするか、**dockerソケットにアクセス**できれば、**他のコンテナ**がどのように実行されているかを**確認**でき、さらには**それらの中に入って**、**付与されたIAMロールを盗む**ことができます。 #### 現在のホストでコンテナを実行する さらに、**EC2インスタンスロール**は通常、クラスター内のノードとして使用されているEC2インスタンスの**コンテナインスタンスの状態を更新する**のに十分な**権限**を持っています。攻撃者は**インスタンスの状態をDRAININGに変更**することができ、その後ECSは**すべてのタスクを削除**し、**REPLICA**として実行されているタスクは**別のインスタンスで実行される**ことになり、潜在的に**攻撃者のインスタンス内**で実行されるため、彼は**それらのIAMロール**やコンテナ内の潜在的な機密情報を**盗む**ことができます。 ```bash aws ecs update-container-instances-state \ --cluster --status DRAINING --container-instances ``` 同じ技術は**クラスターからEC2インスタンスを登録解除する**ことによって行うことができます。これは潜在的にあまりステルス性がありませんが、**タスクを他のインスタンスで実行させることを強制します:** ```bash aws ecs deregister-container-instance \ --cluster --container-instance --force ``` タスクの再実行を強制するための最終的な手法は、ECSに**タスクまたはコンテナが停止した**ことを示すことです。これを行うための3つの潜在的なAPIがあります: ```bash # Needs: ecs:SubmitTaskStateChange aws ecs submit-task-state-change --cluster \ --status STOPPED --reason "anything" --containers [...] # Needs: ecs:SubmitContainerStateChange aws ecs submit-container-state-change ... # Needs: ecs:SubmitAttachmentStateChanges aws ecs submit-attachment-state-changes ... ``` ### ECRコンテナからの機密情報の盗難 EC2インスタンスは、おそらく`ecr:GetAuthorizationToken`の権限を持っており、**イメージをダウンロード**することができます(その中に機密情報を探すことができます)。 {{#include ../../../banners/hacktricks-training.md}}