GCP - Enum Pub/Sub

Reading time: 5 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Pub/Sub

Google Cloud Pub/Sub é descrito como um serviço que facilita a troca de mensagens entre aplicações independentes. Os componentes principais incluem tópicos, aos quais as aplicações podem se inscrever. Aplicações inscritas têm a capacidade de enviar e receber mensagens. Cada mensagem compreende o conteúdo real junto com os metadados associados.

O tópico é a fila onde as mensagens serão enviadas, enquanto as inscrições são os objetos que os usuários usarão para acessar mensagens nos tópicos. Pode haver mais de 1 inscrição por tópico e existem 4 tipos de inscrições:

  • Pull: O(s) usuário(s) desta inscrição precisam puxar as mensagens.
  • Push: Um endpoint de URL é indicado e as mensagens serão enviadas imediatamente para ele.
  • Tabela Big Query: Como push, mas configurando as mensagens dentro de uma tabela Big Query.
  • Cloud Storage: Entregar mensagens diretamente a um bucket existente.

Por padrão, uma inscrição expira após 31 dias, embora possa ser configurada para nunca expirar.

Por padrão, uma mensagem é retida por 7 dias, mas esse tempo pode ser aumentado para até 31 dias. Além disso, se não for ACKed em 10s, ela volta para a fila. Também pode ser configurado que mensagens ACKed devam continuar a ser armazenadas.

Um tópico é por padrão criptografado usando uma chave de criptografia gerenciada pelo Google. Mas uma CMEK (Chave de Criptografia Gerenciada pelo Cliente) do KMS também pode ser selecionada.

Dead letter: Inscrições podem configurar um número máximo de tentativas de entrega. Quando uma mensagem não pode ser entregue, ela é república para o tópico de dead letter especificado.

Snapshots & Schemas

Um snapshot é um recurso que captura o estado de uma inscrição em um ponto específico no tempo. É essencialmente um backup consistente das mensagens não reconhecidas em uma inscrição. Ao criar um snapshot, você preserva o estado de reconhecimento de mensagens da inscrição, permitindo que você retome o consumo de mensagens a partir do ponto em que o snapshot foi tirado, mesmo após as mensagens originais terem sido de outra forma excluídas.
Se você tiver muita sorte, um snapshot pode conter informações sensíveis antigas de quando o snapshot foi tirado.

Ao criar um tópico, você pode indicar que as mensagens do tópico devem seguir um esquema.

Enumeração

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

No entanto, você pode ter melhores resultados solicitando um conjunto maior de dados, incluindo mensagens mais antigas. Isso tem alguns pré-requisitos e pode impactar aplicações, então certifique-se de que você realmente sabe o que está fazendo.

Escalação de Privilégios & Pós Exploração

GCP - Pub/Sub Post Exploitation

Pub/Sub Lite

Pub/Sub Lite é um serviço de mensagens com armazenamento zonal. Pub/Sub Lite custa uma fração do Pub/Sub e é destinado a streaming de alto volume (até 10 milhões de mensagens por segundo) pipelines e sistemas orientados a eventos onde o baixo custo é a principal consideração.

No PubSub Lite existem tópicos e assinaturas, não existem snapshots e esquemas e existem:

  • Reservas: Reservas do Pub/Sub Lite é um recurso que permite aos usuários reservar capacidade em uma região específica para seus fluxos de mensagens.
  • Operações: Refere-se às ações e tarefas envolvidas na gestão e administração do Pub/Sub Lite.

Enumeração

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

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks