CloudFox помогает оценить ситуационную осведомлённость в незнакомых облачных средах. Это инструмент командной строки с открытым исходным кодом, созданный для помощи пентестерам и другим специалистам в области наступательной безопасности в поиске эксплуатируемых путей атак в облачной инфраструктуре.
CloudFox модульный (можно запускать одну команду за раз), но есть команда aws all-checks, которая запускает остальные aws-команды с разумными настройками по умолчанию:
cloudfox aws --profile [имя-профиля] all-checks
Перечисление в режиме белого ящика
CloudFox был разработан для выполнения субъектом с ограниченными правами только на чтение, но его цель — помочь найти пути атак, которые можно использовать в сценариях симулированного взлома (то есть объектно-ориентированное пентестирование).
Перечисление в режиме чёрного ящика
CloudFox можно использовать с «найденными» учётными данными, аналогично тому, как используются weirdAAL или enumerate-iam. Проверки, которые терпят неудачу, происходят молча, поэтому любые возвращённые данные означают, что ваши «найденные» учётные данные имеют необходимый доступ для их получения.
**Вариант 5:** Тестирование исправления ошибки ```
git clone [email protected]:BishopFox/cloudfox.git
git checkout seth-dev
go build .
./cloudfox [rest of the command options]
Prerequisites
AWS
Установлен AWS CLI
Поддерживает профили AWS, переменные окружения AWS или получение метаданных (на экземпляре ec2)
Для запуска команд для нескольких профилей одновременно можно указать путь к файлу со списком имен профилей, разделенных новой строкой, используя флаг -l, или передать все сохраненные профили с помощью флага -a.
Участник (principal) с одной из рекомендованных политик (описано ниже)
Содержит полный список всех разрешений, которые использует CloudFox, и ничего больше
arn:aws:iam::aws:policy/SecurityAudit
Покрывает большинство проверок CloudFox, но отсутствуют более новые сервисы или разрешения, такие как apprunner:*, grafana:*, lambda:GetFunctionURL, lightsail:GetContainerServices
Покрывает большинство проверок CloudFox, но отсутствуют более новые сервисы или разрешения, такие как AppRunner:*, grafana:*, lambda:GetFunctionURL, lightsail:GetContainerServices — а также отсутствует iam:SimulatePrincipalPolicy.
arn:aws:iam::aws:policy/ReadOnlyAccess
Отсутствует только AppRunner, но также предоставляет такие разрешения, как "s3:Get*", что может быть излишне разрешительным.
arn:aws:iam::aws:policy/AdministratorAccess
Это будет отлично работать с CloudFox, но если вам предоставили такой уровень доступа как пентестеру, это, вероятно, само по себе должно быть находкой :)
Рекомендуемые разрешения на соответствующих уровнях иерархии (см. ниже)
Разрешения GCP: Минимальные и Полные
Минимальные разрешения (один проект):
Для базового перечисления одного проекта роль roles/viewer предоставляет доступ на чтение к большинству ресурсов (включая просмотр журналов, мониторинг и вычислительные/сетевые ресурсы).
Полные разрешения (на уровне организации):
Для тщательной оценки безопасности во всей организации:
Область
Роль
Назначение
Организация
roles/resourcemanager.organizationViewer
Просмотр структуры организации и метаданных
Организация
roles/iam.securityReviewer
Просмотр политик IAM во всей организации
Организация
roles/cloudasset.viewer
Запрос Cloud Asset Inventory для всех ресурсов
Организация
roles/cloudidentity.groupsViewer
Перечисление групп Google и членства
Папка
roles/resourcemanager.folderViewer
Просмотр иерархии папок и метаданных
Проект
roles/viewer
Доступ на чтение к большинству ресурсов проекта (включает logging.viewer, monitoring.viewer, compute.viewer)
Проект инструментов
roles/serviceusage.serviceUsageAdmin
(Опционально) Управление квотами API для операций CloudFox
Примечание: Базовая роль roles/viewer включает разрешения от roles/logging.viewer, roles/monitoring.viewer и roles/compute.networkViewer, поэтому их не нужно предоставлять отдельно.
Требования к API GCP
API должны быть включены в каждом проекте, который вы хотите оценить. API GCP действуют в рамках проекта.
Запустить все остальные команды с разумными настройками по умолчанию. Вам все равно стоит изучить нестандартные опции каждой команды, но это отличное место для начала.
Выводит активные ключи доступа для всех пользователей. Полезно для перекрестной проверки найденного ключа и определения, к какому аккаунту в рамках оценки он относится.
Выводит URI последнего отправленного образа из всех репозиториев. Используйте loot-файл, чтобы загрузить выбранные образы с помощью docker/nerdctl для проверки.
Выводит все задачи ECS. Возвращает список задач ECS с указанием кластера, определения задачи, экземпляра контейнера, типа запуска и связанного участника IAM.
Отображает информацию о тенанте, подписках и группах ресурсов, доступных в вашем текущем сеансе Azure CLI. Это полезно для ситуационной осведомленности о том, какие идентификаторы тенанта и подписки использовать с другими подкомандами.
Как CloudFox соотносится с ScoutSuite, Prowler, AWS Compliance Module от Steampipe, AWS Security Hub и т.п.?
CloudFox не создаёт оповещений или находок и не проверяет вашу среду на соответствие базовому уровню или стандарту. Вместо этого он просто позволяет вам работать эффективнее во время ручного тестирования на проникновение. Он предоставляет информацию, которая, скорее всего, понадобится вам для проверки, возможен ли тот или иной путь атаки.
Почему я вижу ошибки в некоторых командах CloudFox?
Сервисы, которые существуют не во всех регионах — CloudFox пытается выяснить, какие сервисы поддерживаются в каждом регионе, несколькими способами. Однако некоторые сервисы не поддерживают методы, используемые CloudFox, поэтому CloudFox по умолчанию просто опрашивает каждый регион насчёт этого сервиса. Регионы, в которых сервис не поддерживается, возвращают ошибки.
У вас недостаточно разрешений — Ещё одна причина, по которой вы можете видеть ошибки, — отсутствие разрешений на выполнение вызовов, которые делает CloudFox. Либо из-за того, что политика этого не допускает (например, SecurityAudit не даёт всех разрешений, необходимых CloudFox), либо это может быть SCP, блокирующий вас.
Вы всегда можете посмотреть файл ~/.cloudfox/cloudfox-error.log, чтобы получить больше информации об ошибках.
Steampipe — Мы использовали Steampipe для прототипирования многих команд CloudFox. В то время как CloudFox сфокусирован исключительно на помощи пентестерам облака, Steampipe — это простой способ запрашивать любые и все ваши облачные ресурсы.
Principal Mapper — Вдохновение для и настоятельно рекомендуемый партнёр к команде iam-simulator
ScoutSuite — Отличный инструмент для проверки безопасности облака. Послужил вдохновением для функциональности --userdata в команде instances, команды permissions и многих других.
Prowler — Ещё один отличный инструмент для проверки безопасности облака.
Pacu — Отличный инструмент для тестирования безопасности облака на проникновение. У Pacu есть множество команд перечисления, похожих на CloudFox, и много других команд, автоматизирующих задачи эксплуатации (то, чего CloudFox избегает по замыслу).
CloudMapper — Вдохновение для команды inventory и CloudFox в целом.
Выводит все кластеры EKS, проверяет, открывают ли они свою конечную точку публично, и проверяет связанные роли IAM, прикрепленные для доступа к кластеру или группе узлов. Генерирует loot-файл с командой aws eks udpate-kubeconfig, необходимой для подключения к каждому кластеру.
Перечисляет конечные точки из различных сервисов. Сканируйте эти конечные точки как из внутреннего, так и из внешнего положения, чтобы найти то, что не требует аутентификации, неправильно настроено и т.д.
Извлекает переменные окружения из сервисов, которые их поддерживают (App Runner, ECS, Lambda, контейнеры Lightsail, Sagemaker). Если вы найдете чувствительный секрет, используйте cloudfox iam-simulator И pmapper, чтобы узнать, у кого есть к ним доступ.
Перечисляет файловые системы EFS и FSx, которые можно смонтировать без учетных данных (при наличии соответствующего сетевого доступа). Например, это полезно, когда у вас есть ec:RunInstance, но нет iam:PassRole.
Как pmapper, но использует симулятор политик IAM. Он использует логику оценки AWS, но, что важно, не учитывает транзитивный доступ через повышение привилегий, поэтому вам также следует всегда использовать pmapper.
Перечисляет полезную информацию для экземпляров EC2 во всех регионах, такую как имя, публичные/частные IP и профили экземпляров. Генерирует loot-файлы, которые можно передать в nmap и другие инструменты для перечисления сервисов.
Выводит функции Lambda в аккаунте, включая те, к которым прикреплены роли администратора. Также предоставляет удобные команды для загрузки каждой функции.
Перечисляет сервисы AWS, которые потенциально предоставляют сетевой сервис. Группы безопасности и сетевые ACL анализируются для каждого ресурса, чтобы определить, какие порты потенциально открыты.
Перечисляет разрешения IAM, связанные со всеми пользователями и ролями. Используйте grep этого вывода, чтобы выяснить, какие разрешения есть у конкретного субъекта, вместо того чтобы входить в консоль AWS и кропотливо разворачивать каждую политику, прикрепленную к изучаемому субъекту.
Ищет данные pmapper, сохраненные в локальной файловой системе, в местах, указанных здесь. Если данные pmapper найдены (вы уже запустили pmapper graph create), то эта команда использует эти данные для построения графа в памяти CloudFox и сообщит, кто может повысить привилегии до администратора.
Выводит все ресурсы в этом аккаунте, которые используются совместно с другими аккаунтами, или ресурсы из других аккаунтов, которые используются совместно с этим аккаунтом. Полезно для межаккаунтных путей атак.
Просматривает несколько сервисов, поддерживающих политики ресурсов, и помогает найти излишне разрешительные доверия ресурсов. KMS поддерживается, но отключен по умолчанию. Чтобы включить политики ресурсов KMS в вывод, добавьте этот флаг в команду: cloudfox aws resource-trusts --include-kms.
Перечисляет политики доверия ролей IAM, чтобы вы могли искать излишне разрешительные доверия ролей или находить роли, которые доверяют определенному сервису.
Выводит секреты из Secrets Manager и SSM. Ищите интересные секреты в списке, а затем узнайте, у кого есть к ним доступ, используя cloudfox iam-simulator и/или pmapper.
Эта команда перечисляет все темы SNS и предоставляет команды для подписки на тему или отправки сообщений в тему (при наличии необходимых разрешений). Эта команда работает только с темами, а не с функцией SMS. Эта команда также пытается обобщить политики ресурсов тем, если они существуют.
Эта команда перечисляет все очереди SQS и предоставляет команды для получения сообщений из очереди и отправки сообщений в очередь (при наличии необходимых разрешений). Эта команда также пытается обобщить политики ресурсов очередей, если они существуют.
Выводит все ресурсы с тегами и все теги. Это можно использовать аналогично inventory как еще один метод определения того, какие типы ресурсов существуют в аккаунте.
Выводит все вычислительные нагрузки и их роли. Сообщает, если какая-либо из ролей является администраторской (плохо) и если у вас есть локальные данные pmapper, сообщит, может ли какая-либо из ролей повысить привилегии до администратора (тоже плохо)