AWS - ECS Post Exploitation

Reading time: 6 minutes

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする

ECS

詳細については、次を確認してください:

AWS - ECS Enum

ホストIAMロール

ECSでは、IAMロールはコンテナ内で実行されているタスクに割り当てることができますもしタスクがEC2インスタンス内で実行されている場合、EC2インスタンスには別のIAMロールが付与されます。
つまり、ECSインスタンスを侵害することに成功すれば、ECRおよびEC2インスタンスに関連付けられたIAMロールを取得する可能性があります。これらの資格情報を取得する方法についての詳細は、次を確認してください:

Cloud SSRF - HackTricks

caution

EC2インスタンスがIMDSv2を強制している場合、ドキュメントによるとPUTリクエストの応答ホップ制限が1となり、EC2インスタンス内のコンテナからEC2メタデータにアクセスすることが不可能になります。

ノードへの特権昇格と他のコンテナの資格情報・秘密の盗難

さらに、EC2はECタスクを実行するためにdockerを使用しているため、ノードにエスケープするか、dockerソケットにアクセスできれば、他のコンテナがどのように実行されているかを確認でき、さらにはそれらの中に入って付与されたIAMロールを盗むことができます。

現在のホストでコンテナを実行する

さらに、EC2インスタンスロールは通常、クラスター内のノードとして使用されているEC2インスタンスのコンテナインスタンスの状態を更新するのに十分な権限を持っています。攻撃者はインスタンスの状態をDRAININGに変更することができ、その後ECSはすべてのタスクを削除し、REPLICAとして実行されているタスクは別のインスタンスで実行されることになり、潜在的に攻撃者のインスタンス内で実行されるため、彼はそれらのIAMロールやコンテナ内の潜在的な機密情報を盗むことができます。

bash
aws ecs update-container-instances-state \
--cluster <cluster> --status DRAINING --container-instances <container-instance-id>

同じ技術はクラスターからEC2インスタンスを登録解除することによって行うことができます。これは潜在的にあまりステルス性がありませんが、タスクを他のインスタンスで実行させることを強制します:

bash
aws ecs deregister-container-instance \
--cluster <cluster> --container-instance <container-instance-id> --force

タスクの再実行を強制するための最終的な手法は、ECSにタスクまたはコンテナが停止したことを示すことです。これを行うための3つの潜在的なAPIがあります:

bash
# 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 ...

ECRコンテナからの機密情報の盗難

EC2インスタンスは、おそらくecr:GetAuthorizationTokenの権限を持っており、イメージをダウンロードすることができます(その中に機密情報を探すことができます)。

tip

AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE) Azureハッキングを学び、実践する:HackTricks Training Azure Red Team Expert (AzRTE)

HackTricksをサポートする