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"
}

你可以在这里找到一个用于自动化创建、利用和清理漏洞环境的脚本

请注意,默认情况下用户具有创建新项目的权限,并且他们被授予新项目的所有者角色。因此,用户可以创建一个项目并在该项目内创建一个 API 密钥

apikeys.keys.getKeyStringapikeys.keys.list

这些权限允许列出和获取所有 apiKeys 并获取密钥

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

你可以在这里找到一个用于自动化创建、利用和清理漏洞环境的脚本

apikeys.keys.undeleteapikeys.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

Last updated