GCP - Privilege Escalation

htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法:

GCP特権昇格の概要

GCPは、他のクラウドと同様に、ユーザー、グループ、サービスアカウントなどの主体と、コンピュートエンジン、クラウドファンクションなどのリソースを持っています。 その後、ロールを介して主体にリソース上の権限が付与されます。これは、GCPのリソースに対する主体の権限を指定する方法です。 特定の権限により、ユーザーはリソースまたはサードパーティのリソースにさらに権限を取得できるようになり、これが特権昇格と呼ばれるものです(また、権限を取得するために脆弱性を悪用することも含まれます)。

したがって、GCP特権昇格テクニックを2つのグループに分けたいと思います:

  • 主体への特権昇格:これにより、他の主体になりすますことができ、その主体としてすべての権限を持って行動できます。例:_getAccessToken_を悪用してサービスアカウントになりすます。

  • リソース上の特権昇格:これにより、特定のリソースに対してさらに権限を取得できます。例:cloudfunctions上の_setIamPolicy_権限を悪用して、その関数をトリガーできるようにすることができます。

  • 一部のリソース権限は、リソースに任意のサービスアカウントを添付することも許可します。これは、リソースをSAで起動し、リソースに入り、SAトークンを盗むことができることを意味します。したがって、これにより、リソース昇格を介して主体に昇格することができます。これは以前いくつかのリソースで起こっていましたが、今ではそれほど頻繁ではありません(しかし、まだ起こり得ます)。

明らかに、最も興味深い特権昇格テクニックは2番目のグループのものです。なぜなら、これにより、すでに特権を持っているリソース以外のリソースでさらに特権を取得できるからです。ただし、リソース内での昇格は、機密情報他の主体(たとえば、SAのトークンを含む秘密を読むことを通じて)へのアクセスも提供する可能性があります。

また、GCPサービスアカウントは主体であり権限でもあることにも注意することが重要です。そのため、SAで特権を昇格させると、それをなりすますこともできます。

かっこ内の権限は、gcloudを使用して脆弱性を悪用するために必要な権限を示しています。APIを介して悪用する場合は必要ない場合があります。

特権昇格方法論の権限

これは、GCP内で特定のアクションを実行するための特定の権限をテストする方法です。

  1. GitHubリポジトリhttps://github.com/carlospolop/gcp_privesc_scriptsをダウンロードします。

  2. tests/に新しいスクリプトを追加します。

アクセススコープのバイパス

GCPメタデータサービスから漏洩したSAのトークンにはアクセススコープがあります。これは、トークンが持つ権限に対する制限です。たとえば、トークンに**https://www.googleapis.com/auth/cloud-platformスコープがある場合、すべてのGCPサービスに完全アクセスできます。ただし、トークンにhttps://www.googleapis.com/auth/cloud-platform.read-onlyスコープがある場合、IAMでより多くの権限を持っていても、すべてのGCPサービスに読み取り専用アクセス**しかありません。

これらの権限をバイパスする直接的な方法はありませんが、侵害されたホストで新しい資格情報を検索したり、制限なしでOAuthトークンを生成するサービスキーを見つけたり制限の少ない別のVMに移動することを試すことができます。

アクセススコープが使用されると、計算インスタンス(VM)用に生成されるOAuthトークンにはスコープの制限が含まれます。ただし、この制限をバイパスして、侵害されたアカウントが持つ権限を悪用することができるかもしれません。

この制限をバイパスする最良の方法は、侵害されたホストで新しい資格情報を見つけるか、制限なしでOAuthトークンを生成するためのサービスキーを見つけるか、制限の少ないSAを持つ別のVMを侵害することです。

次のコマンドで生成されたSAのキーを使用してSAを確認します:

for i in $(gcloud iam service-accounts list --format="table[no-heading](email)"); do
echo "Looking for keys for $i:"
gcloud iam service-accounts keys list --iam-account $i
done

特権昇格テクニック

AWSで特権を昇格させる方法は、他のサービスアカウント/ユーザー/グループの特権にアクセスできるだけの権限を持つことです。組織全体に管理者アクセス権を持つまで、特権昇格を繰り返します。

GCPには、エンティティに付与できる数百(もしくは数千)の権限があります。この書籍では、特権昇格に悪用できる私が知っているすべての権限を見つけることができますが、ここに記載されていないパスをご存知の場合は、共有してください

このセクションのサブページはサービスごとに並べられています。各サービスで特権昇格の異なる方法を見つけることができます。

GCPを悪用してローカルで特権昇格する

GCP内のマシンにいる場合、権限を悪用してローカルで特権昇格することができるかもしれません:

pageGCP - local privilege escalation ssh pivoting

参考文献

htARTE(HackTricks AWS Red Team Expert)で AWSハッキングをゼロからヒーローまで学ぶ

HackTricksをサポートする他の方法:

最終更新