GCP Pentesting
기본 정보
GCP 환경을 펜테스팅하기 전에, 무엇을 해야 할지, 미스컨피규레이션을 찾는 방법 및 어떻게 악용할지를 이해하는 데 도움이 되는 몇 가지 기본 사항이 있습니다.
조직 계층, 권한 및 기타 기본 개념과 같은 개념은 다음에서 설명됩니다:
pageGCP - Basic Information학습을 위한 랩
GCP 펜테스터/레드팀 방법론
GCP 환경을 감사하기 위해서는 사용 중인 서비스, 노출된 것, 누가 무엇에 액세스 권한이 있는지, 내부 GCP 서비스와 외부 서비스가 어떻게 연결되어 있는지를 알아야 합니다.
레드팀 관점에서 GCP 환경을 침해하는 첫 번째 단계는 일부 자격 증명을 획들하는 것입니다. 다음은 그를 위한 몇 가지 아이디어입니다:
깃허브(또는 유사한 곳)의 누설 - OSINT
사회 공학 (페이지 Workspace Security를 확인하세요)
비밀번호 재사용 (비밀번호 누설)
GCP-호스팅 애플리케이션의 취약점
서버 측 요청 위조 메타데이터 엔드포인트에 액세스
로컬 파일 읽기
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
3rd parties 침해
내부 직원
또는 노출된 인증되지 않은 서비스를 침해하여:
pageGCP - Unauthenticated Enum & Access또는 검토를 수행 중이라면 다음 역할로 자격 증명을 요청할 수 있습니다:
pageGCP - Permissions for a Pentest자격 증명을 획득한 후, 해당 자격 증명이 누구에게 속하는지 및 무엇에 액세스 권한이 있는지 알아야 하므로 몇 가지 기본 열거를 수행해야 합니다:
기본 열거
SSRF
GCP 메타데이터를 열거하는 방법에 대한 자세한 정보는 다음 hacktricks 페이지를 확인하세요:
Whoami
GCP에서 누구인지 추측해 보기 위해 여러 옵션을 시도할 수 있습니다:
조직 열거
원칙 및 IAM 열거
충분한 권한이 있다면 GCP 계정 내 각 엔터티의 권한을 확인하여 본인 및 다른 신원이 무엇을 할 수 있는지, 그리고 권한을 승격하는 방법을 이해하는 데 도움이 됩니다.
IAM을 열거할 충분한 권한이 없다면 무차별 대입 공격을 통해 그것들을 파악할 수 있습니다. 열거 및 무차별 대입 공격 방법은 다음에서 확인할 수 있습니다:
pageGCP - IAM, Principals & Org Policies Enum이제 자격 증명에 대한 일부 정보를 가지고 있습니다 (그리고 레드팀이라면 감지되지 않았으면 좋겠습니다). 환경에서 사용되는 서비스를 확인할 시간입니다. 다음 섹션에서 일반적인 서비스를 열거하는 몇 가지 방법을 확인할 수 있습니다.
서비스 열거
GCP에는 놀라운 양의 서비스가 있으며, 다음 페이지에서는 기본 정보, 열거 치트시트, 감지 회피 방법, 지속성 확보, 그리고 일부 서비스에 대한 후속 공격 트릭을 찾을 수 있습니다:
pageGCP - Services모든 작업을 수동으로 수행할 필요가 없다는 것을 주의하십시오. 이 게시물 아래에서 자동 도구에 대한 섹션을 찾을 수 있습니다.
또한, 이 단계에서 인증되지 않은 사용자에게 노출된 더 많은 서비스를 발견할 수 있으며, 이를 악용할 수 있습니다:
pageGCP - Unauthenticated Enum & Access권한 상승, 후속 공격 및 지속성
클라우드 자격 증명을 얻거나 클라우드 내에서 실행 중인 일부 서비스를 침해한 후, 침해된 계정이 가질 수 있는 권한을 오용하는 것이 가장 일반적인 방법입니다. 따라서, 먼저 권한을 열거해야 합니다.
또한, 이 열거 중에 권한이 "조직"의 최상위 수준에서 설정될 수 있다는 것을 기억하십시오.
pageGCP - Privilege EscalationpageGCP - Post ExploitationpageGCP - Persistence공개 노출된 서비스
GCP 서비스를 열거하는 동안 인터넷에 요소를 노출하는 일부 서비스를 발견할 수 있었을 것입니다 (VM/컨테이너 포트, 데이터베이스 또는 큐 서비스, 스냅샷 또는 버킷 등). 펜테스터/레드팀원으로서 항상 민감한 정보/취약점을 찾을 수 있는지 확인해야 하며, 이는 AWS 계정으로의 추가 액세스를 제공할 수 있습니다.
이 책에서는 노출된 GCP 서비스를 찾고 확인하는 방법에 대한 정보를 찾을 수 있습니다. 노출된 네트워크 서비스의 취약점을 찾는 방법에 대해서는 특정 서비스를 검색하는 것을 권장합니다:
GCP <--> Workspace 피벗
한 플랫폼에서 주체를 침해하면 공격자가 다른 플랫폼을 침해할 수 있을 수도 있습니다. 이에 대해 확인하려면 다음을 참조하십시오:
pageGCP <--> Workspace Pivoting자동 도구
GCloud 콘솔에서 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: GCP 환경을 열거하기 위해 gcloud cli를 사용하고 결과를 파일에 저장하는 Bash 스크립트입니다.
GCP-IAM-Privilege-Escalation: 높은 IAM 권한을 열거하고 해당 권한을 남용하여 GCP에서 권한 상승을 하는 스크립트입니다 (열거 스크립트를 실행하지 못했습니다).
gcloud 구성 및 디버그
gcloud, gsutil... 네트워크 캡처
gcloud
cli에서 --log-http
매개변수를 사용하여 도구가 수행하는 요청을 출력할 수 있다. 로그가 토큰 값을 마스킹하지 않으려면 gcloud config set log_http_redact_token false
를 사용하십시오.
또한, 통신을 가로채려면:
gcloud에서 OAuth 토큰 구성
메타데이터 엔드포인트에서 유출된 서비스 계정 OAuth 토큰을 사용하려면 다음을 수행할 수 있습니다:
참고 자료
最終更新