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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
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
# 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
# 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
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.