GCP - Cloud Functions Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Google Cloud Functions は、ホストオペレーティングシステムの管理を必要とせずに、イベントに応じて実行されるコードをホストするように設計されています。さらに、これらの関数は、コードが利用できる環境変数のストレージをサポートしています。
Cloud FunctionsのコードはGCP Storageに保存されます。したがって、GCPのバケットに対する読み取りアクセス権を持つ人は、Cloud Functionsのコードを読むことができます。 コードは次のようなバケットに保存されます:
gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zip
gcf-v2-sources-<number>-<region>/<function-name>function-source.zip
例えば:
gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip
Cloud Functionを保存しているバケットに読み取り権限を持つ任意のユーザーは、実行されたコードを読むことができます。
クラウド関数が実行されるDockerコンテナがプロジェクト内のArtifact Registryリポジトリに保存されるように構成されている場合、リポジトリに対する読み取りアクセス権を持つ者は、イメージをダウンロードしてソースコードを確認できます。詳細については、次を確認してください:
指定されていない場合、デフォルトでApp Engine Default Service Accountがプロジェクトに対してEditor権限を持ってCloud Functionに添付されます。
Cloud Functionが作成されると、トリガーを指定する必要があります。一般的なものの一つはHTTPSで、これにより関数をウェブブラウジングでトリガーできるURLが作成されます。 他のトリガーにはpub/sub、Storage、Filestoreなどがあります...
URL形式は**https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>
**です。
HTTPSトリガーが使用されると、**呼び出し元が関数を呼び出すためにIAM認証を持つ必要があるか、**誰でも呼び出せるかが示されます:
コードは**/workspace
フォルダ内にダウンロードされ、Cloud Function内のファイルと同じファイル名を持ち、ユーザーwww-data
で実行されます。
ディスクは読み取り専用としてマウントされていません**。
次のページでは、クラウド関数の権限を悪用して権限を昇格させる方法を確認できます:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)