GCP - Pub/Sub Enum

Support HackTricks

Pub/Sub

Google Cloud Pub/Sub est décrit comme un service facilitant l'échange de messages entre des applications indépendantes. Les composants principaux incluent des sujets, auxquels les applications peuvent s'abonner. Les applications abonnées ont la capacité de envoyer et recevoir des messages. Chaque message comprend le contenu réel ainsi que les métadonnées associées.

Le sujet est la file d'attente où les messages vont être envoyés, tandis que les abonnements sont les objets que les utilisateurs vont utiliser pour accéder aux messages dans les sujets. Il peut y avoir plus d'1 abonnement par sujet et il existe 4 types d'abonnements :

  • Pull : L'utilisateur(s) de cet abonnement doit tirer les messages.

  • Push : Un point de terminaison URL est indiqué et les messages seront envoyés immédiatement à celui-ci.

  • Big query table : Comme push mais en plaçant les messages dans une table Big query.

  • Cloud Storage : Livrer des messages directement à un bucket existant.

Par défaut, un abonnement expire après 31 jours, bien qu'il puisse être configuré pour ne jamais expirer.

Par défaut, un message est conservé pendant 7 jours, mais ce délai peut être augmenté jusqu'à 31 jours. De plus, s'il n'est pas ACKé dans 10s, il retourne dans la file d'attente. Il peut également être configuré pour que les messages ACKés continuent d'être stockés.

Un sujet est par défaut chiffré à l'aide d'une clé de chiffrement gérée par Google. Mais une CMEK (Customer Managed Encryption Key) de KMS peut également être sélectionnée.

Dead letter : Les abonnements peuvent configurer un nombre maximum de tentatives de livraison. Lorsqu'un message ne peut pas être livré, il est republié dans le sujet de lettre morte spécifié.

Snapshots & Schemas

Un snapshot est une fonctionnalité qui capture l'état d'un abonnement à un moment précis. C'est essentiellement une sauvegarde cohérente des messages non reconnus dans un abonnement. En créant un snapshot, vous préservez l'état de reconnaissance des messages de l'abonnement, vous permettant de reprendre la consommation des messages à partir du point où le snapshot a été pris, même après que les messages originaux auraient autrement été supprimés. Si vous avez beaucoup de chance, un snapshot pourrait contenir des informations sensibles anciennes depuis que le snapshot a été pris.

Lors de la création d'un sujet, vous pouvez indiquer que les messages du sujet doivent suivre un schéma.

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>

Cependant, vous pourriez obtenir de meilleurs résultats en demandant un ensemble de données plus large, y compris des messages plus anciens. Cela a quelques prérequis et pourrait impacter les applications, alors assurez-vous de bien savoir ce que vous faites.

Escalade de privilèges & Post exploitation

Pub/Sub Lite

Pub/Sub Lite est un service de messagerie avec stockage zonal. Pub/Sub Lite coûte une fraction de Pub/Sub et est destiné aux pipelines de streaming à haut volume (jusqu'à 10 millions de messages par seconde) et aux systèmes pilotés par des événements où le coût bas est la considération principale.

Dans PubSub Lite, il y a des sujets et des abonnements, il n'y a pas de snapshots et schémas et il y a :

  • Réservations : Les réservations Pub/Sub Lite sont une fonctionnalité qui permet aux utilisateurs de réserver de la capacité dans une région spécifique pour leurs flux de messages.

  • Opérations : Fait référence aux actions et tâches impliquées dans la gestion et l'administration de Pub/Sub Lite.

Énumération

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

Last updated