GCP - Pub/Sub Enum

Support HackTricks

Pub/Sub

Google Cloud Pub/Sub è descritto come un servizio che facilita lo scambio di messaggi tra applicazioni indipendenti. I componenti principali includono argomenti, ai quali le applicazioni possono iscriversi. Le applicazioni iscritte hanno la capacità di inviare e ricevere messaggi. Ogni messaggio comprende il contenuto effettivo insieme ai metadati associati.

L'argomento è la coda dove i messaggi verranno inviati, mentre le iscrizioni sono gli oggetti che gli utenti utilizzeranno per accedere ai messaggi negli argomenti. Possono esserci più di 1 iscrizione per argomento e ci sono 4 tipi di iscrizioni:

  • Pull: L'utente(i) di questa iscrizione deve estrarre i messaggi.

  • Push: Viene indicato un endpoint URL e i messaggi verranno inviati immediatamente ad esso.

  • Big query table: Come push ma impostando i messaggi all'interno di una tabella Big query.

  • Cloud Storage: Consegnare messaggi direttamente a un bucket esistente.

Per default, un'iscrizione scade dopo 31 giorni, anche se può essere impostata per non scadere mai.

Per default, un messaggio è conservato per 7 giorni, ma questo tempo può essere aumentato fino a 31 giorni. Inoltre, se non viene ACKato in 10s, torna nella coda. Può anche essere impostato che i messaggi ACKati continuino a essere memorizzati.

Un argomento è per default crittografato utilizzando una chiave di crittografia gestita da Google. Ma può anche essere selezionata una CMEK (Customer Managed Encryption Key) da KMS.

Dead letter: Le iscrizioni possono configurare un numero massimo di tentativi di consegna. Quando un messaggio non può essere consegnato, viene ripubblicato all'argomento dead letter specificato.

Snapshots & Schemas

Uno snapshot è una funzionalità che cattura lo stato di un'iscrizione in un momento specifico. È essenzialmente un backup consistente dei messaggi non riconosciuti in un'iscrizione. Creando uno snapshot, preservi lo stato di riconoscimento dei messaggi dell'iscrizione, consentendoti di riprendere il consumo dei messaggi dal punto in cui è stato preso lo snapshot, anche dopo che i messaggi originali sarebbero stati altrimenti eliminati. Se sei molto fortunato, uno snapshot potrebbe contenere vecchie informazioni sensibili da quando è stato preso lo snapshot.

Quando crei un argomento, puoi indicare che i messaggi dell'argomento devono seguire uno schema.

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>

Tuttavia, potresti avere risultati migliori richiedendo un set di dati più ampio, inclusi messaggi più vecchi. Questo ha alcune condizioni preliminari e potrebbe influenzare le applicazioni, quindi assicurati di sapere davvero cosa stai facendo.

Escalation dei privilegi e post sfruttamento

GCP - Pub/Sub Post Exploitation

Pub/Sub Lite

Pub/Sub Lite è un servizio di messaggistica con memoria zonale. Pub/Sub Lite costa una frazione di Pub/Sub ed è destinato a pipeline di streaming ad alto volume (fino a 10 milioni di messaggi al secondo) e sistemi basati su eventi dove il costo ridotto è la considerazione principale.

In PubSub Lite ci sono argomenti e sottoscrizioni, non ci sono snapshot e schemi e ci sono:

  • Riservazioni: Le riservazioni di Pub/Sub Lite sono una funzionalità che consente agli utenti di riservare capacità in una regione specifica per i loro flussi di messaggi.

  • Operazioni: Si riferisce alle azioni e ai compiti coinvolti nella gestione e amministrazione di Pub/Sub Lite.

Enumerazione

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

Last updated