GCP - Compute Privesc
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에서 Compute 및 VPC(네트워크)에 대한 자세한 정보는 다음을 확인하세요:
GCP - Compute Enum인스턴스의 메타데이터를 수정해야 하는 모든 권한 상승 공격(새 사용자 및 SSH 키 추가 등)을 수행하려면 인스턴스에 연결된 SA에 대해 actAs
권한이 필요합니다, SA가 이미 연결되어 있더라도!
compute.projects.setCommonInstanceMetadata
이 권한을 사용하면 인스턴스의 메타데이터 정보를 수정하고 사용자의 인증된 키를 변경하거나 sudo 권한이 있는 새 사용자를 생성할 수 있습니다. 따라서 SSH를 통해 모든 VM 인스턴스에 접속하고 인스턴스가 실행 중인 GCP 서비스 계정을 탈취할 수 있습니다. 제한 사항:
GCP 서비스 계정은 기본적으로 VM 인스턴스에서 매우 제한된 범위를 가집니다.
로그인하려면 SSH 서버에 연락할 수 있어야 합니다.
이 권한을 악용하는 방법에 대한 자세한 정보는 다음을 확인하세요:
GCP - Add Custom SSH Metadata새 시작 스크립트를 추가하고 인스턴스를 재부팅하여 이 공격을 수행할 수도 있습니다:
compute.instances.setMetadata
이 권한은 이전 권한과 동일한 권한을 특정 인스턴스에 부여하며 전체 프로젝트에 대한 것이 아닙니다. 이전 섹션과 동일한 취약점과 제한 사항이 적용됩니다.
compute.instances.setIamPolicy
이러한 종류의 권한은 이전 권한으로 역할을 부여할 수 있게 해주며 이를 악용하여 권한을 상승시킬 수 있습니다.
compute.instances.osLogin
OSLogin이 인스턴스에서 활성화된 경우, 이 권한으로 **gcloud compute ssh [INSTANCE]
**를 실행하여 인스턴스에 연결할 수 있습니다. 인스턴스 내에서 루트 권한은 없습니다.
이 권한으로 VM 인스턴스에 성공적으로 로그인하려면 VM에 연결된 SA에 대해 iam.serviceAccounts.actAs
권한이 필요합니다.
compute.instances.osAdminLogin
OSLogin이 인스턴스에서 활성화된 경우, 이 권한으로 **gcloud compute ssh [INSTANCE]
**를 실행하여 인스턴스에 연결할 수 있습니다. 인스턴스 내에서 루트 권한을 가집니다.
이 권한으로 VM 인스턴스에 성공적으로 로그인하려면 VM에 연결된 SA에 대해 iam.serviceAccounts.actAs
권한이 필요합니다.
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
서비스 계정이 할당된 가상 머신을 생성하고 메타데이터에 접근하여 서비스 계정의 토큰을 훔치는 것이 가능합니다. 이를 통해 권한을 상승시킬 수 있습니다.
이 방법에 대한 익스플로잇 스크립트는 여기에서 찾을 수 있습니다.
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
osconfig.patchDeployments.create
또는 osconfig.patchJobs.exec
권한이 있는 경우 패치 작업 또는 배포를 생성할 수 있습니다. 이를 통해 환경 내에서 수평 이동을 하고 프로젝트 내 모든 컴퓨트 인스턴스에서 코드 실행을 얻을 수 있습니다.
현재로서는 인스턴스에 연결된 SA에 대해 actAs
권한이 필요하지 않습니다.
이것을 수동으로 악용하려면 패치 작업 또는 배포를 생성해야 합니다. 패치 작업을 실행하려면:
패치 배포를 배포하려면:
The tool patchy는 과거에 이 잘못된 구성으로 악용될 수 있었지만 (현재는 작동하지 않음).
공격자는 이를 지속성을 위해 악용할 수도 있습니다.
compute.machineImages.setIamPolicy
컴퓨트 이미지에 대한 추가 권한을 부여하세요.
compute.snapshots.setIamPolicy
디스크 스냅샷에 대한 추가 권한을 부여하세요.
compute.disks.setIamPolicy
디스크에 대한 추가 권한을 부여하세요.
이 링크를 따라가면 접근 범위를 우회하기 위한 아이디어를 찾을 수 있습니다.
AWS 해킹 배우고 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우고 연습하기: HackTricks Training GCP Red Team Expert (GRTE)