GCP Pentesting
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)
GCP 環境の ペンテスト を開始する前に、どのように機能するかについて知っておくべき 基本的なこと がいくつかあります。これにより、何をすべきか、誤設定を見つける方法、そしてそれをどのように悪用するかを理解するのに役立ちます。
組織 階層、権限、およびその他の基本的な概念については、以下で説明されています:
GCP 環境を監査するためには、どの サービスが使用されているか、何が 公開されているか、誰が 何にアクセスできるか、および内部 GCP サービスと 外部サービス がどのように接続されているかを知ることが非常に重要です。
レッドチームの観点から、GCP 環境を侵害するための 最初のステップ は、いくつかの 資格情報 を取得することです。以下はその方法のいくつかです:
github(または類似のもの)での 漏洩 - OSINT
ソーシャル エンジニアリング(ページ Workspace Security を確認)
パスワード の再利用(パスワード漏洩)
GCP ホストアプリケーションの脆弱性
サーバーサイドリクエストフォージェリ メタデータエンドポイントへのアクセス
ローカルファイルの読み取り
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
第三者の 侵害
内部 従業員
または、認証されていないサービス を侵害することによって:
または、レビュー を行っている場合は、これらの役割で 資格情報を要求 することができます:
資格情報を取得した後は、それらの資格情報が 誰に属しているか、および 何にアクセスできるか を知る必要があります。そのため、いくつかの基本的な列挙を行う必要があります:
GCP メタデータを 列挙 する方法についての詳細は、以下の hacktricks ページを確認してください:
GCP では、あなたが誰であるかを推測するためにいくつかのオプションを試すことができます:
ユーザーに関する詳細情報を取得するには、APIエンドポイント /userinfo
を使用することもできます:
十分な権限がある場合、GCPアカウント内の各エンティティの権限を確認することは、あなたや他のアイデンティティが何をできるか、また権限を昇格させる方法を理解するのに役立ちます。
IAMを列挙するための十分な権限がない場合は、ブルートフォースで盗むことでそれを把握できます。 列挙とブルートフォースの方法については、以下を確認してください:
今、あなたは自分の資格情報に関する情報を持っています(そして、もしあなたがレッドチームであれば、幸運にも検出されていないことを願います)。次は、環境で使用されているサービスを特定する時です。 次のセクションでは、一般的なサービスを列挙する方法を確認できます。
GCPには驚くべき数のサービスがあります。次のページでは、基本情報、列挙のチートシート、検出を回避する方法、持続性を得る方法、その他のポストエクスプロイトのトリックについての情報を見つけることができます:
すべての作業を手動で行う必要はないことに注意してください。以下の投稿には、自動ツールに関するセクションがあります。
さらに、この段階で認証されていないユーザーに公開されているサービスを発見するかもしれません。それらを悪用できるかもしれません:
クラウドの資格情報を取得したり、クラウド内で実行されているサービスを侵害した後の最も一般的な方法は、侵害されたアカウントが持つ誤設定された権限を悪用することです。したがって、最初に行うべきことは、自分の権限を列挙することです。
さらに、この列挙中に、権限は「組織」の最高レベルで設定できることを忘れないでください。
GCPサービスを列挙しているときに、いくつかのサービスがインターネットに要素を公開しているのを見つけたかもしれません(VM/コンテナのポート、データベースやキューサービス、スナップショットやバケットなど)。 ペンテスター/レッドチームとして、これらに機密情報や脆弱性がないか常に確認すべきです。これらはAWSアカウントへのさらなるアクセスを提供する可能性があります。
この本では、公開されているGCPサービスを見つける方法とそれを確認する方法に関する情報を見つけることができるはずです。公開されたネットワークサービスの脆弱性を見つける方法については、特定のサービスを以下で検索することをお勧めします:
一つのプラットフォームでプリンシパルを侵害することは、攻撃者がもう一方を侵害することを可能にするかもしれません。以下を確認してください:
GCloudコンソールでは、https://console.cloud.google.com/iam-admin/asset-inventory/dashboardでプロジェクトによって使用されているリソースとIAMを確認できます。
このAPIでサポートされている資産を確認できます:https://cloud.google.com/asset-inventory/docs/supported-asset-types
複数のクラウドで使用できるツールを確認してください。
gcp_scanner:これは、GCP上で特定の資格情報が持つアクセスレベルを判断するのに役立つGCPリソーススキャナーです。
gcp_enum: gcloud cliを使用してGCP環境を列挙し、結果をファイルに保存するBashスクリプト。
GCP-IAM-Privilege-Escalation: 高いIAM権限を列挙し、それを悪用してGCPで権限を昇格させるスクリプト(列挙スクリプトを実行できませんでした)。
BF My GCP Permissions: あなたの権限をブルートフォースするスクリプト。
gcloud
CLIでリクエストを表示するために、パラメータ **--log-http
**を使用できることを忘れないでください。トークン値をログから隠したくない場合は、gcloud config set log_http_redact_token false
を使用します。
さらに、通信を傍受するには:
メタデータエンドポイントから抽出されたサービスアカウントOAuthトークンを使用するためには、次のようにするだけです:
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)