Категория > Новости > Блямбда. Эксплуатируем AWS Lambda - «Новости»
Блямбда. Эксплуатируем AWS Lambda - «Новости»26-11-2022, 00:00. Автор: Нестор |
Проверка ведер. Как искать уязвимости в бакетах AWS S3».
Теория
AWS LambdaКак работает AWS Lambda? Если простыми словами: ты добавляешь свой скрипт и задаешь триггер или событие, при наступлении которого будет запускаться этот код. Больше делать ничего не нужно, потому что обо всем другом — администрировании, мониторинге работы, безопасности, журналах, логах — позаботится сервис AWS Lambda. Когда событий нет, лямбда не выполняется, соответственно, ресурсы не потребляются. ![]() Устройство лямбды Лямбда-функцияЛямбда‑функция — это часть кода, которая выполняется каждый раз, когда срабатывает триггер. Устройство лямбда‑функции Существует три типа триггеров, отличаются они способом вызова:
При этом вызов возможно выполнить и с помощью API Gateway.
API GatewayСлужба API Gateway упрощает разработчикам работу с API. Поддерживается REST, HTTP и WebSocket API. ![]() Состав API Gateway Мы можем привязать API Gateway к какому‑то сервису, мобильному приложению, даже к IOT, — главное, чтобы у них был доступ в интернет. После этого оно будет стучать на API-шлюз, с которого и станут вызываться требуемые действия. Стандартное использование API Gateway Первоначальный доступЧаще всего через лямбду в облако не попадают. Но в случае обнаружения функции, гейтвея, создания полной ссылки и требуемого набора параметров можно все‑таки попробовать. Например, если лямбда‑функция принимает какую‑либо команду для запуска в cmd: https://i8jee1mn2f.execute-api.us-east-2.amazonaws.com/prod/system?cmd=env Пример эксплуатации уязвимости Разведка
Lambda FunctionНа первом этапе нужно хорошенько разведать обстановку и поискать уязвимые места. На помощь нам придет AWS CLI. Чтобы увидеть все лямбда‑функции, воспользуемся следующей командой: awslambdalist-functions Получить лямбда‑функции в отдельном регионе: aws lambda list-functions --regionus-east-1 Поиск лямбда‑функций Изучение зависимостей
Получить информацию о конкретной лямбда‑функции (в том числе исходный код) можно следующим образом: awslambdaget-function--function-name<function-name>[--regioneu-west-1--profiledemo] Пример: awslambdaget-function--function-namePentestingForFun Смотрим определенную функцию В приведенном выше примере мы видим раздел При этом в выводе данной команды есть огромная структура ![]() Учетные данные в переменных среды Исходный код зависимости можно получить вот так: awslambdaget-layer-version--layer-name<LayerName>--version-number<VersionNumber> Пример: awslambdaget-layer-version--layer-namerequest-library--version-number1 Теперь обрати внимание на способы вызова функции. awslambdaget-policy--function-name<function-name> Пример: awslambdaget-policy--function-namePentestingForFun Объекты, способные вызывать синхронный триггер
В лямбда‑функциях иногда встречается раздел ![]() Пример Condition В данном случае awslambdalist-event-source-mappings--function-name<function-name> Пример: awslambdalist-event-source-mappings--function-namePentestingForFun Что приведет к асинхронному/потоковому триггеру В этом случае используется Amazon Simple Queue Service (SQS) — служба очереди сообщений.
API GatewayПосле изучения доступных лямбда‑функций пора восстанавливать URL, который приведет к ее вызову. Чтобы увидеть все REST APIs (получить айдишник, так как Region зачастую схож с большинством регионов, в котором стоят ЕС2-инстансы), воспользуемся следующей командой: awsapigatewayget-rest-apis ![]() Обнаружение всех REST API Перейти обратно к новости |