GCP Pentesting
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 환경에서 펜테스팅을 시작하기 전에, 어떻게 작동하는지에 대한 몇 가지 기본 사항을 알아야 합니다. 이를 통해 무엇을 해야 하는지, 잘못된 구성은 어떻게 찾는지, 그리고 이를 어떻게 악용할 수 있는지 이해하는 데 도움이 됩니다.
조직 계층, 권한 및 기타 기본 개념과 같은 개념은 다음에서 설명됩니다:
GCP - Basic InformationGCP 환경을 감사하기 위해서는 어떤 서비스가 사용되고 있는지, 무엇이 노출되고 있는지, 누가 무엇에 접근할 수 있는지, 그리고 내부 GCP 서비스와 외부 서비스가 어떻게 연결되어 있는지를 아는 것이 매우 중요합니다.
Red Team 관점에서, GCP 환경을 침해하기 위한 첫 번째 단계는 일부 자격 증명을 얻는 것입니다. 다음은 이를 수행하는 방법에 대한 몇 가지 아이디어입니다:
github (또는 유사한 곳)의 유출 - OSINT
사회적 공학 (페이지 Workspace Security 확인)
비밀번호 재사용 (비밀번호 유출)
GCP 호스팅 애플리케이션의 취약점
서버 측 요청 위조 메타데이터 엔드포인트에 접근
로컬 파일 읽기
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
제3자 침해
내부 직원
또는 인증되지 않은 서비스를 침해하여:
GCP - Unauthenticated Enum & Access또는 검토를 수행하는 경우, 다음 역할로 자격 증명 요청을 할 수 있습니다:
GCP - Permissions for a Pentest자격 증명을 얻은 후, 그 자격 증명이 누구에게 속하는지와 그들이 무엇에 접근할 수 있는지 알아야 하므로, 기본적인 열거 작업을 수행해야 합니다:
GCP 메타데이터를 열거하는 방법에 대한 자세한 정보는 다음 HackTricks 페이지를 확인하세요:
GCP에서는 자신이 누구인지 추측하기 위해 여러 옵션을 시도할 수 있습니다:
사용자에 대한 더 많은 정보를 얻으려면 API 엔드포인트 /userinfo
를 사용할 수 있습니다:
충분한 권한이 있다면, GCP 계정 내 각 엔터티의 권한을 확인하는 것은 당신과 다른 아이덴티티가 무엇을 할 수 있는지, 그리고 권한 상승을 어떻게 할 수 있는지 이해하는 데 도움이 됩니다.
IAM을 열거할 충분한 권한이 없다면, 무차별 대입 공격을 통해 알아낼 수 있습니다. 열거 및 무차별 대입 공격을 수행하는 방법을 확인하세요:
GCP - IAM, Principals & Org Policies Enum이제 자신의 자격 증명에 대한 정보가 있는 상태입니다 (그리고 레드 팀이라면 발견되지 않았기를 바랍니다). 환경에서 어떤 서비스가 사용되고 있는지 파악할 시간입니다. 다음 섹션에서는 일반 서비스 열거 방법을 확인할 수 있습니다.
GCP는 놀라운 양의 서비스를 제공합니다. 다음 페이지에서는 기본 정보, 열거 치트 시트, 탐지를 피하는 방법, 지속성 확보 및 기타 사후 활용 트릭에 대한 정보를 찾을 수 있습니다:
GCP - Services모든 작업을 수동으로 수행할 필요는 없다는 점에 유의하세요. 이 게시물 아래에서 자동 도구에 대한 섹션을 찾을 수 있습니다.
또한, 이 단계에서 인증되지 않은 사용자에게 노출된 더 많은 서비스를 발견했을 수 있으며, 이를 악용할 수 있습니다:
GCP - Unauthenticated Enum & Access클라우드 자격 증명을 얻거나 클라우드 내에서 실행 중인 서비스를 손상시킨 후 가장 일반적인 방법은 잘못 구성된 권한을 악용하는 것입니다. 따라서 가장 먼저 해야 할 일은 자신의 권한을 열거하는 것입니다.
또한, 이 열거 과정에서 권한은 "조직"의 가장 높은 수준에서 설정될 수 있다는 점을 기억하세요.
GCP - Privilege EscalationGCP - Post ExploitationGCP - PersistenceGCP 서비스를 열거하는 동안 일부 서비스가 인터넷에 요소를 노출하고 있는 것을 발견했을 수 있습니다 (VM/컨테이너 포트, 데이터베이스 또는 큐 서비스, 스냅샷 또는 버킷...). 펜테스터/레드 팀원으로서 항상 민감한 정보/취약점을 찾을 수 있는지 확인해야 합니다. 이는 AWS 계정에 대한 추가 접근을 제공할 수 있습니다.
이 책에서는 노출된 GCP 서비스 찾기 및 확인 방법에 대한 정보를 찾을 수 있습니다. 노출된 네트워크 서비스의 취약점 찾기에 대해서는 특정 서비스를 검색할 것을 권장합니다:
하나의 플랫폼에서 주체를 손상시키는 것은 공격자가 다른 플랫폼을 손상시킬 수 있게 할 수 있습니다, 확인하세요:
GCP <--> Workspace PivotingGCloud 콘솔에서 https://console.cloud.google.com/iam-admin/asset-inventory/dashboard 를 통해 프로젝트에서 사용 중인 리소스와 IAM을 볼 수 있습니다.
이 API에서 지원하는 자산을 확인할 수 있습니다: https://cloud.google.com/asset-inventory/docs/supported-asset-types
여기에서 여러 클라우드에서 사용할 수 있는 도구를 확인하세요.
gcp_scanner: 이는 GCP에서 특정 자격 증명이 어떤 수준의 접근 권한을 가지고 있는지 판단하는 데 도움이 되는 GCP 리소스 스캐너입니다.
gcp_enum: gcloud cli를 사용하여 GCP 환경을 열거하고 결과를 파일에 저장하는 Bash 스크립트입니다.
GCP-IAM-Privilege-Escalation: 높은 IAM 권한을 열거하고 이를 악용하여 GCP에서 권한을 상승시키는 스크립트입니다 (열거 스크립트를 실행할 수 없었습니다).
BF My GCP Permissions: 권한을 무작위 대입하는 스크립트입니다.
gcloud CLI와 함께 --log-http
매개변수를 사용하여 도구가 수행하는 요청을 출력할 수 있다는 점을 기억하세요. 로그에서 토큰 값을 수정하지 않으려면 gcloud config set log_http_redact_token false
를 사용하세요.
또한, 통신을 가로채려면:
메타데이터 엔드포인트에서 유출된 서비스 계정 OAuth 토큰을 사용하기 위해 다음과 같이 하면 됩니다:
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)