mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-29 06:03:26 -08:00
Translated ['src/pentesting-ci-cd/cloudflare-security/cloudflare-domains
This commit is contained in:
@@ -23,13 +23,13 @@ gcp-basic-information/
|
||||
|
||||
GCP 環境を監査するためには、どの **サービスが使用されているか**、何が **公開されているか**、誰が **何にアクセスできるか**、および内部 GCP サービスと **外部サービス** がどのように接続されているかを知ることが非常に重要です。
|
||||
|
||||
レッドチームの観点から、GCP 環境を侵害するための **最初のステップ** は、いくつかの **資格情報** を取得することです。以下はその方法に関するいくつかのアイデアです:
|
||||
レッドチームの観点から、GCP 環境を侵害するための **最初のステップ** は、いくつかの **資格情報** を取得することです。以下はその方法のいくつかのアイデアです:
|
||||
|
||||
- github(または類似のもの)での **漏洩** - OSINT
|
||||
- **ソーシャル** エンジニアリング(ページ [**Workspace Security**](../workspace-security/) を確認)
|
||||
- **パスワード** 再利用(パスワード漏洩)
|
||||
- github (または類似の) での **漏洩** - OSINT
|
||||
- **ソーシャル** エンジニアリング (ページ [**Workspace Security**](../workspace-security/index.html) を確認)
|
||||
- **パスワード** 再利用 (パスワード漏洩)
|
||||
- GCP ホストアプリケーションの脆弱性
|
||||
- [**サーバーサイドリクエストフォージェリ**](https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf) メタデータエンドポイントへのアクセス
|
||||
- [**サーバーサイドリクエストフォージェリ**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) メタデータエンドポイントへのアクセス
|
||||
- **ローカルファイル読み取り**
|
||||
- `/home/USERNAME/.config/gcloud/*`
|
||||
- `C:\Users\USERNAME\.config\gcloud\*`
|
||||
@@ -49,16 +49,16 @@ gcp-permissions-for-a-pentest.md
|
||||
{{#endref}}
|
||||
|
||||
> [!NOTE]
|
||||
> 資格情報を取得した後は、それらの資格情報が **誰に属しているか**、および **何にアクセスできるか** を知る必要があります。そのため、いくつかの基本的な列挙を実行する必要があります:
|
||||
> 資格情報を取得した後は、それが **誰のものであるか**、および **何にアクセスできるか** を知る必要があります。したがって、いくつかの基本的な列挙を実行する必要があります:
|
||||
|
||||
## 基本的な列挙
|
||||
|
||||
### **SSRF**
|
||||
|
||||
GCP メタデータを **列挙** する方法についての詳細は、以下の hacktricks ページを確認してください:
|
||||
GCP メタデータを **列挙する** 方法についての詳細は、以下の hacktricks ページを確認してください:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#6440
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
### Whoami
|
||||
@@ -90,7 +90,7 @@ gcloud projects list # Get projects
|
||||
|
||||
十分な権限がある場合、**GCPアカウント内の各エンティティの権限を確認すること**は、あなたや他のアイデンティティが何をできるか、また**権限を昇格させる方法**を理解するのに役立ちます。
|
||||
|
||||
IAMを列挙するための十分な権限がない場合、**ブルートフォースで盗む**ことでそれを把握することができます。\
|
||||
IAMを列挙するための十分な権限がない場合、**ブルートフォースで盗む**ことでそれを把握できます。\
|
||||
**列挙とブルートフォースの方法**については、以下を確認してください:
|
||||
|
||||
{{#ref}}
|
||||
@@ -98,7 +98,7 @@ gcp-services/gcp-iam-and-org-policies-enum.md
|
||||
{{#endref}}
|
||||
|
||||
> [!NOTE]
|
||||
> 現在、**あなたの資格情報に関する情報を持っている**(そして、もしあなたがレッドチームであれば、幸運にも**検出されていない**ことを願います)。環境で使用されているサービスを特定する時が来ました。\
|
||||
> 現在、**あなたの資格情報に関する情報を持っている**(そして、もしあなたがレッドチームであれば、**検出されていないことを願っています**)。環境で使用されているサービスを特定する時が来ました。\
|
||||
> 次のセクションでは、**一般的なサービスを列挙する方法**をいくつか確認できます。
|
||||
|
||||
## Services Enumeration
|
||||
@@ -109,9 +109,9 @@ GCPには驚くべき数のサービスがあります。次のページでは
|
||||
gcp-services/
|
||||
{{#endref}}
|
||||
|
||||
すべての作業を**手動で**行う必要はないことに注意してください。この投稿の下部には、[**自動ツール**](./#automatic-tools)に関する**セクション**があります。
|
||||
すべての作業を**手動で**行う必要はないことに注意してください。この投稿の下部には、[**自動ツール**](#automatic-tools)に関する**セクション**があります。
|
||||
|
||||
さらに、この段階で**認証されていないユーザーに公開されているサービスを**発見した場合、それを悪用できるかもしれません:
|
||||
さらに、この段階で**認証されていないユーザーに公開されているサービスを**発見するかもしれません。それらを悪用できるかもしれません:
|
||||
|
||||
{{#ref}}
|
||||
gcp-unauthenticated-enum-and-access/
|
||||
@@ -119,7 +119,7 @@ gcp-unauthenticated-enum-and-access/
|
||||
|
||||
## Privilege Escalation, Post Exploitation & Persistence
|
||||
|
||||
クラウドの資格情報を取得したり、クラウド内で実行されているサービスを侵害した後の最も一般的な方法は、侵害されたアカウントが持つ**誤って設定された権限を悪用すること**です。したがって、最初に行うべきことは、自分の権限を列挙することです。
|
||||
クラウドの資格情報を取得したり、クラウド内で実行されているサービスを侵害した後の最も一般的な方法は、**侵害されたアカウントが持つ誤設定された権限を悪用すること**です。したがって、最初に行うべきことは、自分の権限を列挙することです。
|
||||
|
||||
さらに、この列挙中に、**権限は「組織」の最高レベルで設定できる**ことを忘れないでください。
|
||||
|
||||
@@ -138,12 +138,12 @@ gcp-persistence/
|
||||
### Publicly Exposed Services
|
||||
|
||||
GCPサービスを列挙しているときに、いくつかのサービスが**インターネットに要素を公開している**のを見つけたかもしれません(VM/コンテナのポート、データベースやキューサービス、スナップショットやバケットなど)。\
|
||||
ペンテスター/レッドチームのメンバーとして、これらに**機密情報や脆弱性**がないか常に確認するべきです。これにより、**AWSアカウントへのさらなるアクセス**を得ることができるかもしれません。
|
||||
ペンテスター/レッドチームとして、**機密情報や脆弱性**を見つけられるかどうかを常に確認すべきです。これにより、**AWSアカウントへのさらなるアクセス**を得ることができるかもしれません。
|
||||
|
||||
この本では、**公開されたGCPサービスを見つける方法とそれを確認する方法**に関する**情報**を見つけることができます。**公開されたネットワークサービスの脆弱性を見つける方法**については、特定の**サービス**を以下で**検索**することをお勧めします:
|
||||
この本では、**公開されたGCPサービスを見つける方法とそれを確認する方法**に関する**情報**を見つけることができるはずです。**公開されたネットワークサービスの脆弱性を見つける方法**については、特定の**サービス**を以下で**検索**することをお勧めします:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/
|
||||
https://book.hacktricks.wiki/
|
||||
{{#endref}}
|
||||
|
||||
## GCP <--> Workspace Pivoting
|
||||
@@ -156,10 +156,10 @@ gcp-to-workspace-pivoting/
|
||||
|
||||
## Automatic Tools
|
||||
|
||||
- **GCloudコンソール**では、[https://console.cloud.google.com/iam-admin/asset-inventory/dashboard](https://console.cloud.google.com/iam-admin/asset-inventory/dashboard)でプロジェクトによって使用されているリソースとIAMを確認できます。
|
||||
- **GCloudコンソール**で、[https://console.cloud.google.com/iam-admin/asset-inventory/dashboard](https://console.cloud.google.com/iam-admin/asset-inventory/dashboard)にアクセスすると、プロジェクトで使用されているリソースとIAMを確認できます。
|
||||
- このAPIでサポートされている資産を確認できます:[https://cloud.google.com/asset-inventory/docs/supported-asset-types](https://cloud.google.com/asset-inventory/docs/supported-asset-types)
|
||||
- [**複数のクラウドで使用できるツール**](../pentesting-cloud-methodology.md)を確認してください。
|
||||
- [**gcp_scanner**](https://github.com/google/gcp_scanner):これは、GCP上で特定の資格情報が持つ**アクセスレベル**を判断するのに役立つGCPリソーススキャナーです。
|
||||
- [**gcp_scanner**](https://github.com/google/gcp_scanner):これはGCPリソーススキャナーで、特定の資格情報がGCP上で**どのレベルのアクセスを持っているか**を判断するのに役立ちます。
|
||||
```bash
|
||||
# Install
|
||||
git clone https://github.com/google/gcp_scanner.git
|
||||
@@ -189,11 +189,11 @@ gcloud auth application-default print-access-token
|
||||
# Update gcloud
|
||||
gcloud components update
|
||||
```
|
||||
### gcloud、gsutil... ネットワークのキャプチャ
|
||||
### Capture gcloud, gsutil... network
|
||||
|
||||
**`gcloud`** cliで**リクエスト**を**印刷**するために、**パラメータ** **`--log-http`**を使用できることを忘れないでください。ログがトークン値を隠さないようにするには、`gcloud config set log_http_redact_token false`を使用します。
|
||||
**`gcloud`** CLIで**リクエスト**を**表示**するために、**パラメータ** **`--log-http`**を使用できることを忘れないでください。ログがトークン値を隠さないようにするには、`gcloud config set log_http_redact_token false`を使用します。
|
||||
|
||||
さらに、通信を傍受するには:
|
||||
さらに、通信を傍受するには:
|
||||
```bash
|
||||
gcloud config set proxy/address 127.0.0.1
|
||||
gcloud config set proxy/port 8080
|
||||
@@ -210,7 +210,7 @@ gcloud config unset proxy/type
|
||||
gcloud config unset auth/disable_ssl_validation
|
||||
gcloud config unset core/custom_ca_certs_file
|
||||
```
|
||||
### gcloudでのOAuthトークンの設定
|
||||
### OAuthトークンのgcloudでの設定
|
||||
|
||||
**メタデータエンドポイントから抽出されたサービスアカウントOAuthトークンを使用するためには**、次のようにするだけです:
|
||||
```bash
|
||||
|
||||
@@ -12,31 +12,31 @@
|
||||
|
||||
### 依存関係の混乱
|
||||
|
||||
- **リモートと標準**のリポジトリが**仮想**リポジトリで**混在**し、両方にパッケージが存在する場合、どうなるか?
|
||||
- **仮想リポジトリ**で**優先度が最も高く設定されたもの**が使用される
|
||||
- **リモートと標準**のリポジトリが**仮想**リポジトリで**混在**し、両方にパッケージが存在する場合、どうなりますか?
|
||||
- **仮想リポジトリ**で**優先度が最も高く設定されたもの**が使用されます
|
||||
- **優先度が同じ**の場合:
|
||||
- **バージョン**が**同じ**であれば、**仮想リポジトリ**で**アルファベット順に最初のポリシー名**が使用される
|
||||
- そうでなければ、**最も高いバージョン**が使用される
|
||||
- **バージョン**が**同じ**であれば、**仮想リポジトリ**で**アルファベット順に最初のポリシー名**が使用されます
|
||||
- そうでない場合は、**最も高いバージョン**が使用されます
|
||||
|
||||
> [!CAUTION]
|
||||
> したがって、リモートリポジトリがより高いまたは同じ優先度を持っている場合、**パブリックパッケージレジストリ**で**最高バージョン(依存関係の混乱)**を**悪用**することが可能です
|
||||
> したがって、リモートリポジトリがより高いまたは同じ優先度を持っている場合、**公開パッケージレジストリ**で**最高バージョン(依存関係の混乱)**を**悪用**することが可能です
|
||||
|
||||
この技術は、**持続性**と**認証されていないアクセス**に役立ちます。悪用するには、アーティファクト レジストリに保存されている**ライブラリ名**を**知っている**必要があり、**パブリックリポジトリ(例えばPythonのPyPi)**に同じライブラリを**より高いバージョン**で**作成**するだけです。
|
||||
この技術は、**持続性**と**認証されていないアクセス**に役立ちます。悪用するには、アーティファクト レジストリに保存されている**ライブラリ名**を**知っている**必要があり、**同じライブラリを公開リポジトリ(例えばPythonのPyPi)に**より高いバージョンで**作成**するだけです。
|
||||
|
||||
持続性のために従うべき手順は次のとおりです:
|
||||
|
||||
- **要件**: **仮想リポジトリ**が**存在**し、使用されている必要があります。**パブリックリポジトリ**に存在しない**名前**の**内部パッケージ**を使用する必要があります。
|
||||
- 存在しない場合はリモートリポジトリを作成する
|
||||
- リモートリポジトリを仮想リポジトリに追加する
|
||||
- リモートリポジトリにより高い(または同じ)優先度を与えるために仮想レジストリのポリシーを編集する。\
|
||||
- **要件**: **仮想リポジトリ**が**存在**し、使用されている必要があります。**公開リポジトリ**に存在しない**名前**の**内部パッケージ**を使用する必要があります。
|
||||
- リモートリポジトリが存在しない場合は作成します
|
||||
- リモートリポジトリを仮想リポジトリに追加します
|
||||
- リモートリポジトリにより高い(または同じ)優先度を与えるために、仮想レジストリのポリシーを編集します。\
|
||||
次のようなコマンドを実行します:
|
||||
- [gcloud artifacts repositories update --upstream-policy-file ...](https://cloud.google.com/sdk/gcloud/reference/artifacts/repositories/update#--upstream-policy-file)
|
||||
- 正当なパッケージをダウンロードし、悪意のあるコードを追加して、同じバージョンでパブリックリポジトリに登録します。開発者がインストールするたびに、あなたのものがインストールされます!
|
||||
- 正当なパッケージをダウンロードし、悪意のあるコードを追加して、同じバージョンで公開リポジトリに登録します。開発者がインストールするたびに、あなたのものがインストールされます!
|
||||
|
||||
依存関係の混乱に関する詳細情報は、以下を確認してください:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/dependency-confusion
|
||||
https://book.hacktricks.wiki/en/pentesting-web/dependency-confusion.html
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -11,26 +11,26 @@ sqlite3 $HOME/.config/gcloud/access_tokens.db "select access_token from access_t
|
||||
このページで**gcloudを使用してこのトークンを直接使用する方法**を確認してください:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#id-6440-1
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#gcp
|
||||
{{#endref}}
|
||||
|
||||
**新しいアクセストークンを生成する**ための詳細を取得するには、次を実行します:
|
||||
**新しいアクセストークンを生成する**ための詳細を取得するには、次のコマンドを実行します:
|
||||
```bash
|
||||
sqlite3 $HOME/.config/gcloud/credentials.db "select value from credentials where account_id='<email>';"
|
||||
```
|
||||
**`$HOME/.config/gcloud/application_default_credentials.json`** および **`$HOME/.config/gcloud/legacy_credentials/*/adc.json`** にリフレッシュトークンを見つけることも可能です。
|
||||
**`$HOME/.config/gcloud/application_default_credentials.json`** および **`$HOME/.config/gcloud/legacy_credentials/*/adc.json`** にリフレッシュトークンが見つかることもあります。
|
||||
|
||||
**リフレッシュトークン**、クライアントID、およびクライアントシークレットを使用して新しいアクセストークンを取得するには、次のコマンドを実行します:
|
||||
```bash
|
||||
curl -s --data client_id=<client_id> --data client_secret=<client_secret> --data grant_type=refresh_token --data refresh_token=<refresh_token> --data scope="https://www.googleapis.com/auth/cloud-platform https://www.googleapis.com/auth/accounts.reauth" https://www.googleapis.com/oauth2/v4/token
|
||||
```
|
||||
リフレッシュトークンの有効性は、**Admin** > **Security** > **Google Cloud session control** で管理でき、デフォルトでは16時間に設定されていますが、期限切れにならないように設定することもできます:
|
||||
リフレッシュトークンの有効性は **Admin** > **Security** > **Google Cloud session control** で管理でき、デフォルトでは16時間に設定されていますが、期限切れにならないように設定することもできます:
|
||||
|
||||
<figure><img src="../../../images/image (11).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### 認証フロー
|
||||
### Auth flow
|
||||
|
||||
`gcloud auth login` のようなものを使用する際の認証フローは、ブラウザにプロンプトを表示し、すべてのスコープを受け入れた後、ブラウザはツールによって開かれたhttpポートにこのようなリクエストを送信します:
|
||||
`gcloud auth login` のようなものを使用する際の認証フローは、ブラウザでプロンプトを開き、すべてのスコープを承認した後、ブラウザはツールによって開かれたhttpポートにこのようなリクエストを送信します:
|
||||
```
|
||||
/?state=EN5AK1GxwrEKgKog9ANBm0qDwWByYO&code=4/0AeaYSHCllDzZCAt2IlNWjMHqr4XKOuNuhOL-TM541gv-F6WOUsbwXiUgMYvo4Fg0NGzV9A&scope=email%20openid%20https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/cloud-platform%20https://www.googleapis.com/auth/appengine.admin%20https://www.googleapis.com/auth/sqlservice.login%20https://www.googleapis.com/auth/compute%20https://www.googleapis.com/auth/accounts.reauth&authuser=0&prompt=consent HTTP/1.1
|
||||
```
|
||||
@@ -65,14 +65,14 @@ https://www.googleapis.com/auth/devstorage.full_control
|
||||
https://www.googleapis.com/auth/drive
|
||||
https://www.googleapis.com/auth/userinfo.email
|
||||
```
|
||||
このアプリが**`drive`**スコープをサポートしているのは興味深いことで、攻撃者がユーザーにこのスコープでトークンを生成させることに成功すれば、GCPからWorkspaceにエスカレートすることが可能になります。
|
||||
このアプリが**`drive`**スコープをサポートしているのは興味深いことであり、攻撃者がユーザーにこのスコープでトークンを生成させることに成功すれば、GCPからWorkspaceにエスカレートすることが可能になります。
|
||||
|
||||
**こちらで** [**この方法を悪用する方法を確認してください**](../gcp-to-workspace-pivoting/#abusing-gcloud)**。**
|
||||
**こちらで** [**この方法を悪用する方法を確認してください**](../gcp-to-workspace-pivoting/index.html#abusing-gcloud)**。**
|
||||
|
||||
### サービスアカウント
|
||||
|
||||
認証されたユーザーと同様に、サービスアカウントの**プライベートキーのファイルを侵害することができれば、通常は好きなだけアクセスすることができます**。\
|
||||
しかし、サービスアカウントの**OAuthトークンを盗むことができれば、さらに興味深いことになります。デフォルトではこれらのトークンは通常1時間だけ有効ですが、**被害者がプライベートAPIキーを削除しても、OAuthトークンは期限が切れるまで有効です**。
|
||||
認証されたユーザーと同様に、サービスアカウントの**プライベートキーのファイルを侵害することができれば、通常は好きなだけ**アクセスすることができます。\
|
||||
しかし、サービスアカウントの**OAuthトークンを盗むことができれば、さらに興味深いことになります。なぜなら、デフォルトではこれらのトークンは通常1時間だけ有効ですが、**もし**被害者がプライベートAPIキーを削除した場合、OAuthトークンは有効期限が切れるまで有効であり続けるからです**。
|
||||
|
||||
### メタデータ
|
||||
|
||||
@@ -80,7 +80,7 @@ https://www.googleapis.com/auth/userinfo.email
|
||||
|
||||
### 修正策
|
||||
|
||||
これらの技術に対するいくつかの修正策は、[https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2](https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2)で説明されています。
|
||||
これらの技術に対するいくつかの修正策は、[https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2](https://www.netskope.com/blog/gcp-oauth-token-hijacking-in-google-cloud-part-2)に説明されています。
|
||||
|
||||
### 参考文献
|
||||
|
||||
|
||||
@@ -2,45 +2,45 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
このシナリオでは、**特権のないアカウントを** Compute Engine プロジェクト内の VM に侵入したと仮定します。
|
||||
このシナリオでは、あなたが **VM内の非特権アカウントを侵害した** と仮定します。
|
||||
|
||||
驚くべきことに、侵入した Compute Engine の GPC 権限は、**マシン内でローカルに特権を昇格させる**のに役立つかもしれません。クラウド環境では常に非常に役立つわけではありませんが、可能であることを知っておくのは良いことです。
|
||||
驚くべきことに、あなたが侵害した Compute Engine の GPC 権限は、**マシン内でローカルに特権を昇格させる**のに役立つかもしれません。クラウド環境では常に非常に役立つわけではありませんが、可能であることを知っておくのは良いことです。
|
||||
|
||||
## スクリプトを読む <a href="#follow-the-scripts" id="follow-the-scripts"></a>
|
||||
|
||||
**Compute インスタンス**は、おそらくそのサービスアカウントでアクションを実行するために**いくつかのスクリプトを実行する**ために存在しています。
|
||||
**Compute インスタンス**は、おそらくそのサービスアカウントを使用してアクションを実行するために **いくつかのスクリプトを実行する** ために存在しています。
|
||||
|
||||
IAM が非常に細かく設定されているため、アカウントはリソースに対して**読み取り/書き込み**権限を持っているが、**リスト権限は持っていない**場合があります。
|
||||
IAMは非常に細かく設定できるため、アカウントはリソースに対して **読み取り/書き込み** 権限を持っているが **リスト権限は持っていない** 可能性があります。
|
||||
|
||||
この良い仮想的な例は、`instance82736-long-term-xyz-archive-0332893`というストレージバケットにバックアップを読み書きする権限を持つ Compute インスタンスです。
|
||||
この良い仮想的な例は、`instance82736-long-term-xyz-archive-0332893` というストレージバケットにバックアップを読み書きする権限を持つ Compute インスタンスです。
|
||||
|
||||
コマンドラインから `gsutil ls` を実行すると、サービスアカウントが `storage.buckets.list` IAM 権限を欠いているため、何も返されません。しかし、`gsutil ls gs://instance82736-long-term-xyz-archive-0332893` を実行すると、完全なファイルシステムバックアップが見つかり、ローカルの Linux アカウントが欠いているデータへの平文アクセスが得られます。
|
||||
コマンドラインから `gsutil ls` を実行すると何も返されません。なぜなら、サービスアカウントが `storage.buckets.list` IAM 権限を欠いているからです。しかし、`gsutil ls gs://instance82736-long-term-xyz-archive-0332893` を実行すると、完全なファイルシステムバックアップが見つかり、あなたのローカル Linux アカウントが持っていないデータへの平文アクセスが得られるかもしれません。
|
||||
|
||||
このバケット名は、スクリプト(bash、Python、Ruby など)内で見つけることができるかもしれません。
|
||||
このバケット名は、スクリプト(bash、Python、Rubyなど)内で見つけることができるかもしれません。
|
||||
|
||||
## カスタムメタデータ
|
||||
|
||||
管理者は、**インスタンス**および**プロジェクトレベル**で[カスタムメタデータ](https://cloud.google.com/compute/docs/storing-retrieving-metadata#custom)を追加できます。これは、**任意のキー/値ペアをインスタンスに渡す**方法であり、環境変数やスタートアップ/シャットダウンスクリプトに一般的に使用されます。
|
||||
管理者は、**インスタンス**および **プロジェクトレベル**で [カスタムメタデータ](https://cloud.google.com/compute/docs/storing-retrieving-metadata#custom) を追加できます。これは、**任意のキー/値ペアをインスタンスに渡す**方法であり、環境変数や起動/シャットダウンスクリプトに一般的に使用されます。
|
||||
|
||||
さらに、**ユーザーデータ**を追加することも可能で、これはマシンが起動または再起動されるたびに**実行されるスクリプト**であり、**メタデータエンドポイントからもアクセス可能です。**
|
||||
さらに、**ユーザーデータ**を追加することも可能で、これはマシンが起動または再起動されるたびに **実行されるスクリプト**であり、**メタデータエンドポイントからもアクセス可能です。**
|
||||
|
||||
詳細については、次を確認してください:
|
||||
詳細については、以下を確認してください:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
## **IAM 権限の悪用**
|
||||
## **IAM権限の悪用**
|
||||
|
||||
以下に提案するほとんどの権限は、**デフォルトの Compute SA に与えられていますが、**唯一の問題は、**デフォルトのアクセススコープが SA の使用を妨げる**ことです。しかし、**`cloud-platform`** **スコープ**が有効になっているか、**`compute`** **スコープ**が有効になっている場合、これらを**悪用することができます**。
|
||||
以下に提案するほとんどの権限は、**デフォルトの Compute SA に与えられています**。唯一の問題は、**デフォルトのアクセススコープが SA の使用を妨げる**ことです。しかし、**`cloud-platform`** **スコープ**が有効になっているか、単に **`compute`** **スコープ**が有効になっている場合、あなたはそれらを **悪用することができる**でしょう。
|
||||
|
||||
以下の権限を確認してください:
|
||||
|
||||
- [**compute.instances.osLogin**](gcp-compute-privesc/#compute.instances.oslogin)
|
||||
- [**compute.instances.osAdminLogin**](gcp-compute-privesc/#compute.instances.osadminlogin)
|
||||
- [**compute.projects.setCommonInstanceMetadata**](gcp-compute-privesc/#compute.projects.setcommoninstancemetadata)
|
||||
- [**compute.instances.setMetadata**](gcp-compute-privesc/#compute.instances.setmetadata)
|
||||
- [**compute.instances.setIamPolicy**](gcp-compute-privesc/#compute.instances.setiampolicy)
|
||||
- [**compute.instances.osLogin**](gcp-compute-privesc/index.html#compute.instances.oslogin)
|
||||
- [**compute.instances.osAdminLogin**](gcp-compute-privesc/index.html#compute.instances.osadminlogin)
|
||||
- [**compute.projects.setCommonInstanceMetadata**](gcp-compute-privesc/index.html#compute.projects.setcommoninstancemetadata)
|
||||
- [**compute.instances.setMetadata**](gcp-compute-privesc/index.html#compute.instances.setmetadata)
|
||||
- [**compute.instances.setIamPolicy**](gcp-compute-privesc/index.html#compute.instances.setiampolicy)
|
||||
|
||||
## ファイルシステム内のキーを検索
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
|
||||
## 基本情報
|
||||
|
||||
Google Cloud Compute Instancesは、**Googleのクラウドインフラストラクチャ上のカスタマイズ可能な仮想マシン**であり、さまざまなアプリケーションに対してスケーラブルでオンデマンドのコンピューティングパワーを提供します。グローバル展開、永続ストレージ、柔軟なOSの選択、強力なネットワーキングおよびセキュリティ統合などの機能を提供し、ウェブサイトのホスティング、データ処理、アプリケーションの効率的な実行において多用途な選択肢となります。
|
||||
Google Cloud Compute Instancesは、**Googleのクラウドインフラストラクチャ上のカスタマイズ可能な仮想マシン**であり、さまざまなアプリケーション向けにスケーラブルでオンデマンドのコンピューティングパワーを提供します。これらは、グローバル展開、永続ストレージ、柔軟なOSの選択、強力なネットワーキングおよびセキュリティ統合などの機能を提供し、ウェブサイトのホスティング、データ処理、アプリケーションの効率的な実行において多用途な選択肢となります。
|
||||
|
||||
### 機密VM
|
||||
|
||||
機密VMは、**最新世代のAMD EPYCプロセッサが提供するハードウェアベースのセキュリティ機能**を使用しており、メモリエンクリプションや安全な暗号化仮想化が含まれています。これらの機能により、VMはホストオペレーティングシステムやハイパーバイザーからも処理および保存されたデータを保護できます。
|
||||
機密VMは、**最新世代のAMD EPYCプロセッサ**が提供する**ハードウェアベースのセキュリティ機能**を使用しており、メモリ暗号化や安全な暗号化仮想化が含まれています。これらの機能により、VMはホストオペレーティングシステムやハイパーバイザーから処理および保存されたデータを保護できます。
|
||||
|
||||
機密VMを実行するには、**マシンのタイプ**、ネットワーク**インターフェース**、**ブートディスクイメージ**などを**変更**する必要がある場合があります。
|
||||
|
||||
@@ -19,12 +19,12 @@ Google Cloud Compute Instancesは、**Googleのクラウドインフラストラ
|
||||
- ディスクの**サイズ**を選択
|
||||
- **OS**を選択
|
||||
- インスタンスが削除されたときに**ディスクを削除する**かどうかを指定
|
||||
- **暗号化**:デフォルトで**Google管理キー**が使用されますが、**KMSからキーを選択**するか、**使用する生のキーを指定**することもできます。
|
||||
- **暗号化**:**デフォルト**では**Google管理キー**が使用されますが、KMSから**キーを選択**するか、**使用する生のキー**を指定することもできます。
|
||||
|
||||
### コンテナのデプロイ
|
||||
|
||||
仮想マシン内に**コンテナ**をデプロイすることが可能です。\
|
||||
使用する**イメージ**を構成し、内部で実行する**コマンド**、**引数**、**ボリューム**をマウントし、**環境変数**(機密情報?)を設定し、このコンテナのために**特権**として実行する、stdinおよび擬似TTYなどのいくつかのオプションを構成できます。
|
||||
使用する**イメージ**を設定し、内部で実行する**コマンド**、**引数**、**ボリューム**をマウントし、**環境変数**(機密情報?)を設定し、このコンテナのために**特権**として実行する、標準入力および擬似TTYなどのいくつかのオプションを構成できます。
|
||||
|
||||
### サービスアカウント
|
||||
|
||||
@@ -67,8 +67,8 @@ HTTPおよびHTTPSトラフィックを許可することが可能です。
|
||||
### VMアクセス
|
||||
|
||||
VMへのアクセスを有効にする一般的な方法は、**特定のSSH公開鍵**をVMにアクセスできるようにすることです。\
|
||||
ただし、**IAMを使用して`os-config`サービスを介してVMへのアクセスを有効にする**ことも可能です。さらに、このサービスを使用してVMへのアクセスに2FAを有効にすることも可能です。\
|
||||
この**サービス**が**有効**になっている場合、**SSHキーによるアクセスは無効**になります。
|
||||
ただし、**IAMを使用して`os-config`サービス経由でVMへのアクセスを有効にする**ことも可能です。さらに、このサービスを使用してVMへのアクセスに2FAを有効にすることも可能です。\
|
||||
この**サービス**が**有効**になると、**SSHキーによるアクセスは無効**になります。
|
||||
|
||||
<figure><img src="../../../../images/image (328).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
@@ -89,7 +89,7 @@ curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?re
|
||||
さらに、**添付されたサービスアカウントの認証トークン**と**インスタンス、ネットワーク、プロジェクトに関する一般情報**も**メタデータエンドポイント**から取得できます。詳細については、以下を確認してください:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf#6440
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html#gcp
|
||||
{{#endref}}
|
||||
|
||||
### 暗号化
|
||||
|
||||
@@ -17,9 +17,9 @@ Cloud SQLに関する詳細情報は、以下を確認してください:
|
||||
異なるデータベース技術に対して**ブルートフォースするための異なるツール**については、このページを確認してください:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/generic-methodologies-and-resources/brute-force
|
||||
https://book.hacktricks.wiki/en/generic-hacking/brute-force.html
|
||||
{{#endref}}
|
||||
|
||||
特定の権限を持っていると、GCP APIを介して**すべてのデータベースユーザーをリストする**ことが可能です。
|
||||
特定の権限を持っていると、GCP APIを介して**すべてのデータベースユーザーをリスト**することが可能です。
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -15,7 +15,7 @@ ComputeとVPC(ネットワーキング)に関する詳細情報は、以下
|
||||
ウェブが**SSRFに対して脆弱**であり、**メタデータヘッダーを追加する**ことが可能な場合、攻撃者はそれを悪用してメタデータエンドポイントからSA OAuthトークンにアクセスすることができます。SSRFに関する詳細情報は、以下を確認してください:
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.xyz/pentesting-web/ssrf-server-side-request-forgery
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/index.html
|
||||
{{#endref}}
|
||||
|
||||
### 脆弱な公開サービス
|
||||
|
||||
Reference in New Issue
Block a user