GCP - Pub/Sub Enum

Suporte ao 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 armazenando as mensagens dentro de uma tabela Big Query.

  • Cloud Storage: Entregar mensagens diretamente em 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 para que mensagens ACKed continuem 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: As 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 deletadas. 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

# 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) e sistemas orientados a eventos onde o baixo custo é a principal consideração.

No Pub/Sub Lite existem tópicos e assinaturas, não existem snapshots e esquemas e há:

  • 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

# 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>
Suporte ao HackTricks

Last updated