AWS - ECS Post Exploitation

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

ECS

자세한 정보는 다음을 확인하세요:

pageAWS - ECS Enum

호스트 IAM 역할

ECS에서는 컨테이너 내에서 실행되는 작업에 IAM 역할을 할당할 수 있습니다. 작업이 EC2 인스턴스 내에서 실행되는 경우, EC2 인스턴스에는 다른 IAM 역할이 연결됩니다. 따라서 ECS 인스턴스를 침해하면 ECR 및 EC2 인스턴스에 연결된 IAM 역할을 얻을 수 있습니다. 해당 자격 증명을 얻는 방법에 대한 자세한 정보는 다음을 확인하세요:

EC2 인스턴스가 IMDSv2를 강제로 적용하는 경우, 문서에 따르면, PUT 요청의 응답1개의 홉 한계를 가지므로 EC2 인스턴스 내의 컨테이너에서 EC2 메타데이터에 액세스할 수 없습니다.

노드로의 권한 상승 및 다른 컨테이너 자격 증명 및 비밀 획득

뿐만 아니라 EC2는 ECs 작업을 실행하기 위해 도커를 사용하므로, 노드로 탈출하거나 도커 소켓에 액세스할 수 있다면, 실행 중인 다른 컨테이너확인하고 그 안에 들어가서 연결된 IAM 역할획득할 수 있습니다.

현재 호스트에서 컨테이너 실행하기

또한, EC2 인스턴스 역할은 일반적으로 클러스터 내의 노드로 사용되는 EC2 인스턴스의 컨테이너 인스턴스 상태를 업데이트할 충분한 권한을 가지고 있습니다. 공격자는 인스턴스의 상태를 DRAINING으로 수정할 수 있으며, 그러면 ECS가 해당 인스턴스에서 모든 작업을 제거하고 REPLICA로 실행되는 작업은 다른 인스턴스에서 실행될 수 있습니다. 이는 공격자가 컨테이너 내부에서 IAM 역할 및 잠재적으로 민감한 정보를 획득할 수 있도록 합니다.

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

같은 기술은 클러스터에서 EC2 인스턴스를 등록 해제함으로써 수행할 수 있습니다. 이는 잠재적으로 덜 은밀하지만 작업이 다른 인스턴스에서 실행되도록 강제합니다:

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

작업 또는 컨테이너가 중지되었다고 ECS에 알리는 최종 기술은 작업을 다시 실행하도록 강제하는 것입니다. 이를 위해 사용할 수 있는 3가지 잠재적인 API가 있습니다:

# 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 권한을 가지고 있어서 이미지를 다운로드할 수 있습니다 (이미지에서 민감한 정보를 찾을 수 있습니다).

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

最終更新