AWS - Cognito Unauthenticated Enum
인증되지 않은 Cognito
Cognito는 개발자가 앱 사용자에게 AWS 서비스에 대한 액세스 권한을 부여할 수 있게 해주는 AWS 서비스입니다. 개발자는 앱에서 인증된 사용자에게 IAM 역할을 부여할 수 있으며 (사람들이 가입만 하면 될 수도 있음) 인증되지 않은 사용자에게 IAM 역할을 부여할 수도 있습니다.
Cognito에 대한 기본 정보는 다음을 참조하세요:
pageAWS - Cognito EnumPentesting 및 열거를 위한 Pacu 모듈
AWS Exploitation Framework인 Pacu는 이제 "cognito__enum" 및 "cognito__attack" 모듈을 포함하고 있습니다. 이 모듈들은 계정 내의 모든 Cognito 자산의 열거를 자동화하고 약한 구성, 액세스 제어에 사용되는 사용자 속성 등을 식별하며, 수정 가능한 사용자 정의 속성, 사용 가능한 ID 풀 자격 증명, ID 토큰에서 가정 가능한 역할 등을 기반으로 사용자 생성 (MFA 지원 포함) 및 권한 상승을 자동화합니다.
모듈 기능에 대한 설명은 블로그 게시물의 2부를 참조하세요. 설치 지침은 Pacu 메인 페이지를 참조하세요.
사용법
주어진 ID 풀 및 사용자 풀 클라이언트에 대해 사용자 생성 및 모든 권한 상승 벡터를 시도하는 cognito__attack 사용 예시:
현재 AWS 계정에서 볼 수 있는 모든 사용자 풀, 사용자 풀 클라이언트, 신원 풀, 사용자 등을 수집하기 위한 cognito__enum 사용 예시:
이 명령은 현재 AWS 계정에서 사용 가능한 모든 사용자 풀, 사용자 풀 클라이언트, 신원 풀, 사용자 등을 수집합니다.
Identity Pool ID
Identity Pools는 인증되지 않은 사용자에게 IAM 역할을 부여할 수 있으며, 이를 위해 Identity Pool ID를 알고 있는 것이 필요합니다. 이 정보를 가진 공격자는 해당 IAM 역할에 액세스를 시도하고 이를 악용할 수 있습니다. 또한, IAM 역할은 Identity Pool에 액세스하는 인증된 사용자에게 할당될 수도 있습니다. 공격자가 사용자를 등록하거나 이미 Identity Pool에서 사용하는 ID 공급자에 액세스할 수 있다면, 인증된 사용자에게 제공되는 IAM 역할에 액세스할 수 있고 그 권한을 악용할 수 있습니다.
User Pool ID
기본적으로 Cognito는 새로운 사용자를 등록할 수 있도록 허용합니다. 사용자를 등록할 수 있다면, 기저 애플리케이션에 액세스하거나, Cognito User Pool을 ID 공급자로 사용하는 인증된 IAM 액세스 역할에 액세스할 수 있습니다. 여기에서 그 방법을 확인하세요.
最終更新