GCP - IAM, Principals & Org Policies 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)
서비스 계정에 대한 소개는 다음을 확인하세요:
GCP - Basic Information서비스 계정은 항상 프로젝트에 속합니다:
GCP에서 사용자 및 그룹이 작동하는 방식에 대한 소개는 다음을 확인하세요:
GCP - Basic Information권한 serviceusage.services.enable
및 **serviceusage.services.use
**를 사용하면 프로젝트에서 서비스를 활성화하고 사용할 수 있습니다.
기본적으로, Workspace 사용자에게는 Project Creator 역할이 부여되어 새 프로젝트를 생성할 수 있는 권한이 주어집니다. 사용자가 프로젝트를 생성하면, 그는 해당 프로젝트에 대해 owner
역할이 부여됩니다. 따라서 그는 Workspace를 열거하기 위해 이 서비스들을 프로젝트에서 활성화할 수 있습니다.
그러나 이러한 API를 호출하기 위해서는 Workspace에서 충분한 권한이 필요하다는 점에 유의하세요.
admin
서비스를 활성화할 수 있고 사용자가 Workspace에서 충분한 권한을 가지고 있다면, 다음 줄을 사용하여 모든 그룹 및 사용자를 열거할 수 있습니다.
**identity groups
**라고 하더라도, 그룹이 없는 사용자도 반환됩니다:
이전 예제에서 --labels
매개변수가 필요하므로 일반 값을 사용합니다 (API를 직접 사용한 경우에는 필요하지 않습니다, PurplePanda가 여기서 하는 것처럼).
관리자 서비스가 활성화되어 있어도, 손상된 워크스페이스 사용자가 충분한 권한이 없기 때문에 이를 나열하는 데 오류가 발생할 수 있습니다:
문서에서: 조직 리소스가 생성되면, 도메인 내 모든 사용자에게 기본적으로 청구 계정 생성자 및 프로젝트 생성자 역할이 부여됩니다. 이러한 기본 역할은 사용자가 Google Cloud를 즉시 사용할 수 있도록 하지만, 조직 리소스의 일반 운영에 사용하기 위한 것이 아닙니다.
이 역할은 권한을 부여합니다:
billing.accounts.create
및 resourcemanager.organizations.get
resourcemanager.organizations.get
및 resourcemanager.projects.create
또한 사용자가 프로젝트를 생성할 때, 그는 문서에 따라 자동으로 해당 프로젝트의 소유자가 됩니다. 따라서 기본적으로 사용자는 프로젝트를 생성하고 그 위에서 어떤 서비스든 실행할 수 있습니다 (채굴기? 워크스페이스 나열? ...)
GCP 조직에서 가장 높은 권한은 조직 관리자 역할입니다.
대부분의 서비스에서 add-iam-policy-binding
또는 set-iam-policy
메서드를 사용하여 리소스에 대한 권한을 변경할 수 있습니다. 주요 차이점은 **add-iam-policy-binding
**이 기존 IAM 정책에 새로운 역할 바인딩을 추가하는 반면, **set-iam-policy
**는 이전에 부여된 권한을 삭제하고 명령에 지정된 것만 설정합니다.
이 서비스를 사용하여 다양한 리소스(조직, 폴더, 프로젝트 등)에서 사용자의 모든 권한을 확인하는 방법이 여러 가지 있습니다.
권한 **cloudasset.assets.searchAllIamPolicies
**는 리소스 내의 모든 iam 정책을 요청할 수 있습니다.
권한 **cloudasset.assets.analyzeIamPolicy
**는 리소스 내의 주체에 대한 모든 iam 정책을 요청할 수 있습니다.
권한 **cloudasset.assets.searchAllResources
**는 조직, 폴더 또는 프로젝트의 모든 리소스를 나열할 수 있도록 허용합니다. IAM 관련 리소스(예: 역할)가 포함됩니다.
권한 **cloudasset.assets.analyzeMove
**는 프로젝트와 같은 리소스에 영향을 미치는 정책을 검색하는 데에도 유용할 수 있습니다.
나는 권한 **cloudasset.assets.queryIamPolicy
**가 주체의 권한을 찾는 데 접근할 수 있다고 생각한다.
이전 방법을 사용하여 IAM 정보에 접근할 수 없는 경우 Red Team에 있다면, 현재 권한을 브루트포스하기 위해 도구 https://github.com/carlospolop/bf_my_gcp_perms 를 사용할 수 있습니다.
단, 서비스 **cloudresourcemanager.googleapis.com
**가 활성화되어 있어야 합니다.
다음 페이지에서 IAM 권한을 남용하여 권한을 상승시키는 방법을 확인할 수 있습니다:
GCP - IAM Privesc높은 권한이 있는 경우 다음을 수행할 수 있습니다:
새로운 SAs(또는 Workspace에 있는 경우 사용자) 생성
자신이 제어하는 주체에게 더 많은 권한 부여
취약한 SAs에 더 많은 권한 부여(SSRF in vm, vuln Cloud Function…)
…
Org Policies가 무엇인지에 대한 소개는 다음을 확인하세요:
GCP - Basic InformationIAM 정책은 역할을 통해 주체가 리소스에 대해 가지는 권한을 나타내며, 이는 세분화된 권한이 할당됩니다. 조직 정책은 이러한 서비스가 어떻게 사용될 수 있는지 또는 어떤 기능이 비활성화되는지를 제한합니다. 이는 GCP 환경 내 각 리소스의 최소 권한을 개선하는 데 도움이 됩니다.
다음 페이지에서 조직 정책 권한을 악용하여 권한 상승하는 방법을 확인할 수 있습니다:
GCP - Orgpolicy PrivescAWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)