AWS - API Gateway Unauthenticated Enum

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Red Team του HackTricks στο AWS)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Παράκαμψη Κλήσης API

Σύμφωνα με την ομιλία Attack Vectors for APIs Using AWS API Gateway Lambda Authorizers - Alexandre & Leonardo, οι Lambda Authorizers μπορούν να ρυθμιστούν χρησιμοποιώντας τη σύνταξη IAM για να δώσουν δικαιώματα για την κλήση των σημείων άκρης του API. Αυτό προέρχεται από τα έγγραφα:

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Permission",
"Action": [
"execute-api:Execution-operation"
],
"Resource": [
"arn:aws:execute-api:region:account-id:api-id/stage/METHOD_HTTP_VERB/Resource-path"
]
}
]
}

Το πρόβλημα με αυτόν τον τρόπο να δίνονται δικαιώματα για την εκκίνηση των σημείων πρόσβασης είναι ότι το "*" υπονοεί "οτιδήποτε" και δεν υποστηρίζεται πλέον σύνταξη regex.

Μερικά παραδείγματα:

  • Ένας κανόνας όπως arn:aws:execute-apis:sa-east-1:accid:api-id/prod/*/dashboard/* για να δώσει σε κάθε χρήστη πρόσβαση στο /dashboard/user/{username} θα τους δώσει πρόσβαση και σε άλλα μονοπάτια όπως /admin/dashboard/createAdmin για παράδειγμα.

Σημειώστε ότι το "*" δεν σταματάει να επεκτείνεται με κάθε κάθετο, επομένως, αν χρησιμοποιήσετε το "*" για παράδειγμα στο api-id, μπορεί επίσης να υποδεικνύει "οποιοδήποτε στάδιο" ή "οποιαδήποτε μέθοδο" όσο η τελική regex παραμένει έγκυρη. Έτσι, arn:aws:execute-apis:sa-east-1:accid:*/prod/GET/dashboard/* Μπορεί να επικυρώσει μια αίτηση post στο στάδιο δοκιμής στο μονοπάτι /prod/GET/dashboard/admin για παράδειγμα.

Πρέπει πάντα να έχετε σαφώς τι θέλετε να επιτρέψετε στην πρόσβαση και στη συνέχεια να ελέγξετε αν είναι δυνατά και άλλα σενάρια με τα δικαιώματα που έχουν χορηγηθεί.

Για περισσότερες πληροφορίες, εκτός από τα έγγραφα, μπορείτε να βρείτε κώδικα για την υλοποίηση των εξουσιοδοτητών στο επίσημο αποθετήριο aws στο github.

Έγχυση Πολιτικής IAM

Στην ίδια ομιλία αποκαλύπτεται το γεγονός ότι αν ο κώδικας χρησιμοποιεί είσοδο χρήστη για να δημιουργήσει τις πολιτικές IAM, μπορούν να συμπεριληφθούν χαρακτήρες μπαλαντέρ (και άλλοι όπως "." ή συγκεκριμένες συμβολοσειρές) με σκοπό την αποφυγή περιορισμών.

Δημόσιος Πρότυπος URL

https://{random_id}.execute-api.{region}.amazonaws.com/{user_provided}

Λήψη του Αναγνωριστικού Λογαριασμού από δημόσιο URL API Gateway

Όπως και με τα S3 buckets, τα Data Exchange και τα Lambda URLs gateways, είναι δυνατόν να βρεθεί το αναγνωριστικό λογαριασμού ενός λογαριασμού καταχρώντας το aws:ResourceAccount Policy Condition Key από ένα δημόσιο URL API Gateway. Αυτό επιτυγχάνεται βρίσκοντας το αναγνωριστικό λογαριασμού χαρακτήρα-χαρακτήρα καταχρώντας wildcards στο τμήμα aws:ResourceAccount της πολιτικής. Αυτή η τεχνική επίσης επιτρέπει την ανάκτηση τιμών ετικετών εάν γνωρίζετε το κλειδί της ετικέτας (υπάρχουν μερικές προεπιλεγμένες ενδιαφέρουσες).

Μπορείτε να βρείτε περισσότερες πληροφορίες στην αρχική έρευνα και στο εργαλείο conditional-love για την αυτοματοποίηση αυτής της εκμετάλλευσης.

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated