GCP - Apikeys Privesc

HackTricks 지원

Apikeys

다음 권한은 API 키를 생성하고 도용하는 데 유용합니다. 문서에서는 다음과 같이 설명합니다: API 키는 주체 없이 응용 프로그램을 식별하는 간단한 암호화된 문자열입니다. 공개 데이터에 익명으로 액세스하는 데 유용하며, 할당량 및 청구를 위해 API 요청을 프로젝트와 연결하는 데 사용됩니다.

따라서 API 키를 사용하면 해당 회사가 API 사용에 대한 비용을 지불하도록 할 수 있지만 권한 상승은 할 수 없습니다.

API 키에 대한 자세한 정보는 다음을 확인하세요:

GCP - API Keys Enum

API 키를 생성하는 다른 방법에 대해서는 다음을 확인하세요:

GCP - Serviceusage Privesc

API 키 액세스 무차별 대입 공격

프로젝트에서 활성화된 API 또는 찾은 API 키에 적용된 제한을 모를 수 있으므로 https://github.com/ozguralp/gmapsapiscanner 도구를 실행하여 API 키로 액세스할 수 있는 내용을 확인하는 것이 좋습니다.

apikeys.keys.create

이 권한은 API 키를 생성할 수 있습니다.

gcloud services api-keys create
Operation [operations/akmf.p7-[...]9] complete. Result: {
"@type":"type.googleapis.com/google.api.apikeys.v2.Key",
"createTime":"2022-01-26T12:23:06.281029Z",
"etag":"W/\"HOhA[...]==\"",
"keyString":"AIzaSy[...]oU",
"name":"projects/5[...]6/locations/global/keys/f707[...]e8",
"uid":"f707[...]e8",
"updateTime":"2022-01-26T12:23:06.378442Z"
}

취약 환경의 생성, 악용 및 정리를 자동화하는 스크립트를 여기에서 찾을 수 있습니다.

기본적으로 사용자는 새 프로젝트를 생성할 수 있는 권한을 가지며 새 프로젝트에 Owner 역할이 부여됩니다. 따라서 사용자는 프로젝트를 생성하고 이 프로젝트 내에 API 키를 생성할 수 있습니다.

apikeys.keys.getKeyString, apikeys.keys.list

이러한 권한은 모든 apiKeys를 나열하고 가져오며 키를 가져오는 것을 허용합니다.

for  key  in  $(gcloud services api-keys list --uri); do
gcloud services api-keys get-key-string "$key"
done

다음은 취약한 환경의 생성, 악용 및 정리를 자동화하는 스크립트를 찾을 수 있습니다.

apikeys.keys.undelete, apikeys.keys.list

이 권한은 삭제된 API 키를 나열하고 재생성할 수 있게 합니다. API 키는 undelete 작업 후 출력으로 제공됩니다.

gcloud services api-keys list --show-deleted
gcloud services api-keys undelete <key-uid>

내부 OAuth 애플리케이션 생성하여 다른 직원들을 사칭하기

다음 페이지를 확인하여이 작업을 수행하는 방법을 알아보세요. 그러나이 작업은 서비스 **clientauthconfig**에 속한다고 문서에 나와 있습니다:

GWS - Google Platforms Phishing
HackTricks 지원하기

Last updated