AWS - ECS Enum

Reading time: 7 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

基本情報

Amazon Elastic Container Services(ECS)は、クラウドでコンテナ化されたアプリケーションをホストするためのプラットフォームを提供します。ECSには、EC2インスタンスタイプとサーバーレスオプションであるFargateの2つのデプロイメント方法があります。このサービスは、クラウドでコンテナを実行するのを非常に簡単かつストレスフリーにします

ECSは、以下の3つのビルディングブロックを使用して動作します:クラスターサービス、およびタスク定義

  • クラスターは、クラウドで実行されているコンテナのグループです。前述のように、コンテナにはEC2とFargateの2つの起動タイプがあります。AWSは、EC2起動タイプを「顧客が「自分の」コンテナ化されたアプリケーションを、顧客が管理するAmazon EC2インスタンスのクラスターで実行できるようにする」と定義しています。Fargateは似ており、「バックエンドインフラストラクチャをプロビジョニングおよび管理する必要なく、コンテナ化されたアプリケーションを実行できる」と定義されています。
  • サービスはクラスター内に作成され、タスクを実行する責任があります。サービス定義内では、実行するタスクの数、自動スケーリング、キャパシティプロバイダー(Fargate/EC2/External)、 ネットワーキング情報(VPC、サブネット、セキュリティグループなど)を定義します。
  • アプリケーションの種類は2つあります:
  • サービス:停止および再起動可能な長時間実行される計算作業を処理するタスクのグループ。例えば、ウェブアプリケーション。
  • タスク:実行されて終了するスタンドアロンのタスク。例えば、バッチジョブ。
  • サービスアプリケーションの中には、2種類のサービススケジューラーがあります:
  • REPLICA:レプリカスケジューリング戦略は、クラスター全体で希望する数のタスクを配置および維持します。何らかの理由でタスクがシャットダウンした場合、新しいタスクが同じまたは異なるノードで起動されます。
  • DAEMON:必要な要件を持つ各アクティブコンテナインスタンスに正確に1つのタスクをデプロイします。希望するタスクの数、タスク配置戦略、またはサービス自動スケーリングポリシーを指定する必要はありません。
  • タスク定義は、実行されるコンテナを定義する責任があります。また、ポートマッピング環境変数、Dockerのエントリポイントなど、コンテナに設定されるさまざまなパラメータも含まれます。
  • 機密情報のために環境変数を確認してください

タスク定義における機密データ

タスク定義は、ECSで実行される実際のコンテナを構成する責任があります。タスク定義はコンテナの実行方法を定義するため、多くの情報が含まれています。

PacuはECSを列挙できます(list-clusters、list-container-instances、list-services、list-task-definitions)、またタスク定義をダンプすることもできます。

列挙

bash
# Clusters info
aws ecs list-clusters
aws ecs describe-clusters --clusters <cluster>

# Container instances
## An Amazon ECS container instance is an Amazon EC2 instance that is running the Amazon ECS container agent and has been registered into an Amazon ECS cluster.
aws ecs list-container-instances --cluster <cluster>
aws ecs describe-container-instances --cluster <cluster> --container-instances <container_instance_arn>

# Services info
aws ecs list-services --cluster <cluster>
aws ecs describe-services --cluster <cluster> --services <services>
aws ecs describe-task-sets --cluster <cluster> --service <service>

# Task definitions
aws ecs list-task-definition-families
aws ecs list-task-definitions
aws ecs list-tasks --cluster <cluster>
aws ecs describe-tasks --cluster <cluster> --tasks <tasks>
## Look for env vars and secrets used from the task definition
aws ecs describe-task-definition --task-definition <TASK_NAME>:<VERSION>

認証されていないアクセス

AWS - ECS Unauthenticated Enum

権限昇格

次のページでは、ECSの権限を悪用して権限を昇格させる方法を確認できます:

AWS - ECS Privesc

ポストエクスプロイト

AWS - ECS Post Exploitation

永続性

AWS - ECS Persistence

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をサポートする