GCP - Pub/Sub Enum

Support HackTricks

Pub/Sub

Google Cloud Pub/Sub описується як сервіс, що полегшує обмін повідомленнями між незалежними додатками. Основні компоненти включають теми, на які додатки можуть підписуватися. Підписані додатки мають можливість надсилати та отримувати повідомлення. Кожне повідомлення складається з фактичного вмісту разом з супутніми метаданими.

Тема - це черга, куди будуть надсилатися повідомлення, тоді як підписки - це об'єкти, які користувачі будуть використовувати для доступу до повідомлень у темах. Може бути більше ніж 1 підписка на тему, і існує 4 типи підписок:

  • Pull: Користувач(і) цієї підписки повинні витягувати повідомлення.

  • Push: Вказується URL-адреса, і повідомлення будуть надсилатися безпосередньо на неї.

  • Big query table: Як push, але з розміщенням повідомлень у таблиці Big query.

  • Cloud Storage: Доставляти повідомлення безпосередньо до існуючого бакету.

За замовчуванням підписка закінчує термін дії через 31 день, хоча її можна налаштувати так, щоб вона ніколи не закінчувалася.

За замовчуванням, повідомлення зберігається протягом 7 днів, але цей час можна збільшити до 31 дня. Також, якщо його не ACKed за 10 секунд, воно повертається до черги. Також можна налаштувати, щоб ACKed повідомлення продовжували зберігатися.

Тема за замовчуванням шифрується за допомогою ключа шифрування, керованого Google. Але також можна вибрати CMEK (Ключ шифрування, керований клієнтом) з KMS.

Dead letter: Підписки можуть налаштувати максимальну кількість спроб доставки. Коли повідомлення не може бути доставлено, воно перепублікується на вказану тему мертвих листів.

Snapshots & Schemas

Снапшот - це функція, яка фіксує стан підписки в конкретний момент часу. Це, по суті, послідовна резервна копія не підтверджених повідомлень у підписці. Створюючи снапшот, ви зберігаєте стан підтвердження повідомлень підписки, що дозволяє вам відновити споживання повідомлень з моменту, коли був зроблений снапшот, навіть після того, як оригінальні повідомлення інакше були б видалені. Якщо вам дуже пощастить, снапшот може містити стару чутливу інформацію з моменту, коли був зроблений снапшот.

При створенні теми ви можете вказати, що повідомлення теми повинні відповідати схемі.

Enumeration

# 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>

Однак, ви можете отримати кращі результати запитуючи більший обсяг даних, включаючи старі повідомлення. Це має деякі передумови і може вплинути на програми, тому переконайтеся, що ви дійсно знаєте, що робите.

Підвищення привілеїв та постексплуатація

GCP - Pub/Sub Post Exploitation

Pub/Sub Lite

Pub/Sub Lite - це сервіс обміну повідомленнями з зональним зберіганням. Pub/Sub Lite коштує частину вартості Pub/Sub і призначений для потокового оброблення з високим обсягом (до 10 мільйонів повідомлень на секунду) і систем, що реагують на події, де низька вартість є основним критерієм.

У 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>
Підтримайте HackTricks

Last updated