AWS - Cognito Unauthenticated Enum

Support HackTricks

Unauthenticated Cognito

Cognito는 개발자가 앱 사용자에게 AWS 서비스에 대한 접근 권한을 부여할 수 있도록 하는 AWS 서비스입니다. 개발자는 앱에서 인증된 사용자에게 IAM 역할을 부여하고, 인증되지 않은 사용자에게도 IAM 역할을 부여할 수 있습니다.

Cognito에 대한 기본 정보는 다음을 확인하세요:

Identity Pool ID

Identity Pool은 Identity Pool ID를 아는 인증되지 않은 사용자에게 IAM 역할을 부여할 수 있으며(이는 찾기에 꽤 일반적입니다), 이 정보를 가진 공격자는 해당 IAM 역할에 접근하고 이를 악용할 수 있습니다. 또한, IAM 역할은 Identity Pool에 접근하는 인증된 사용자에게도 할당될 수 있습니다. 공격자가 사용자를 등록하거나 Identity Pool에서 사용되는 신원 공급자에 이미 접근할 수 있다면, 인증된 사용자에게 부여된 IAM 역할에 접근하고 그 권한을 남용할 수 있습니다.

여기에서 방법을 확인하세요.

User Pool ID

기본적으로 Cognito는 새 사용자 등록을 허용합니다. 사용자를 등록할 수 있는 것은 기본 애플리케이션이나 Cognito User Pool을 신원 공급자로 사용하는 Identity Pool의 인증된 IAM 접근 역할접근할 수 있게 해줄 수 있습니다. 여기에서 방법을 확인하세요.

Pacu modules for pentesting and enumeration

Pacu, AWS 악용 프레임워크는 이제 계정 내 모든 Cognito 자산의 열거를 자동화하고 약한 구성, 접근 제어에 사용되는 사용자 속성 등을 플래그하는 "cognito__enum" 및 "cognito__attack" 모듈을 포함합니다. 또한 사용자 생성(다단계 인증 지원 포함) 및 수정 가능한 사용자 정의 속성, 사용 가능한 Identity Pool 자격 증명, ID 토큰의 가정 가능한 역할 등을 기반으로 한 권한 상승을 자동화합니다.

모듈 기능에 대한 설명은 블로그 게시물 2부를 참조하세요. 설치 지침은 주요 Pacu 페이지를 참조하세요.

Usage

샘플 cognito__attack 사용법으로 주어진 Identity Pool 및 User Pool 클라이언트에 대한 사용자 생성 및 모든 권한 상승 벡터를 시도합니다:

Pacu (new:test) > run cognito__attack --username randomuser --email XX+sdfs2@gmail.com --identity_pools
us-east-2:a06XXXXX-c9XX-4aXX-9a33-9ceXXXXXXXXX --user_pool_clients
59f6tuhfXXXXXXXXXXXXXXXXXX@us-east-2_0aXXXXXXX

샘플 cognito__enum 사용법으로 현재 AWS 계정에서 볼 수 있는 모든 사용자 풀, 사용자 풀 클라이언트, 아이덴티티 풀, 사용자 등을 수집합니다:

Pacu (new:test) > run cognito__enum
HackTricks 지원하기

Last updated