AWS - Cognito Unauthenticated Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Cognito는 개발자가 앱 사용자에게 AWS 서비스에 대한 접근 권한을 부여할 수 있도록 하는 AWS 서비스입니다. 개발자는 앱에서 인증된 사용자에게 IAM 역할을 부여하고 (사람들이 가입할 수 있도록 할 수 있습니다) 인증되지 않은 사용자에게 IAM 역할을 부여할 수도 있습니다.
Cognito에 대한 기본 정보는 다음을 확인하세요:
AWS - Cognito EnumIdentity Pool은 Identity Pool ID를 아는 인증되지 않은 사용자에게 IAM 역할을 부여할 수 있습니다 (이는 찾기에 꽤 일반적입니다), 그리고 이 정보를 가진 공격자는 해당 IAM 역할에 접근하고 이를 악용하려고 시도할 수 있습니다. 게다가, IAM 역할은 Identity Pool에 접근하는 인증된 사용자에게도 할당될 수 있습니다. 공격자가 사용자를 등록하거나 이미 Identity Pool에서 사용되는 신원 공급자에 접근할 수 있다면, 인증된 사용자에게 부여된 IAM 역할에 접근하고 그 권한을 남용할 수 있습니다.
기본적으로 Cognito는 새 사용자를 등록할 수 있도록 허용합니다. 사용자를 등록할 수 있는 것은 기본 애플리케이션이나 Cognito User Pool을 신원 공급자로 사용하는 Identity Pool의 인증된 IAM 접근 역할에 접근할 수 있게 해줄 수 있습니다. 여기에서 방법을 확인하세요.
Pacu, AWS 악용 프레임워크는 이제 계정의 모든 Cognito 자산을 열거하고 약한 구성, 접근 제어에 사용되는 사용자 속성 등을 플래그하는 "cognito__enum" 및 "cognito__attack" 모듈을 포함하고 있으며, 사용자 생성(여기에는 MFA 지원 포함) 및 수정 가능한 사용자 정의 속성, 사용 가능한 Identity Pool 자격 증명, ID 토큰에서 가정 가능한 역할 등을 기반으로 한 권한 상승을 자동화합니다.
모듈 기능에 대한 설명은 블로그 게시물 2부를 참조하세요. 설치 지침은 주요 Pacu 페이지를 참조하세요.
샘플 cognito__attack
사용법으로 주어진 Identity Pool 및 User Pool 클라이언트에 대해 사용자 생성 및 모든 권한 상승 벡터를 시도합니다:
샘플 cognito__enum 사용법으로 현재 AWS 계정에서 볼 수 있는 모든 사용자 풀, 사용자 풀 클라이언트, 아이덴티티 풀, 사용자 등을 수집합니다:
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)