AWS - API Gateway Post Exploitation
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
For more information check:
AWS - API Gateway EnumВи можете створити кінцеву точку в https://us-east-1.console.aws.amazon.com/vpc/home#CreateVpcEndpoint з сервісом com.amazonaws.us-east-1.execute-api
, відкрити кінцеву точку в мережі, до якої у вас є доступ (можливо, через машину EC2) і призначити групу безпеки, що дозволяє всі з'єднання.
Потім, з машини EC2 ви зможете отримати доступ до кінцевої точки і, отже, викликати API шлюзу, який раніше не був відкритий.
Цю техніку було знайдено в цьому CTF звіті.
Як зазначено в документації AWS в розділі PassthroughBehavior
, за замовчуванням значення WHEN_NO_MATCH
, при перевірці заголовка Content-Type запиту, передасть запит на бекенд без трансформації.
Отже, в CTF API Gateway мав шаблон інтеграції, який перешкоджав ексфільтрації прапора у відповіді, коли запит надсилався з Content-Type: application/json
:
Однак, надсилання запиту з Content-type: text/json
запобігло б цьому фільтру.
Нарешті, оскільки API Gateway дозволяв лише Get
та Options
, було можливим надіслати довільний запит до dynamoDB без жодних обмежень, надіславши POST запит з запитом у тілі та використовуючи заголовок X-HTTP-Method-Override: GET
:
У розділі Перерахування ви можете побачити, як отримати план використання ключів. Якщо у вас є ключ, і він обмежений до X використань на місяць, ви можете просто використовувати його і викликати DoS.
API Key просто потрібно включити в HTTP заголовок під назвою x-api-key
.
apigateway:UpdateGatewayResponse
, apigateway:CreateDeployment
Зловмисник з правами apigateway:UpdateGatewayResponse
та apigateway:CreateDeployment
може модифікувати існуючу відповідь шлюзу, щоб включити користувацькі заголовки або шаблони відповідей, які витікають чутливу інформацію або виконують шкідливі скрипти.
Потенційний вплив: Витік чутливої інформації, виконання шкідливих скриптів або несанкціонований доступ до ресурсів API.
Потрібно тестування
apigateway:UpdateStage
, apigateway:CreateDeployment
Зловмисник з правами apigateway:UpdateStage
та apigateway:CreateDeployment
може модифікувати існуючий етап API Gateway, щоб перенаправити трафік на інший етап або змінити налаштування кешування для отримання несанкціонованого доступу до кешованих даних.
Потенційний вплив: Несанкціонований доступ до кешованих даних, порушення або перехоплення API-трафіку.
Потрібно тестування
apigateway:PutMethodResponse
, apigateway:CreateDeployment
Зловмисник з правами apigateway:PutMethodResponse
та apigateway:CreateDeployment
може модифікувати відповідь методу існуючого методу API Gateway REST API, щоб включити користувацькі заголовки або шаблони відповідей, які витікають чутливу інформацію або виконують шкідливі скрипти.
Потенційний вплив: Витік чутливої інформації, виконання шкідливих скриптів або несанкціонований доступ до ресурсів API.
Потрібно тестування
apigateway:UpdateRestApi
, apigateway:CreateDeployment
Зловмисник з правами apigateway:UpdateRestApi
та apigateway:CreateDeployment
може змінити налаштування REST API API Gateway, щоб вимкнути ведення журналу або змінити мінімальну версію TLS, що потенційно послаблює безпеку API.
Потенційний вплив: Послаблення безпеки API, що може дозволити несанкціонований доступ або розкрити чутливу інформацію.
Потрібно тестування
apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
, apigateway:CreateUsagePlanKey
Зловмисник з правами apigateway:CreateApiKey
, apigateway:UpdateApiKey
, apigateway:CreateUsagePlan
та apigateway:CreateUsagePlanKey
може створювати нові API ключі, асоціювати їх з планами використання, а потім використовувати ці ключі для несанкціонованого доступу до API.
Потенційний вплив: Несанкціонований доступ до ресурсів API, обхід засобів безпеки.
Потрібно тестування
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)