#74 Kali Linux для продвинутого тестирования на проникновение. Использование недостатков разрешений безопасности в облаке. Часть 1.
Здравствуйте, дорогие друзья.
Ниже перечислены наиболее распространенные уязвимости в облачных сервисах AWS:
• Чрезмерное количество общедоступных подсетей. Большинство организаций используют VPC по умолчанию (виртуальное частное облако), которое встроено в AWS и вносит несколько изменений при использовании AWS. Однако этот подход окажется опасным во многих случаях (примером может служить крипто-вымогатель на основе ботнета). Публичные подсети доступны любому пользователю в Интернете, потенциально раскрывая данные, которые не должны быть общедоступными.
• Проблемы с IAM (управление идентификацией и доступом) в организациях, которые не используют двух- или многофакторную аутентификацию, для учетных записей, с высоким уровнем привилегий и использование одной учетной записи, предоставляя одинаковый уровень доступа ко всем новым учетным записям.
Были случаи, когда учетные записи сотрудников были скомпрометированы через фишинг, по электронной почте, приводящий к массовым атакам программ-вымогателей, которые стоили организации огромных денежных вложений.
• Неправильно настроенные корзины S3. В предыдущем разделе мы рассмотрели разрешения на корзины S3. Это одна из наиболее распространенных тем, отмеченных во время проникновения в облако. Хотя корзины по умолчанию являются частными, иногда ИТ-операции/разработка команды или третьи стороны, которые управляют этими типами инфраструктуры, как правило, делают их общественными. Это открывает их перед неизбежной угрозой со стороны противников, находя неправильно сконфигурированные сегменты S3, с конфиденциальной информацией, такой как закрытые ключи или оставленные без присмотра файлы, в том числе резервные копии или файлы журнала.
• Исходные серверы. Большинство поставщиков облачных услуг используют службу доставки контента (CDN), для распространения контента среди крупных клиентов. Большую часть времени они настроены неправильно, что приводит к утечке информации.
• SSRF (подделка запросов на стороне сервера) — это атака, которой можно злоупотреблять, чтобы воспользоваться законными функциями AWS и получить доступ к метаданным, а также, в случае успешного использования, злоумышленники могут получить действительные учетные данные пользователя для роли IAM. Мы рассмотрим эту атаку в данном разделе.
• Записи DNS. В большинстве случаев, во время первоначальной разведки, злоумышленники могут легко идентифицировать детали корзины S3 с субдоменом организации. Проблема возникает, когда операционная группа забывает своевременно обновлять свои записи DNS, или, что даже удивительно, но оставленные без присмотра корзины S3 до сих пор могут быть актуальны, и доступны любому в общедоступном интернете.
Со всей приведенной выше информацией мы теперь настроим CloudGoat, для создания уязвимого AWS, в котором мы будем использовать законные функции AWS, выполнив атаку SSRF.
Ниже приведены пошаговые инструкции для выполнения этой атаки:
1. Разверните уязвимую установку AWS, вернувшись к образу CloudGoat Docker и запустив ./cloudgoat.py create ec2_ssrf --profile masteringkali
в терминале, и это должно настроить инфраструктуру и предоставить нам следующее подтверждение, котороевключает идентификатор доступа и секретный ключ:
2. Создайте профиль AWS в Kali Linux, запустив sudo aws configure –profile ssrf
, как показано на рисунке ниже, и введите идентификатор ключа доступа и секретный ключ доступа:
3. Мы можем перечислить привилегии ключа доступа, запустив enumerate-iam инструмент, который можно напрямую клонировать из Git, запустив sudo git clone
https://github.com/andresriancho/enumerate-iam
, а затем cd enumerate-iam
. Мы можем установить необходимые пакеты, запустив sudo pip3 install –r requirements.txt
. Как только это будет сделано, мы можем запустить инструмент перечисления, введя sudo python3 enumerate-iam.py --accesskey
xx – секретный ключ xx, как показано на рисунке ниже. Будут предоставлены такие детали, как связанный пользователь, идентификатор учетной записи и другие списки услуг.
4. Давайте рассмотрим лямбда-функции, к которым может получить доступ этот идентификатор, запустив sudo aws lambda list-functions --profile ssrf --region us-east-1
, который должен предоставить нам список доступных лямбда-функций, как показано на рисунке ниже:
Пользователи могут получить сообщение об ошибке, при выполнении вышеуказанной команды: An error occurred (InvalidSignatureException), при вызове операции ListFunctions: Signature expired. Это из-за времени проблемы. Тестировщикам рекомендуется запускать sudo apt install ntpupdate и sudo ntpdate pool.ntp.org в терминале.
5. Lambda раскрывает ключ доступа и секретный ключ. Давайте получим больше информации о конкретной функции, sudo aws lambda get-function –function-name cglambda-cg<randomid> --profile ssrf –region us-east-1
в терминале. Это должно вернуть более подробную информацию об этой лямбда-функции:
6. Теперь мы настроим наш Kali Linux с помощью ключей, которые мы получили от лямбда-функций, и назовем их lambda-solus, как показано на рисунке ниже:
На этом все. Первая часть завершена. Всем хорошего дня!
Полный цикл статей по Kali Linux для продвинутого тестирования на проникновение.