AWS - ECS Enum
ECS
기본 정보
Amazon Elastic Container Services(ECS)는 클라우드에서 컨테이너화된 애플리케이션을 호스팅하기 위한 플랫폼을 제공합니다. ECS에는 EC2 인스턴스 유형과 서버리스 옵션인 Fargate 두 가지 배포 방법이 있습니다. 이 서비스는 클라우드에서 컨테이너를 실행하는 것을 매우 쉽고 편리하게 만들어줍니다.
ECS는 다음 세 가지 구성 요소를 사용하여 작동합니다: 클러스터, 서비스, 태스크 정의.
클러스터는 클라우드에서 실행 중인 컨테이너 그룹입니다. 이전에 언급한 대로, 컨테이너에는 EC2와 Fargate 두 가지 실행 유형이 있습니다. AWS는 EC2 실행 유형을 "Amazon EC2 인스턴스 클러스터에서 컨테이너화된 애플리케이션을 실행할 수 있도록 하는 것"으로 정의하고, Fargate는 "백엔드 인프라를 프로비저닝하고 관리하지 않고 컨테이너화된 애플리케이션을 실행할 수 있도록 하는 것"으로 정의합니다.
서비스는 클러스터 내에서 생성되며 태스크를 실행하는 역할을 담당합니다. 서비스 정의 내에서 실행할 태스크 수, 자동 스케일링, 용량 제공자(Fargate/EC2/외부), VPC, 서브넷, 보안 그룹과 같은 네트워킹 정보를 정의합니다.
2 종류의 애플리케이션이 있습니다:
서비스: 중단 및 재시작할 수 있는 장기 실행 작업을 처리하는 태스크 그룹입니다. 예를 들어, 웹 애플리케이션입니다.
태스크: 실행되고 종료되는 독립적인 작업입니다. 예를 들어, 일괄 작업입니다.
서비스 애플리케이션 중에는 2 종류의 서비스 스케줄러가 있습니다:
REPLICA: 복제 스케줄링 전략은 클러스터 전체에 원하는 수의 태스크를 배치하고 유지합니다. 어떤 이유로 인해 태스크가 종료되면 동일한 노드 또는 다른 노드에서 새로운 태스크가 시작됩니다.
DAEMON: 필요한 요구 사항을 갖춘 각 활성 컨테이너 인스턴스에 정확히 하나의 태스크를 배포합니다. 원하는 태스크 수, 태스크 배치 전략, 서비스 자동 스케일링 정책을 지정할 필요가 없습니다.
태스크 정의는 어떤 컨테이너가 실행되고 컨테이너와 관련된 다양한 매개변수(호스트와의 포트 매핑, 환경 변수, Docker 진입점 등)가 구성될 책임이 있습니다.
민감한 정보를 위한 환경 변수를 확인하세요!
태스크 정의에서 민감한 데이터
태스크 정의는 ECS에서 실행될 실제 컨테이너를 구성하는 역할을 담당합니다. 태스크 정의는 컨테이너가 실행되는 방식을 정의하기 때문에 다양한 정보를 찾을 수 있습니다.
Pacu는 ECS를 열거할 수 있습니다(list-clusters, list-container-instances, list-services, list-task-definitions) 또한 태스크 정의를 덤프할 수도 있습니다.
열거
인증되지 않은 액세스
pageAWS - ECS Unauthenticated Enum권한 상승
다음 페이지에서는 ECS 권한을 악용하여 권한을 상승하는 방법을 확인할 수 있습니다:
pageAWS - ECS Privesc후반 작업
pageAWS - ECS Post Exploitation지속성
pageAWS - ECS Persistence最終更新