Amazon Web Services (AWS), Cloud, CloudGoat, Kali Linux, Kali Linux для продвинутого тестирования на проникновение

#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 в терминале, и это должно настроить инфраструктуру и предоставить нам следующее подтверждение, котороевключает идентификатор доступа и секретный ключ:

Creating the ec2_ssfr AWS environment using CloudGoat

2. Создайте профиль AWS в Kali Linux, запустив sudo aws configure –profile ssrf, как показано на рисунке ниже, и введите идентификатор ключа доступа и секретный ключ доступа:

Configuring the AWS profile within Kali Linux

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, как показано на рисунке ниже. Будут предоставлены такие детали, как связанный пользователь, идентификатор учетной записи и другие списки услуг.

Enumerating the AWS account with the access and secret keys using
enumerate-iam.py

4. Давайте рассмотрим лямбда-функции, к которым может получить доступ этот идентификатор, запустив sudo aws lambda list-functions --profile ssrf --region us-east-1, который должен предоставить нам список доступных лямбда-функций, как показано на рисунке ниже:

List of functions in AWS Lambda that is available to the profile

Пользователи могут получить сообщение об ошибке, при выполнении вышеуказанной команды: 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 в терминале. Это должно вернуть более подробную информацию об этой лямбда-функции:

Full details of the specific lambda function with AWS

6. Теперь мы настроим наш Kali Linux с помощью ключей, которые мы получили от лямбда-функций, и назовем их lambda-solus, как показано на рисунке ниже:

Configuring the AWS profile within AWS for the new access key from the
lambda functions

На этом все. Первая часть завершена. Всем хорошего дня!

Полный цикл статей по Kali Linux для продвинутого тестирования на проникновение.