AWS - API Gateway Post Exploitation

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

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

API Gateway

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

pageAWS - API Gateway Enum

Πρόσβαση σε μη εκτεθειμένες APIs

Μπορείτε να δημιουργήσετε ένα σημείο πρόσβασης στο https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint με την υπηρεσία com.amazonaws.us-east-1.execute-api, να εκθέσετε το σημείο πρόσβασης σε ένα δίκτυο όπου έχετε πρόσβαση (ενδεχομένως μέσω μιας μηχανής EC2) και να αναθέσετε ένα ομάδα ασφαλείας που επιτρέπει όλες τις συνδέσεις. Στη συνέχεια, από τη μηχανή EC2 θα μπορείτε να έχετε πρόσβαση στο σημείο πρόσβασης και συνεπώς να καλέσετε την πύλη API που δεν είχε εκτεθεί προηγουμένως.

Χρήση Σχεδίων DoS

Στην ενότητα Απαρίθμησης μπορείτε να δείτε πώς να αποκτήσετε το σχέδιο χρήσης των κλειδιών. Αν έχετε το κλειδί και είναι περιορισμένο σε X χρήσεις ανά μήνα, θα μπορούσατε απλά να το χρησιμοποιήσετε και να προκαλέσετε ένα DoS.

Το Κλειδί API χρειάζεται απλώς να συμπεριληφθεί μέσα σε ένα κεφαλίδα HTTP που ονομάζεται x-api-key.

apigateway:UpdateGatewayResponse, apigateway:CreateDeployment

Ένας επιτιθέμενος με τις άδειες apigateway:UpdateGatewayResponse και apigateway:CreateDeployment μπορεί να τροποποιήσει μια υπάρχουσα Απάντηση Πύλης για να περιλαμβάνει προσαρμοσμένους κεφαλίδες ή πρότυπα απάντησης που διαρρέουν ευαίσθητες πληροφορίες ή εκτελούν κακόβουλα scripts.

API_ID="your-api-id"
RESPONSE_TYPE="DEFAULT_4XX"

# Update the Gateway Response
aws apigateway update-gateway-response --rest-api-id $API_ID --response-type $RESPONSE_TYPE --patch-operations op=replace,path=/responseTemplates/application~1json,value="{\"message\":\"$context.error.message\", \"malicious_header\":\"malicious_value\"}"

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Πιθανή Επίπτωση: Διαρροή ευαίσθητων πληροφοριών, εκτέλεση κακόβουλων σεναρίων, ή μη εξουσιοδοτημένη πρόσβαση σε πόρους του API.

Απαιτείται δοκιμή

apigateway:UpdateStage, apigateway:CreateDeployment

Ένας επιτιθέμενος με τις άδειες apigateway:UpdateStage και apigateway:CreateDeployment μπορεί να τροποποιήσει ένα υπάρχον στάδιο του API Gateway για να ανακατευθύνει την κίνηση σε διαφορετικό στάδιο ή να αλλάξει τις ρυθμίσεις κρυφής μνήμης για να κερδίσει μη εξουσιοδοτημένη πρόσβαση σε κρυφές δεδομένα.

API_ID="your-api-id"
STAGE_NAME="Prod"

# Update the API Gateway stage
aws apigateway update-stage --rest-api-id $API_ID --stage-name $STAGE_NAME --patch-operations op=replace,path=/cacheClusterEnabled,value=true,op=replace,path=/cacheClusterSize,value="0.5"

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

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

Απαιτείται δοκιμή

apigateway:PutMethodResponse, apigateway:CreateDeployment

Ένας επιτιθέμενος με τις άδειες apigateway:PutMethodResponse και apigateway:CreateDeployment μπορεί να τροποποιήσει την απάντηση μεθόδου ενός υπάρχοντος μεθόδου API Gateway REST για να περιλαμβάνει προσαρμοσμένους κεφαλίδες ή πρότυπα απάντησης που διαρρέουν ευαίσθητες πληροφορίες ή εκτελούν κακόβουλα scripts.

API_ID="your-api-id"
RESOURCE_ID="your-resource-id"
HTTP_METHOD="GET"
STATUS_CODE="200"

# Update the method response
aws apigateway put-method-response --rest-api-id $API_ID --resource-id $RESOURCE_ID --http-method $HTTP_METHOD --status-code $STATUS_CODE --response-parameters "method.response.header.malicious_header=true"

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Πιθανή Επίπτωση: Διαρροή ευαίσθητων πληροφοριών, εκτέλεση κακόβουλων σεναρίων ή μη εξουσιοδοτημένη πρόσβαση σε πόρους του API.

Απαιτείται δοκιμή

apigateway:UpdateRestApi, apigateway:CreateDeployment

Ένας επιτιθέμενος με τις άδειες apigateway:UpdateRestApi και apigateway:CreateDeployment μπορεί να τροποποιήσει τις ρυθμίσεις του API Gateway REST API για να απενεργοποιήσει την καταγραφή καταγραφής ή να αλλάξει την ελάχιστη έκδοση TLS, με δυνητική απόδυναμωση της ασφάλειας του API.

API_ID="your-api-id"

# Update the REST API settings
aws apigateway update-rest-api --rest-api-id $API_ID --patch-operations op=replace,path=/minimumTlsVersion,value='TLS_1.0',op=replace,path=/apiKeySource,value='AUTHORIZER'

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

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

Απαιτείται δοκιμή

apigateway:CreateApiKey, apigateway:UpdateApiKey, apigateway:CreateUsagePlan, apigateway:CreateUsagePlanKey

Ένας επιτιθέμενος με δικαιώματα apigateway:CreateApiKey, apigateway:UpdateApiKey, apigateway:CreateUsagePlan και apigateway:CreateUsagePlanKey μπορεί να δημιουργήσει νέα κλειδιά API, να τα συσχετίσει με σχέδια χρήσης και στη συνέχεια να χρησιμοποιήσει αυτά τα κλειδιά για μη εξουσιοδοτημένη πρόσβαση σε APIs.

# Create a new API key
API_KEY=$(aws apigateway create-api-key --enabled --output text --query 'id')

# Create a new usage plan
USAGE_PLAN=$(aws apigateway create-usage-plan --name "MaliciousUsagePlan" --output text --query 'id')

# Associate the API key with the usage plan
aws apigateway create-usage-plan-key --usage-plan-id $USAGE_PLAN --key-id $API_KEY --key-type API_KEY

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

Απαιτείται δοκιμή

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

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

Last updated