GCP - Pub/Sub Enum

Support HackTricks

Pub/Sub

Google Cloud Pub/Sub wird als ein Dienst beschrieben, der den Nachrichtenaustausch zwischen unabhängigen Anwendungen erleichtert. Die Kernkomponenten umfassen Themen, auf die Anwendungen abonnieren können. Abonnierte Anwendungen haben die Fähigkeit, Nachrichten zu senden und zu empfangen. Jede Nachricht besteht aus dem tatsächlichen Inhalt sowie zugehörigen Metadaten.

Das Thema ist die Warteschlange, in die Nachrichten gesendet werden, während die Abonnements die Objekte sind, die Benutzer verwenden, um Nachrichten in den Themen abzurufen. Es kann mehr als 1 Abonnement pro Thema geben, und es gibt 4 Arten von Abonnements:

  • Pull: Die Benutzer dieses Abonnements müssen nach Nachrichten abrufen.

  • Push: Ein URL-Endpunkt wird angegeben, und Nachrichten werden sofort dorthin gesendet.

  • Big Query-Tabelle: Wie Push, aber die Nachrichten werden in einer Big Query-Tabelle gespeichert.

  • Cloud Storage: Nachrichten werden direkt an einen vorhandenen Bucket geliefert.

Standardmäßig läuft ein Abonnement nach 31 Tagen ab, obwohl es so eingestellt werden kann, dass es niemals abläuft.

Standardmäßig wird eine Nachricht 7 Tage lang aufbewahrt, aber diese Zeit kann auf bis zu 31 Tage verlängert werden. Außerdem, wenn sie nicht innerhalb von 10 Sekunden ACKed wird, geht sie zurück in die Warteschlange. Es kann auch festgelegt werden, dass ACKed Nachrichten weiterhin gespeichert werden sollen.

Ein Thema ist standardmäßig mit einem von Google verwalteten Verschlüsselungsschlüssel verschlüsselt. Es kann jedoch auch ein CMEK (Customer Managed Encryption Key) von KMS ausgewählt werden.

Dead Letter: Abonnements können eine maximale Anzahl von Zustellversuchen konfigurieren. Wenn eine Nachricht nicht zugestellt werden kann, wird sie wieder an das angegebene Dead Letter-Thema veröffentlicht.

Snapshots & Schemas

Ein Snapshot ist eine Funktion, die den Zustand eines Abonnements zu einem bestimmten Zeitpunkt erfasst. Es ist im Wesentlichen ein konsistentes Backup der nicht anerkannten Nachrichten in einem Abonnement. Durch das Erstellen eines Snapshots bewahren Sie den Bestätigungszustand der Nachrichten des Abonnements, sodass Sie den Nachrichtenverbrauch von dem Punkt aus fortsetzen können, an dem der Snapshot erstellt wurde, selbst nachdem die ursprünglichen Nachrichten andernfalls gelöscht worden wären. Wenn Sie sehr viel Glück haben, könnte ein Snapshot alte sensible Informationen enthalten, die zum Zeitpunkt der Erstellung des Snapshots vorhanden waren.

Beim Erstellen eines Themas können Sie angeben, dass die Themennachrichten einem Schema folgen müssen.

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>

Allerdings können Sie bessere Ergebnisse erzielen, wenn Sie nach einem größeren Datensatz fragen, einschließlich älterer Nachrichten. Dies hat einige Voraussetzungen und könnte Anwendungen beeinträchtigen, also stellen Sie sicher, dass Sie wirklich wissen, was Sie tun.

Privilegieneskalation & Nachausnutzung

GCP - Pub/Sub Post Exploitation

Pub/Sub Lite

Pub/Sub Lite ist ein Messaging-Dienst mit zonalem Speicher. Pub/Sub Lite kostet einen Bruchteil von Pub/Sub und ist für Streaming mit hohem Volumen (bis zu 10 Millionen Nachrichten pro Sekunde) und ereignisgesteuerte Systeme gedacht, bei denen die Kosten das Hauptaugenmerk sind.

In PubSub Lite gibt es Themen und Abonnements, es gibt keine Snapshots und Schemas und es gibt:

  • Reservierungen: Pub/Sub Lite Reservierungen ist eine Funktion, die es Benutzern ermöglicht, Kapazität in einer bestimmten Region für ihre Nachrichtenströme zu reservieren.

  • Operationen: Bezieht sich auf die Aktionen und Aufgaben, die mit der Verwaltung und Administration von Pub/Sub Lite verbunden sind.

Enumeration

# 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>
Unterstützen Sie HackTricks

Last updated