Мы создали скрипты перечисления в облаке, которые теперь доступны @ NotSoSecure/cloud-service-enum . Этот скрипт позволяет пентестерам проверять, какие облачные токены (ключи API, OAuth-токены и т. Д.) могут получить доступ к какой облачной службе.
По мере того, как облачные среды становятся все более популярными, мы наблюдаем рост использования облачных сред на производстве. Из Интернета большинство облачных серверов не будут выглядеть иначе, однако, как только вы получите доступ к серверу, все начнет меняться. В облачных средах используются токены, такие как ключи API, токены OAuth или управляемые идентификаторы, для управления идентификацией и доступом. Эти токены могут быть получены злоумышленниками с использованием различных методов, таких как атака подделки запросов на стороне сервера (SSRF), когда сервер выполняет действие от имени злоумышленника и отправляет ответ злоумышленнику, или с помощью таких атак, как уязвимость внедрения команд в облачное приложение. Эти токены также могут быть пропущены при случайном раскрытии на сайтах совместного использования кода, таких как pastebin или GitHub, которые могут быть обнаружены с помощью методов OSINT.
В этом сообщении в блоге
Как правило, учетные данные, полученные с помощью эксплуатации, могут иметь ограничения и могут быть низкими привилегиями. Это подразумевает, что не все ресурсы являются перечисляемыми, и не все ресурсы будут давать вам ответы, подобные
Вот почему мы создали набор инструментов для 3 ведущих поставщиков облачных вычислений, чтобы выполнить перечисление в этих средах и извлечь как можно больше подробностей. Давайте кратко рассмотрим три инструмента, которые мы создали.
Чтобы подтвердить, работают ли вышеуказанные учетные данные, мы сделаем вызов «sts-get-caller-identity».
Далее мы можем перечислить политики и службы IAM, такие как сегменты S3. Пример команды будет,
Вы поймете, что AWS - это чудовище, когда речь заходит о количестве предлагаемых услуг, и поэтому мы решили автоматизировать перечисление всех ресурсов с помощью «aws_service_enum».
Применение
Большинство вариантов говорят сами за себя, однако я хотел бы обратить ваше внимание на следующие 3 варианта:
–Region это позволит вам указать регион по умолчанию. Если регион не выбран, он будет перечисляться по всем регионам.
–S3-перечисление - довольно интересная особенность здесь. В нашем предыдущем исследовании
Например, если вы создаете сервис «Elastic Beanstalk», то AWS создаст сегмент, подобныйasticbeanstalk-REGIONNAME-ACCOUNTID, где REGIONNAME - это область эластичного бобового стебля, а ACCOUNTID - идентификатор учетной записи роли.
–S3-enumeration перечислит все сегменты, к которым обнаруженные сервисы имеют доступ, но не доступны напрямую. Например, если вы обнаружили эластичные учетные данные beanstalk через SSRF, и если вы используете те же учетные данные для выполнения aws s3 ls, он не будет перечислять связанные сегменты для обслуживания. Но если вы используете -s3-enumeration, он будет пытаться угадать сегмент, и, если он есть, он будет перечислять (только перечислять) содержимое блока.
Пример вывода инструмента приведен ниже:
В настоящее время службы, связанные с «токеном доступа OAuth», могут быть определены только с помощью вызова REST API по
Первой точкой вызова будет просмотр области действия и других сведений о «маркере доступа OAuth» через конечную точку
В зависимости от области действия
Эта утомительная задача автоматизирована с помощью нашего инструмента «gcp_service_enum».
Применение
Пример вывода инструмента приведен ниже:
Временный маркер доступа может быть
Первым делом можно было бы просмотреть список подписок, связанных с маркером доступа, через
Все сервисы, перечисленные на
Эти вызовы автоматизируются с помощью нашего инструмента «azure_service_enum».
Применение
Пример вывода перечисления Azure
Эти инструменты созданы для извлечения информации из частично доступных учетных данных или учетных данных с низкими привилегиями, ориентируясь, прежде всего, на необходимость проверки пентестером ресурсов, доступных для украденных учетных данных.
Источник:
По мере того, как облачные среды становятся все более популярными, мы наблюдаем рост использования облачных сред на производстве. Из Интернета большинство облачных серверов не будут выглядеть иначе, однако, как только вы получите доступ к серверу, все начнет меняться. В облачных средах используются токены, такие как ключи API, токены OAuth или управляемые идентификаторы, для управления идентификацией и доступом. Эти токены могут быть получены злоумышленниками с использованием различных методов, таких как атака подделки запросов на стороне сервера (SSRF), когда сервер выполняет действие от имени злоумышленника и отправляет ответ злоумышленнику, или с помощью таких атак, как уязвимость внедрения команд в облачное приложение. Эти токены также могут быть пропущены при случайном раскрытии на сайтах совместного использования кода, таких как pastebin или GitHub, которые могут быть обнаружены с помощью методов OSINT.
Ссылка скрыта от гостей
и
Ссылка скрыта от гостей
В этом сообщении в блоге
Ссылка скрыта от гостей
расскажет о некоторых приемах после эксплуатации, связанных с AWS, GCP, Azure, особенно связанных с перечислением ресурсов при получении таких токенов.Как правило, учетные данные, полученные с помощью эксплуатации, могут иметь ограничения и могут быть низкими привилегиями. Это подразумевает, что не все ресурсы являются перечисляемыми, и не все ресурсы будут давать вам ответы, подобные
Ссылка скрыта от гостей
S3, как мы обнаружили в
Ссылка скрыта от гостей
.Вот почему мы создали набор инструментов для 3 ведущих поставщиков облачных вычислений, чтобы выполнить перечисление в этих средах и извлечь как можно больше подробностей. Давайте кратко рассмотрим три инструмента, которые мы создали.
- Перечисление услуг AWS
Чтобы подтвердить, работают ли вышеуказанные учетные данные, мы сделаем вызов «sts-get-caller-identity».
Далее мы можем перечислить политики и службы IAM, такие как сегменты S3. Пример команды будет,
aws s3 ls
Вы поймете, что AWS - это чудовище, когда речь заходит о количестве предлагаемых услуг, и поэтому мы решили автоматизировать перечисление всех ресурсов с помощью «aws_service_enum».
Применение
Код:
usage: aws_service_enum.py [-h] --access-key --secret-key
[--session-token] [--region]
[--region-all] [--verbose] [--s3-enumeration]
[--logs]
< AWS_SERVICE_ENUM Says "Hello, world!" >
---------------
\ ^__^
\ (oo)\_______
(__)\ )\/
||----w |
|| ||
required arguments:
--access-key AWS Access Key ID
--secret-key AWS Secret Key
optional arguments:
-h, --help show this help message and exit
--session-token AWS Security Token. Required if provided credentials do not have get-session-token access
--region Enter any value from given list
ap-northeast-1, ap-northeast-2, ap-northeast-3, ap-southeast-1, ap-southeast-2, ap-south-1
ca-central-1
eu-central-1, eu-west-1, eu-west-2, eu-west-3, eu-north-1
us-east-1, us-east-2, us-west-1, us-west-2
sa-east-1
--region-all Enumerate for all regions given above
--verbose Select for Verbose output
--s3-enumeration Enumerate possible S3 buckets associated with services like ElasticBeanstalk, Athena
--logs Create a log File in same directory
Большинство вариантов говорят сами за себя, однако я хотел бы обратить ваше внимание на следующие 3 варианта:
–Region это позволит вам указать регион по умолчанию. Если регион не выбран, он будет перечисляться по всем регионам.
–S3-перечисление - довольно интересная особенность здесь. В нашем предыдущем исследовании
Ссылка скрыта от гостей
мы обнаружили, что AWS по умолчанию использует шаблоны именования при создании сегмента.Например, если вы создаете сервис «Elastic Beanstalk», то AWS создаст сегмент, подобныйasticbeanstalk-REGIONNAME-ACCOUNTID, где REGIONNAME - это область эластичного бобового стебля, а ACCOUNTID - идентификатор учетной записи роли.
–S3-enumeration перечислит все сегменты, к которым обнаруженные сервисы имеют доступ, но не доступны напрямую. Например, если вы обнаружили эластичные учетные данные beanstalk через SSRF, и если вы используете те же учетные данные для выполнения aws s3 ls, он не будет перечислять связанные сегменты для обслуживания. Но если вы используете -s3-enumeration, он будет пытаться угадать сегмент, и, если он есть, он будет перечислять (только перечислять) содержимое блока.
Пример вывода инструмента приведен ниже:
- Перечень услуг GCP
В настоящее время службы, связанные с «токеном доступа OAuth», могут быть определены только с помощью вызова REST API по
Ссылка скрыта от гостей
или через интерфейс python для вышеуказанных API-интерфейсов https://github.com/googleapis/ google-api-python-client .Первой точкой вызова будет просмотр области действия и других сведений о «маркере доступа OAuth» через конечную точку
Ссылка скрыта от гостей
enjinsert_token_here}.В зависимости от области действия
Ссылка скрыта от гостей
может быть доступен через интерфейс REST API. Например, как показано ниже, мы использовали «токен доступа OAuth» из намеренно уязвимого экземпляра для получения списка «облачных функций» в области «us-central1». Эта утомительная задача автоматизирована с помощью нашего инструмента «gcp_service_enum».
Применение
Код:
usage: gcp_service_enum.py [-h] --access-token [--region] [--project-id] [--verbose]
[--logs]
< GCP_SERVICE_ENUM Says "Hello, world!" >
---------------
\ ^__^
\ (oo)\_______
(__)\ )\/
||----w |
|| ||
required arguments:
--access-token GCP oauth Access Token
optional arguments:
-h, --help show this help message and exit
--region Enter any value from given list
ap-northeast-1, ap-northeast-2, ap-northeast-3, ap-southeast-1, ap-southeast-2, ap-south-1, ca-central-1
eu-central-1, eu-west-1, eu-west-2, eu-west-3, eu-north-1
us-east-1, us-east-2, us-west-1, us-west-2
sa-east-1
--project-id ProjectID
--verbose Select for Verbose output
--logs Create a log File in same directory
Пример вывода инструмента приведен ниже:
- Перечисление службы Azure
Ссылка скрыта от гостей
Azure предоставляет службам Azure автоматически управляемую идентификацию в Azure AD. Вы можете использовать эту идентификацию для аутентификации в любой службе, которая поддерживает аутентификацию Azure AD, включая Key Vault, без каких-либо учетных данных в вашем коде.Временный маркер доступа может быть
Ссылка скрыта от гостей
через конечную точку службы метаданных Azure Instance Service (IMDS). Мы сосредоточимся на том, что делать после получения «токена доступа».Первым делом можно было бы просмотреть список подписок, связанных с маркером доступа, через
Ссылка скрыта от гостей
.Все сервисы, перечисленные на
Ссылка скрыта от гостей
можно затем использовать для получения / изменения информации / ресурса, предоставив «subscriptionId» и «токен доступа». Эти вызовы автоматизируются с помощью нашего инструмента «azure_service_enum».
Применение
Код:
> python azure_service_enum.py
usage: azure_enum.py [-h] --access-token [--logs]
< Azure_SERVICE_ENUM Says "Hello, world!" >
---------------
\ ^__^
\ (oo)\_______
(__)\ )\/
||----w |
|| ||
required arguments:
--access-token Azure Managed Identities Access Token
optional arguments:
-h, --help show this help message and exit
--logs Create a log File in same directory
Пример вывода перечисления Azure
Эти инструменты созданы для извлечения информации из частично доступных учетных данных или учетных данных с низкими привилегиями, ориентируясь, прежде всего, на необходимость проверки пентестером ресурсов, доступных для украденных учетных данных.
Источник:
Ссылка скрыта от гостей