GCP - Cloudfunctions Privesc

htARTE (HackTricks AWS Red Team Expert)를 통해 **제로부터 영웅까지 AWS 해킹 배우기**!

HackTricks를 지원하는 다른 방법:

cloudfunctions

Cloud Functions에 대한 자세한 정보:

pageGCP - Cloud Functions Enum

cloudfunctions.functions.create, cloudfunctions.functions.sourceCodeSet, iam.serviceAccounts.actAs

이 권한을 가진 공격자는 임의(악의적) 코드로 새로운 Cloud Function을 생성하고 서비스 계정을 할당할 수 있습니다. 그런 다음 메타데이터에서 서비스 계정 토큰을 누출하여 해당 권한으로 권한 상승할 수 있습니다. 함수를 트리거하기 위한 일부 권한이 필요할 수 있습니다.

이 방법의 악용 스크립트는 여기여기에서 찾을 수 있으며, 미리 빌드된 .zip 파일은 여기에서 찾을 수 있습니다.

cloudfunctions.functions.update, cloudfunctions.functions.sourceCodeSet, iam.serviceAccounts.actAs

이 권한을 가진 공격자는 함수의 코드를 수정하고 심지어 연결된 서비스 계정을 수정하여 토큰을 유출할 수 있습니다. 함수를 트리거하기 위한 일부 권한이 필요할 수 있습니다.

이 방법의 악용 스크립트는 여기에서 찾을 수 있습니다.

cloudfunctions.functions.sourceCodeSet

이 권한을 가지면 함수 버킷에 파일을 업로드할 수 있는 서명된 URL을 얻을 수 있습니다(하지만 함수의 코드는 변경되지 않으며 업데이트해야 합니다)

# Generate the URL
curl -X POST https://cloudfunctions.googleapis.com/v2/projects/{project-id}/locations/{location}/functions:generateUploadUrl \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json" \
-d '{}'

공격자 관점에서 이 권한만으로는 얼마나 유용한지 확실하지 않지만 알아 두는 것이 좋습니다.

cloudfunctions.functions.setIamPolicy, iam.serviceAccounts.actAs

이전 .update 또는 .create 권한 중 하나를 부여하여 권한 상승을 수행할 수 있습니다.

cloudfunctions.functions.update

iam.serviceAccounts.actAs 없이 cloudfunctions 권한만 있는 경우 함수를 업데이트할 수 없으므로 이것은 유효한 권한 상승이 아닙니다.

버킷 쓰기 권한

Cloud Functions 코드가 저장된 버킷에 쓰기 권한이 있는 공격자는 function_code.zip를 덮어쓰면서 코드를 수정할 수 있으며 실행될 때 임의의 코드를 실행할 수 있습니다.

참고 자료

htARTE (HackTricks AWS Red Team Expert)로부터 제로에서 영웅까지 AWS 해킹 배우기 htARTE (HackTricks AWS Red Team Expert)!

HackTricks를 지원하는 다른 방법:

最終更新