GCP - Pub/Sub Enum

Support HackTricks

Pub/Sub

Google Cloud Pub/Sub se describe como un servicio que facilita el intercambio de mensajes entre aplicaciones independientes. Los componentes principales incluyen temas, a los que las aplicaciones pueden suscribirse. Las aplicaciones suscritas tienen la capacidad de enviar y recibir mensajes. Cada mensaje comprende el contenido real junto con los metadatos asociados.

El tema es la cola donde se enviarán los mensajes, mientras que las suscripciones son los objetos que los usuarios utilizarán para acceder a los mensajes en los temas. Puede haber más de 1 suscripción por tema y hay 4 tipos de suscripciones:

  • Pull: El/los usuario(s) de esta suscripción necesitan buscar mensajes.

  • Push: Se indica un endpoint de URL y los mensajes se enviarán inmediatamente a él.

  • Big query table: Como push pero colocando los mensajes dentro de una tabla de Big query.

  • Cloud Storage: Entregar mensajes directamente a un bucket existente.

Por defecto, una suscripción expira después de 31 días, aunque se puede configurar para que nunca expire.

Por defecto, un mensaje es retenido durante 7 días, pero este tiempo puede ser aumentado hasta 31 días. Además, si no se ACKea en 10s, vuelve a la cola. También se puede configurar que los mensajes ACKeados continúen siendo almacenados.

Un tema está por defecto cifrado utilizando una clave de cifrado gestionada por Google. Pero también se puede seleccionar una CMEK (Clave de Cifrado Gestionada por el Cliente) de KMS.

Dead letter: Las suscripciones pueden configurar un número máximo de intentos de entrega. Cuando un mensaje no puede ser entregado, se república en el tema de carta muerta especificado.

Snapshots & Schemas

Un snapshot es una característica que captura el estado de una suscripción en un momento específico. Es esencialmente una copia de seguridad consistente de los mensajes no reconocidos en una suscripción. Al crear un snapshot, preservas el estado de reconocimiento de mensajes de la suscripción, lo que te permite reanudar el consumo de mensajes desde el punto en que se tomó el snapshot, incluso después de que los mensajes originales habrían sido eliminados de otro modo. Si tienes mucha suerte, un snapshot podría contener información sensible antigua de cuando se tomó el snapshot.

Al crear un tema, puedes indicar que los mensajes del tema deben seguir un esquema.

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>

Sin embargo, puede que obtengas mejores resultados solicitando un conjunto de datos más grande, incluyendo mensajes más antiguos. Esto tiene algunos requisitos previos y podría impactar aplicaciones, así que asegúrate de saber realmente lo que estás haciendo.

Escalamiento de Privilegios y Post Explotación

Pub/Sub Lite

Pub/Sub Lite es un servicio de mensajería con almacenamiento zonal. Pub/Sub Lite cuesta una fracción de Pub/Sub y está destinado a transmisiones de alto volumen (hasta 10 millones de mensajes por segundo) y sistemas impulsados por eventos donde el bajo costo es la consideración principal.

En PubSub Lite hay temas y suscripciones, no hay instantáneas ni esquemas y hay:

  • Reservas: Las Reservas de Pub/Sub Lite son una característica que permite a los usuarios reservar capacidad en una región específica para sus flujos de mensajes.

  • Operaciones: Se refiere a las acciones y tareas involucradas en la gestión y administración de Pub/Sub Lite.

Enumeración

# 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>
Apoya a HackTricks

Last updated