AWS - API Gateway Post Exploitation
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Για περισσότερες πληροφορίες ελέγξτε:
AWS - API Gateway EnumΜπορείτε να δημιουργήσετε ένα endpoint στο https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint με την υπηρεσία com.amazonaws.us-east-1.execute-api
, να εκθέσετε το endpoint σε ένα δίκτυο όπου έχετε πρόσβαση (πιθανώς μέσω μιας μηχανής EC2) και να αναθέσετε μια ομάδα ασφαλείας που επιτρέπει όλες τις συνδέσεις.
Στη συνέχεια, από τη μηχανή EC2 θα μπορείτε να αποκτήσετε πρόσβαση στο endpoint και επομένως να καλέσετε το gateway API που δεν είχε εκτεθεί προηγουμένως.
Αυτή η τεχνική βρέθηκε σε αυτή την αναφορά CTF.
Όπως αναφέρεται στην τεκμηρίωση AWS στην ενότητα PassthroughBehavior
, από προεπιλογή, η τιμή WHEN_NO_MATCH
, κατά τον έλεγχο της κεφαλίδας Content-Type του αιτήματος, θα περάσει το αίτημα στο backend χωρίς μετασχηματισμό.
Επομένως, στο CTF το API Gateway είχε ένα πρότυπο ολοκλήρωσης που εμπόδιζε τη σημαία να εξαχθεί σε μια απάντηση όταν αποστέλλεται ένα αίτημα με Content-Type: application/json
:
Ωστόσο, η αποστολή ενός αιτήματος με Content-type: text/json
θα εμπόδιζε αυτό το φίλτρο.
Τέλος, καθώς το API Gateway επέτρεπε μόνο Get
και Options
, ήταν δυνατό να σταλεί ένα αυθαίρετο ερώτημα dynamoDB χωρίς κανέναν περιορισμό στέλνοντας ένα POST αίτημα με το ερώτημα στο σώμα και χρησιμοποιώντας την κεφαλίδα X-HTTP-Method-Override: GET
:
Στην ενότητα Enumeration μπορείτε να δείτε πώς να αποκτήσετε το σχέδιο χρήσης των κλειδιών. Εάν έχετε το κλειδί και είναι περιορισμένο σε X χρήσεις ανά μήνα, μπορείτε απλώς να το χρησιμοποιήσετε και να προκαλέσετε DoS.
Το API Key πρέπει απλώς να συμπεριληφθεί μέσα σε ένα HTTP header που ονομάζεται x-api-key
.
apigateway:UpdateGatewayResponse
, apigateway:CreateDeployment
Ένας επιτιθέμενος με τις άδειες apigateway:UpdateGatewayResponse
και apigateway:CreateDeployment
μπορεί να τροποποιήσει μια υπάρχουσα Gateway Response για να συμπεριλάβει προσαρμοσμένα headers ή πρότυπα απάντησης που διαρρέουν ευαίσθητες πληροφορίες ή εκτελούν κακόβουλα σενάρια.
Πιθανές Επιπτώσεις: Διαρροή ευαίσθητων πληροφοριών, εκτέλεση κακόβουλων σεναρίων ή μη εξουσιοδοτημένη πρόσβαση σε πόρους API.
Απαιτείται δοκιμή
apigateway:UpdateStage
, apigateway:CreateDeployment
Ένας επιτιθέμενος με τις άδειες apigateway:UpdateStage
και apigateway:CreateDeployment
μπορεί να τροποποιήσει μια υπάρχουσα σκηνή API Gateway για να ανακατευθύνει την κίνηση σε μια διαφορετική σκηνή ή να αλλάξει τις ρυθμίσεις caching για να αποκτήσει μη εξουσιοδοτημένη πρόσβαση σε αποθηκευμένα δεδομένα.
Πιθανές Επιπτώσεις: Μη εξουσιοδοτημένη πρόσβαση σε αποθηκευμένα δεδομένα, διακοπή ή παρεμβολή στην κυκλοφορία API.
Απαιτείται δοκιμή
apigateway:PutMethodResponse
, apigateway:CreateDeployment
Ένας επιτιθέμενος με τις άδειες apigateway:PutMethodResponse
και apigateway:CreateDeployment
μπορεί να τροποποιήσει την απάντηση μεθόδου μιας υπάρχουσας μεθόδου API Gateway REST API για να συμπεριλάβει προσαρμοσμένα headers ή πρότυπα απάντησης που διαρρέουν ευαίσθητες πληροφορίες ή εκτελούν κακόβουλα σενάρια.
Πιθανές Επιπτώσεις: Διαρροή ευαίσθητων πληροφοριών, εκτέλεση κακόβουλων σεναρίων ή μη εξουσιοδοτημένη πρόσβαση σε πόρους API.
Απαιτείται δοκιμή
apigateway:UpdateRestApi
, apigateway:CreateDeployment
Ένας επιτιθέμενος με τις άδειες apigateway:UpdateRestApi
και apigateway:CreateDeployment
μπορεί να τροποποιήσει τις ρυθμίσεις του API Gateway REST API για να απενεργοποιήσει την καταγραφή ή να αλλάξει την ελάχιστη έκδοση TLS, ενδεχομένως αποδυναμώνοντας την ασφάλεια του API.
Πιθανές Επιπτώσεις: Αδυναμία της ασφάλειας του API, επιτρέποντας ενδεχομένως μη εξουσιοδοτημένη πρόσβαση ή έκθεση ευαίσθητων πληροφοριών.
Χρειάζεται δοκιμή
apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
, apigateway:CreateUsagePlanKey
Ένας επιτιθέμενος με δικαιώματα apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
, και apigateway:CreateUsagePlanKey
μπορεί να δημιουργήσει νέα API keys, να τα συσχετίσει με σχέδια χρήσης και στη συνέχεια να χρησιμοποιήσει αυτά τα κλειδιά για μη εξουσιοδοτημένη πρόσβαση σε APIs.
Πιθανές Επιπτώσεις: Μη εξουσιοδοτημένη πρόσβαση σε πόρους API, παράκαμψη ελέγχων ασφαλείας.
Απαιτείται δοκιμή
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)