Инструмент для обнаружения attack surface в облачных окружениях от BishopFox. Поддерживает AWS, Azure, GCP. Находит: доступные endpoints, IAM-привилегии, секреты в env-переменных Lambda, конфигурации VPC, пути эскалации привилегий. Написан на Go, единый бинарник.
# Скачать релиз: https://github.com/BishopFox/cloudfox/releases cloudfox aws --profile default all-checks
CloudFox помогает получить ситуативное понимание в незнакомых облачных средах. Это инструмент с открытым исходным кодом, созданный для помощи специалистам по пентесту и другим профессионалам в области атакующей безопасности в поиске эксплуатируемых путей атак в облачной инфраструктуре.
ТРЕБУЕТСЯ ОБНОВЛЕНИЕ CLOUDFOX: (12/2025): Если вы используете
cloudfox, вам необходимо использовать версию v1.17.0 или выше. Все более ранние версии перестали работать после изменения формата в файле публичного маппинга сервисов AWS.
Обзор
Присоединяйтесь к нам на сервере RedSec в Discord
CloudFox модульный (вы можете запускать по одной команде за раз), но есть команда aws all-checks, которая запустит другие команды aws за вас с разумными настройками по умолчанию:
cloudfox aws --profile [имя-профиля] all-checks

CloudFox был разработан для выполнения принципиалом с ограниченными правами только на чтение, но его цель — помочь вам найти пути атак, которые могут быть использованы в сценариях симулированного компрометирования (также известного как пентест на основе целей).
CloudFox может использоваться с "найденными" учетными данными, аналогично тому, как вы бы использовали weirdAAL или enumerate-iam. Проверки, которые завершаются неудачей, делают это молча, поэтому любой возвращаемый означает, что ваши "найденные" учетные данные имеют необходимый доступ для его получения.
Полную документацию см. в нашей вики.
| Провайдер | Команды CloudFox |
|---|---|
| AWS | 34 |
| Azure | 4 |
| GCP | 60 |
| Kubernetes | Поддержка запланирована |
Вариант 1: Скачайте последний бинарный релиз для вашей платформы.
Вариант 2: Если вы используете homebrew: brew install cloudfox
Вариант 3: Установите Go, используйте go install github.com/BishopFox/cloudfox@latest для установки из удаленного источника.
Вариант 4: Режим разработчика:
Установите Go, клонируйте репозиторий CloudFox и соберите из исходного кода.
# git clone https://github.com/BishopFox/cloudfox.git
# cd ./cloudfox
# Внесите любые необходимые изменения
# go build .
# ./cloudfox
Вариант 5: Тестирование исправления ошибки
git clone git@github.com:BishopFox/cloudfox.git
git checkout seth-dev
go build .
./cloudfox [остальные параметры команды]
-l или передать все сохраненные профили с помощью флага -a.SecurityAudit + Пользовательская политика CloudFoxДополнительные примечания к политикам (по состоянию на 09/2022):
| Политика | Примечания |
|---|---|
| Пользовательская политика CloudFox | Содержит полный список всех разрешений, используемых cloudfox, и ничего больше |
arn:aws:iam::aws:policy/SecurityAudit |
Покрывает большинство проверок cloudfox, но отсутствуют более новые сервисы или разрешения, такие как apprunner:*, grafana:*, lambda:GetFunctionURL, lightsail:GetContainerServices |
arn:aws:iam::aws:policy/job-function/ViewOnlyAccess |
Покрывает большинство проверок 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, но если вам передали такой уровень доступа как специалисту по пентесту, это, вероятно, само по себе должно быть находкой :) |
gcloud auth application-default login)Минимальные разрешения (один проект):
Для базового перечисления одного проекта роль roles/viewer предоставляет доступ на чтение к большинству ресурсов (включает просмотр логов, мониторинга и вычислительных/сетевых ресурсов).
Полные разрешения (на всю организацию):
Для тщательной оценки безопасности по всей организации:
| Область | Роль | Назначение |
|---|---|---|
| Организация | roles/resourcemanager.organizationViewer |
Просмотр структуры и метаданных организации |
| Организация | roles/iam.securityReviewer |
Просмотр политик IAM по всей организации |
| Организация | roles/cloudasset.viewer |
Запрос к Реестру облачных ресурсов по всем ресурсам |
| Организация | 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 должны быть включены в каждом проекте, который вы хотите оценить. API GCP привязаны к проектам.
| API | Имя сервиса | Назначение |
|---|---|---|
| Cloud Identity API | cloudidentity.googleapis.com |
Перечисление групп, анализ унаследованных ролей |
| Cloud Asset API | cloudasset.googleapis.com |
Межпроектное обнаружение ресурсов |
| Cloud Resource Manager API | cloudresourcemanager.googleapis.com |
Маппинг организации, перечисление IAM |
| IAM API | iam.googleapis.com |
Анализ IAM, обнаружение повышения привилегий |
| Compute Engine API | compute.googleapis.com |
Перечисление инстансов, сетевая безопасность |
| Secret Manager API | secretmanager.googleapis.com |
Перечисление секретов |
| Cloud Functions API | cloudfunctions.googleapis.com |
Перечисление серверлесс-функций |
| Cloud Run API | run.googleapis.com |
Перечисление серверлесс-сервисов |
| Kubernetes Engine API | container.googleapis.com |
Анализ безопасности контейнеров |
| BigQuery API | bigquery.googleapis.com |
Анализ безопасности данных |
Подробные инструкции по настройке см. в Руководстве по настройке GCP.
| Провайдер | Название команды | Описание |
|---|---|---|
| AWS | all-checks | Запустите все остальные команды, используя разумные настройки по умолчанию. Вам всё равно стоит изучить нестандартные опции каждой команды, но это отличная отправная точка. |
| AWS | access-keys | Выводит активные ключи доступа для всех пользователей. Полезно для сопоставления найденного ключа с соответствующим аккаунтом в пределах диапазона. |
| AWS | api-gw | Выводит конечные точки API-шлюзов и предоставляет пользовательские команды curl, включая токены API, если они хранятся в метаданных. |
| AWS | buckets | Выводит бакеты в аккаунте и предоставляет удобные команды для их дальнейшей проверки. |
| AWS | cape | Перечисляет пути повышения привилегий между аккаунтами. Требует предварительного запуска pmapper |
| AWS | cloudformation | Выводит стеки CloudFormation в аккаунте. Генерирует файл с добычей (loot), содержащий детали стека, параметры и выводы - ищите секреты. |
| AWS | codebuild | Перечисляет проекты CodeBuild |
| AWS | databases | Перечисляет базы данных RDS. Получает файл с добычей, содержащий строки подключения. |
| AWS | ecr | Выводит URI недавно загруженного образа из всех репозиториев. Используйте файл с добычей для загрузки выбранных образов с помощью docker/nerdctl для проверки. |
| AWS | ecs-tasks | Выводит все задачи ECS. Возвращает список задач ECS и связанные с ними кластеры, определения задач, экземпляры контейнеров, типы запуска и связанные IAM-принципалы. |
| AWS | eks | Выводит все кластеры EKS, проверяет, открыт ли их эндпоинт публично, и проверяет связанные IAM-роли для каждого кластера или группы узлов. Генерирует файл с добычей, содержащий команду aws eks update-kubeconfig, необходимую для подключения к каждому кластеру. |
| AWS | elastic-network-interfaces | Выводит информацию обо всех ENI. Возвращает список идентификаторов ENI, типов, внешних IP, частных IP, ID VPC, подключенных экземпляров и описаний. |
| AWS | endpoints | Перечисляет конечные точки различных сервисов. Проверяйте эти конечные точки как с внутренней, так и с внешней позиции, ища те, которые не требуют аутентификации, неправильно настроены и т.д. |
| AWS | env-vars | Забирает переменные окружения из сервисов, которые их поддерживают (App Runner, ECS, Lambda, контейнеры Lightsail, Sagemaker). Если вы обнаружите чувствительный секрет, используйте cloudfox iam-simulator И pmapper, чтобы узнать, кто имеет к нему доступ. |
| AWS | filesystems | Перечисляет файловые системы EFS и FSx, которые вы можете смонтировать без учетных данных (если у вас есть правильный сетевой доступ). Например, это полезно, когда у вас есть ec:RunInstance, но нет iam:PassRole. |
| AWS | iam-simulator | Аналог pmapper, но использует симулятор политик IAM. Он использует логику оценки AWS, но, что важно, не учитывает транзитный доступ через повышение привилегий, поэтому вы также всегда должны использовать pmapper. |
| AWS | instances | Перечисляет полезную информацию о экземплярах EC2 во всех регионах, такую как имя, публичные/частные IP и профили экземпляров. Генерирует файлы с добычей, которые можно подать на nmap и другие инструменты для перечисления сервисов. |
| AWS | inventory | Получает примерное представление о размере аккаунта и предпочтительных регионах. |
| AWS | lambda | Выводит функции Lambda в аккаунте, включая те, к которым прикреплены административные роли. Также предоставляет удобные команды для загрузки каждой функции. |
| AWS | network-ports | Перечисляет сервисы AWS, которые потенциально могут предоставлять сетевую службу. Для каждого ресурса проверяются группы безопасности и сетевые ACL для определения того, какие порты потенциально открыты. |
| AWS | orgs | Перечисляет аккаунты в организации |
| AWS | outbound-assumed-roles | Выводит роли, которые были приняты принципалами в этом аккаунте. Это отличный способ найти исходящие пути атак, ведущие в другие аккаунты. |
| AWS | permissions | Перечисляет разрешения IAM, связанные со всеми пользователями и ролями. Используйте grep по этому выводу, чтобы понять, какие разрешения имеет конкретный принципал, вместо того чтобы входить в консоль AWS и утомительно раскрывать каждую прикрепленную к исследуемому принципалу политику. |
| AWS | pmapper | Ищет данные pmapper, сохраненные на локальной файловой системе, в местах, определенных здесь. Если данные pmapper были найдены (вы уже выполнили pmapper graph create), эта команда использует эти данные для построения графа в памяти cloudfox и сообщает, кто может повысить привилегии до администратора. |
| AWS | principals | Перечисляет IAM-пользователей и роли, чтобы данные были у вас под рукой. |
| AWS | ram | Выводит все ресурсы в этом аккаунте, которые расшарены с другими аккаунтами, или ресурсы из других аккаунтов, расшаренные с этим аккаунтом. Полезно для межаккаунтовых путей атак. |
| AWS | resource-trusts | Просматривает несколько сервисов, поддерживающих политики ресурсов, и помогает найти любые чрезмерно разрешительные доверия к ресурсам. KMS поддерживается, но отключен по умолчанию. Чтобы включить политики ресурсов KMS в вывод, добавьте этот флаг к команде: cloudfox aws resource-trusts --include-kms. |
| AWS | role-trusts | Перечисляет политики доверия IAM-ролей, чтобы вы могли искать чрезмерно разрешительные доверия к ролям или находить роли, которым доверяет конкретный сервис. |
| AWS | route53 | Перечисляет все записи из всех управляемых зон Route53. Используйте это для перечисления приложений и сервисов. |
| AWS | secrets | Выводит секреты из SecretsManager и SSM. Ищите интересные секреты в списке, а затем с помощью cloudfox iam-simulator и/или pmapper проверяйте, кто имеет к ним доступ. |
| AWS | sns | Эта команда перечисляет все темы SNS и предоставляет команды для подписки на тему или отправки сообщений в тему (если у вас есть необходимые разрешения). Эта команда работает только с темами, а не с функциональностью SMS. Команда также пытается подвести итог политикам ресурсов тем, если они существуют. |
| AWS | sqs | Эта команда перечисляет все очереди SQS и предоставляет команды для получения сообщений из очереди и отправки сообщений в очередь (если у вас есть необходимые разрешения). Команда также пытается подвести итог политикам ресурсов очередей, если они существуют. |
| AWS | tags | Выводит все ресурсы с тегами и все теги. Это можно использовать аналогично инвентарю как другой метод для определения типов ресурсов, существующих в аккаунте. |
| AWS | workloads | Выводит все вычислительные рабочие нагрузки и их роли. Сообщает, являются ли какие-либо роли администраторскими (плохо), и если у вас есть локальные данные pmapper, сообщает, может ли какая-либо роль повысить привилегии до администратора (тоже плохо). |
| AWS | ds | Выводит все управляемые AWS каталоги и их атрибуты. Также подводит итог текущим довериям с указанием их направлений и типов. |
| # Команды Azure |
| Провайдер | Имя команды | Описание |
|---|---|---|
| Azure | whoami | Отображает информацию о tenant, подписках и группах ресурсов, доступных вашей текущей сессии Azure CLI. Это полезно для понимания контекста — каких tenant и идентификаторов подписок использовать с другими подкомандами. |
| Azure | inventory | Отображает таблицу-инвентарь всех ресурсов по локациям. |
| Azure | rbac | Перечисляет назначения ролей Azure RBAC на уровне подписки или tenant |
| Azure | storage | Команда storage все еще в разработке. В настоящее время она отображает только ограниченные данные о хранилищах данных |
| Azure | vms | Перечисляет полезную информацию об экземплярах Compute во всех доступных группах ресурсов и подписках |
Подробную документацию по каждой команде GCP см. в Вики команд GCP.
| Провайдер | Имя команды | Описание |
|---|---|---|
| GCP | whoami | Отображает контекст удостоверения для аутентифицированного пользователя/сервисного аккаунта GCP |
| GCP | iam | Перечисляет субъекты IAM GCP в организациях, папках и проектах |
| GCP | permissions | Перечисляет ВСЕ разрешения для каждой сущности IAM с полным взрывом наследования |
| GCP | serviceaccounts | Перечисляет сервисные аккаунты GCP с анализом безопасности |
| GCP | service-agents | Перечисляет управляемые Google сервисные агенты |
| GCP | keys | Перечисляет все ключи GCP (ключи СА, HMAC-ключи, API-ключи) |
| GCP | resource-iam | Перечисляет политики IAM на ресурсах GCP (бакеты, наборы данных, секреты и т.д.) |
| GCP | domain-wide-delegation | Находит сервисные аккаунты с делегированием на уровне домена для Google Workspace |
| GCP | privesc | Определяет пути повышения привилегий в проектах GCP |
| GCP | hidden-admins | Определяет субъекты, которые могут изменять политики IAM (скрытые администраторы) |
| GCP | identity-federation | Перечисляет Workload Identity Federation (внешние субъекты) |
| GCP | instances | Перечисляет экземпляры GCP Compute Engine с конфигурацией безопасности |
| GCP | gke | Перечисляет кластеры GKE с анализом безопасности |
| GCP | cloudrun | Перечисляет сервисы и задачи Cloud Run с анализом безопасности |
| GCP | functions | Перечисляет GCP Cloud Functions с анализом безопасности |
| GCP | app-engine | Перечисляет приложения App Engine и конфигурации безопасности |
| GCP | composer | Перечисляет среды Cloud Composer |
| GCP | dataproc | Перечисляет кластеры Dataproc |
| GCP | dataflow | Перечисляет задачи и конвейеры Dataflow |
| GCP | notebooks | Перечисляет блокноты Vertex AI Workbench |
| GCP | workload-identity | Перечисляет Workload Identity и Workload Identity Federation в GKE |
| GCP | inventory | Быстрый инвентарь ресурсов — работает без API Cloud Asset |
| GCP | storage | Перечисляет бакеты GCP Cloud Storage с конфигурацией безопасности |
| GCP | storage-enum | Перечисляет бакеты GCS для поиска чувствительных файлов (учетные данные, секреты, конфигурации) |
| GCP | bigquery | Перечисляет наборы данных и таблицы GCP BigQuery с анализом безопасности |
| GCP | cloudsql | Перечисляет экземпляры Cloud SQL с анализом безопасности |
| GCP | spanner | Перечисляет экземпляры и базы данных Cloud Spanner |
| GCP | bigtable | Перечисляет экземпляры и таблицы Cloud Bigtable |
| GCP | filestore | Перечисляет экземпляры Filestore NFS |
| GCP | memorystore | Перечисляет экземпляры Memorystore (Redis) |
| GCP | vpc-networks | Перечисляет сети VPC |
| GCP | firewall | Перечисляет сети VPC и правила файрвола с анализом безопасности |
| GCP | loadbalancers | Перечисляет балансировщики нагрузки |
| GCP | dns | Перечисляет зоны и записи Cloud DNS с анализом безопасности |
| GCP | endpoints | Перечисляет все сетевые эндпоинты (внешние и внутренние) с IP-адресами, портами и именами хостов |
| GCP | private-service-connect | Перечисляет эндпоинты и вложения сервисов Private Service Connect |
| GCP | network-topology | Визуализирует топологию сети VPC, отношения пиринга и границы доверия |
| GCP | vpc-sc | Перечисляет VPC Service Controls |
| GCP | access-levels | Перечисляет уровни доступа Access Context Manager |
| GCP | cloud-armor | Перечисляет политики безопасности Cloud Armor и находит уязвимости |
| GCP | iap | Перечисляет конфигурации Identity-Aware Proxy |
| GCP | beyondcorp | Перечисляет конфигурации BeyondCorp Enterprise |
| GCP | kms | Перечисляет связки ключей и криптографические ключи Cloud KMS с анализом безопасности |
| GCP | secrets | Перечисляет секреты GCP Secret Manager с конфигурацией безопасности |
| GCP | cert-manager | Перечисляет SSL/TLS-сертификаты и находит истекающие или неправильно настроенные сертификаты |
| GCP | org-policies | Перечисляет политики организации и определяет уязвимости безопасности |
| GCP | artifact-registry | Перечисляет GCP Artifact Registry и Container Registry с конфигурацией безопасности |
| GCP | cloudbuild | Перечисляет триггеры и сборки Cloud Build |
| GCP | source-repos | Перечисляет Cloud Source Repositories |
| GCP | scheduler | Перечисляет задачи Cloud Scheduler с анализом безопасности |
| GCP | pubsub | Перечисляет темы и подписки Pub/Sub с анализом безопасности |
| GCP | logging | Перечисляет стоки и метрики Cloud Logging с анализом безопасности |
| GCP | organizations | Перечислить иерархию организации GCP |
| GCP | asset-inventory | Перечислить Cloud Asset Inventory с опциональным анализом зависимостей |
| GCP | backup-inventory | Перечислить политики резервного копирования, защищенные ресурсы и выявить пробелы в резервном копировании |
| GCP | lateral-movement | Картировать пути бокового перемещения, векторы кражи учетных данных и возможности для поворота |
| GCP | data-exfiltration | Выявить пути выманивания данных, потенциальные векторы и отсутствующее укрепление безопасности |
| GCP | public-access | Найти ресурсы с доступом allUsers/allAuthenticatedUsers в 16 сервисах GCP |
| GCP | cross-project | Анализировать межпроектные IAM-привязки, стоки логирования и экспорты Pub/Sub для бокового перемещения |
| GCP | foxmapper | Запустить FoxMapper (анализ IAM на основе графов) для обнаружения путей повышения привилегий |
| GCP | logging-enum | Сканировать записи Cloud Logging на наличие конфиденциальных данных (учетные данные, токены, PII) |
| GCP | bigquery-enum | Сканировать наборы данных, таблицы и столбцы BigQuery на наличие индикаторов конфиденциальных данных |
| GCP | bigtable-enum | Сканировать экземпляры Bigtable, таблицы и семейства столбцов на наличие индикаторов конфиденциальных данных |
| GCP | spanner-enum | Сканировать схемы базы данных Spanner на наличие конфиденциальных имен таблиц и столбцов |
Как CloudFox сравнивается с ScoutSuite, Prowler, модулем AWS Compliance от Steampipe, AWS Security Hub и т.д.
CloudFox не создает никаких оповещений или обнаружений и не проверяет ваше окружение на соответствие базовому уровню или эталону. Вместо этого он просто позволяет вам быть более эффективными во время вашей ручной деятельности по тестированию на проникновение. Он дает вам информацию, которая вам, вероятно, понадобится для проверки того, возможен ли путь атаки или нет.
Почему я вижу ошибки в некоторых командах CloudFox?
Вы всегда можете заглянуть в файл ~/.cloudfox/cloudfox-error.log, чтобы получить больше информации об ошибках.
endpointsendpointsiam-simulator и настоятельно рекомендуемый инструмент-партнер для неё.permissions.--userdata в команде instances, команды permissions и многих других.inventory и в целом для CloudFox как проекта.