GCP - Pub/Sub Enum

Apoie o HackTricks

Pub/Sub

Google Cloud Pub/Sub é descrito como um serviço que facilita a troca de mensagens entre aplicativos independentes. Os componentes principais incluem tópicos, aos quais os aplicativos podem se inscrever. Os aplicativos inscritos têm a capacidade de enviar e receber mensagens. Cada mensagem é composta pelo conteúdo real juntamente com metadados associados.

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

  • Pull: O(s) usuário(s) desta assinatura precisa(m) buscar mensagens.

  • Push: Um endpoint de URL é indicado e as mensagens serão enviadas imediatamente para ele.

  • Tabela BigQuery: Como push, mas configurando as mensagens dentro de uma tabela BigQuery.

  • Armazenamento em Nuvem: Entrega mensagens diretamente para um bucket existente.

Por padrão, uma assinatura 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 sendo armazenadas.

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

Caixa de Correio: As assinaturas podem configurar um número máximo de tentativas de entrega. Quando uma mensagem não pode ser entregue, ela é republicada no tópico de caixa de correio especificado.

Snapshots e Esquemas

Um snapshot é um recurso que captura o estado de uma assinatura em um momento específico. É essencialmente um backup consistente das mensagens não reconhecidas em uma assinatura. Ao criar um snapshot, você preserva o estado de reconhecimento de mensagens da assinatura, permitindo retomar o consumo de mensagens a partir do ponto em que o snapshot foi tirado, mesmo depois que as mensagens originais teriam sido excluídas de outra forma. Se tiver muita sorte, um snapshot pode conter informações sensíveis antigas do momento em que 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 obter melhores resultados pedindo um conjunto maior de dados, incluindo mensagens mais antigas. Isso tem alguns pré-requisitos e pode afetar as aplicações, então certifique-se de saber exatamente o que está fazendo.

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

GCP - Pub/Sub Post Exploitation

Pub/Sub Lite

Pub/Sub Lite é um serviço de mensagens com armazenamento zonal. O Pub/Sub Lite custa uma fração do Pub/Sub e é destinado a transmissão de alto volume (até 10 milhões de mensagens por segundo) em 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 instantâneos e esquemas, e existem:

  • Reservas: As 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 o HackTricks

Last updated