GCP - Pub/Sub Enum

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

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

Pub/Sub

Google Cloud Pub/Subは、独立したアプリケーションがメッセージを行き来させるサービスです。基本的に、アプリケーションがメッセージの送受信を行うために購読するトピックがあります(メッセージは内容といくつかのメタデータで構成されます)。

トピックはメッセージが送信されるキューであり、サブスクリプションはユーザーがトピック内のメッセージにアクセスするために使用するオブジェクトです。1つのトピックに対して複数のサブスクリプションが存在することができ、サブスクリプションには4種類があります:

  • Pull: このサブスクリプションのユーザーはメッセージをプルする必要があります。

  • Push: URLエンドポイントが指定され、メッセージは直ちにそこに送信されます。

  • Big query table: Pushと同様ですが、メッセージをBig queryテーブル内に設定します。

  • Cloud Storage: メッセージを既存のバケットに直接配信します。

デフォルトでは、サブスクリプションは31日後に期限切れになりますが、期限切れにならないように設定することもできます。

デフォルトでは、メッセージは7日間保持されますが、この時間は最大31日まで延長することができます。また、10秒以内にACKedされない場合はキューに戻ります。ACKedされたメッセージが引き続き保存されるように設定することもできます。

トピックはデフォルトでGoogle管理の暗号化キーを使用して暗号化されます。しかし、KMSからのCMEK(Customer Managed Encryption Key)も選択できます。

Dead letter: サブスクリプションは最大配信試行回数を設定することができます。メッセージが配信できない場合は、指定されたデッドレタートピックに再公開されます

スナップショット & スキーマ

スナップショットは、特定の時点でのサブスクリプションの状態をキャプチャする機能です。これは基本的に、サブスクリプション内の未確認メッセージの一貫したバックアップです。スナップショットを作成することで、サブスクリプションのメッセージ確認状態を保存し、元のメッセージが削除された後でも、スナップショットが取られた時点からメッセージの消費を再開することができます。 非常に運が良ければ、スナップショットにはスナップショットが取られた時点の古い機密情報が含まれている可能性があります。

トピックを作成する際に、トピックメッセージがスキーマに従う必要があると指示することができます。

列挙

# Get a list of topics in the project
gcloud pubsub topics list
gcloud pubsub topics describe <topic>
gcloud pubsub topics list-subscriptions <topic>
gcloud pubsub topics get-iam-policy <topic>

# Get a list of subscriptions across all topics
gcloud pubsub subscriptions list
gcloud pubsub subscriptions describe <subscription>
gcloud pubsub subscriptions get-iam-policy <subscription>

# Get list of schemas
gcloud pubsub schemas list
gcloud pubsub schemas describe <schema>
gcloud pubsub schemas list-revisions <schema>

# Get list of snapshots
gcloud pubsub snapshots list
gcloud pubsub snapshots describe <snapshot>

ただし、古いメッセージを含むより大きなデータセットを要求することで、より良い結果が得られる場合があります。これにはいくつかの前提条件があり、アプリケーションに影響を与える可能性があるので、実際に何をしているのかを確実に理解してください。

権限昇格 & 攻撃後の活動

pageGCP - Pub/Sub Post Exploitation

Pub/Sub Lite

Pub/Sub Liteゾーンストレージを持つメッセージングサービスです。Pub/Sub LiteはPub/Subの一部のコストであり、低コストが主要な考慮事項である高ボリュームストリーミング(秒間最大1000万メッセージ)パイプラインやイベント駆動型システムに適しています。

PubSub Liteにはトピックサブスクリプションがありますが、スナップショットスキーマはありません。また、以下があります:

  • リザベーション: Pub/Sub Liteリザベーションは、ユーザーが特定のリージョンでメッセージストリームの容量を予約する機能です。

  • オペレーション: Pub/Sub Liteの管理と運用に関わるアクションとタスクを指します。

列挙

# lite-topics
gcloud pubsub lite-topics list
gcloud pubsub lite-topics describe <topic>
gcloud pubsub lite-topics list-subscriptions <topic>

# lite-subscriptions
gcloud pubsub lite-subscriptions list
gcloud pubsub lite-subscriptions describe <subscription>

# lite-reservations
gcloud pubsub lite-reservations list
gcloud pubsub lite-reservations describe <topic>
gcloud pubsub lite-reservations list-topics <topic>

# lite-operations
gcloud pubsub lite-operations list
gcloud pubsub lite-operations describe <topic>
htARTE (HackTricks AWS Red Team Expert)でゼロからヒーローまでのAWSハッキングを学ぶ

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

最終更新