GCP - Pub/Sub Enum

Reading time: 5 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Pub/Sub

Google Cloud Pub/Sub se opisuje kao usluga koja olakšava razmenu poruka između nezavisnih aplikacija. Osnovni sastavni delovi uključuju teme, na koje se aplikacije mogu pretplatiti. Aplikacije koje su se pretplatile imaju mogućnost da šalju i primaju poruke. Svaka poruka se sastoji od stvarnog sadržaja zajedno sa povezanim metapodacima.

Tema je red u koji će poruke biti poslate, dok su pretplate objekti koje će korisnici koristiti za pristup porukama u temama. Može postojati više od 1 pretplate po temi i postoje 4 tipa pretplata:

  • Pull: Korisnik(ci) ove pretplate treba da povuku poruke.
  • Push: URL krajnja tačka je naznačena i poruke će biti odmah poslate na nju.
  • Big query table: Kao push, ali postavlja poruke unutar Big query tabele.
  • Cloud Storage: Isporučuje poruke direktno u postojeći bucket.

Po defaultu, pretplata ističe nakon 31 dan, iako se može postaviti da nikada ne istekne.

Po defaultu, poruka se čuva 7 dana, ali se ovo vreme može povećati do 31 dan. Takođe, ako nije ACKovana u 10s, vraća se u red. Takođe se može postaviti da ACKovane poruke treba da se nastave čuvati.

Tema je po defaultu enkriptovana koristeći Google upravljani enkripcioni ključ. Ali se takođe može odabrati CMEK (Ključ enkripcije koji upravlja korisnik) iz KMS-a.

Dead letter: Pretplate mogu konfigurisati maksimalan broj pokušaja isporuke. Kada poruka ne može biti isporučena, ona se ponovo objavljuje na određenu dead letter temu.

Snapshots & Schemas

Snapshot je funkcija koja hvata stanje pretplate u određenom trenutku. To je suštinski dosledna rezerva neacknowledged poruka u pretplati. Kreiranjem snapshot-a, čuvate stanje potvrde poruka pretplate, omogućavajući vam da nastavite sa konzumacijom poruka od tačke na kojoj je snapshot napravljen, čak i nakon što bi originalne poruke inače bile obrisane.
Ako imate sreće, snapshot bi mogao sadržati stare osetljive informacije iz vremena kada je snapshot napravljen.

Kada kreirate temu, možete naznačiti da poruke teme moraju pratiti šemu.

Enumeration

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>

Međutim, možete imati bolje rezultate tražeći veći skup podataka, uključujući starije poruke. Ovo ima neke preduslove i može uticati na aplikacije, pa se uverite da zaista znate šta radite.

Eskalacija privilegija i post eksploatacija

GCP - Pub/Sub Post Exploitation

Pub/Sub Lite

Pub/Sub Lite je servis za razmenu poruka sa zonalnim skladištem. Pub/Sub Lite košta deo od Pub/Sub i namenjen je za streaming velike zapremine (do 10 miliona poruka u sekundi) i sisteme zasnovane na događajima gde je niska cena primarna briga.

U PubSub Lite ima tema i pretplata, nema snapshot-a i shema i postoje:

  • Rezervacije: Pub/Sub Lite Rezervacije je funkcija koja omogućava korisnicima da rezervišu kapacitet u određenoj regiji za svoje tokove poruka.
  • Operacije: Odnosi se na akcije i zadatke uključene u upravljanje i administraciju Pub/Sub Lite.

Enumeracija

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

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks