
Автоматизация ситуационной осведомленности для тестов на проникновение в облако.
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 и скомпилируйте из исходников. ```
**Вариант 5:** Тестирование исправления ошибки ```
git clone [email protected]:BishopFox/cloudfox.git
git checkout seth-dev
go build .
./cloudfox [rest of the command options]
-l, или передать все сохраненные профили с помощью флага -a.SecurityAudit + Пользовательская политика CloudFoxДополнительные примечания к политикам (по состоянию на 09/2022):
gcloud auth application-default login)Минимальные разрешения (один проект):
Для базового перечисления одного проекта роль roles/viewer предоставляет доступ на чтение к большинству ресурсов (включая просмотр журналов, мониторинг и вычислительные/сетевые ресурсы).
Полные разрешения (на уровне организации):
Для тщательной оценки безопасности во всей организации:
Примечание: Базовая роль
roles/viewerвключает разрешения отroles/logging.viewer,roles/monitoring.viewerиroles/compute.networkViewer, поэтому их не нужно предоставлять отдельно.
API должны быть включены в каждом проекте, который вы хотите оценить. API GCP действуют в рамках проекта.
Для подробных инструкций по настройке см. Руководство по настройке GCP.
Для подробной документации по каждой команде GCP см. GCP Commands Wiki.| Провайдер | Название команды | Описание | - | - | - | | GCP | whoami | Отобразить контекст личности для аутентифицированного пользователя/сервисного аккаунта GCP | | GCP | iam | Перечислить субъектов IAM GCP в организациях, папках и проектах | | GCP | permissions | Перечислить ВСЕ разрешения для каждой сущности IAM с полным развёртыванием наследования | | GCP | serviceaccounts | Перечислить сервисные аккаунты GCP с анализом безопасности | | GCP | service-agents | Перечислить управляемые Google сервисные агенты | | GCP | keys | Перечислить все ключи GCP (ключи SA, ключи HMAC, ключи API) | | GCP | resource-iam | Перечислить политики IAM на ресурсах GCP (bucket'ы, наборы данных, секреты и т.д.) | | GCP | domain-wide-delegation | Найти сервисные аккаунты с делегированием на уровне домена в Google Workspace | | GCP | privesc | Выявить пути повышения привилегий в проектах GCP | | GCP | hidden-admins | Выявить субъектов, которые могут изменять политики IAM (скрытые администраторы) | | GCP | identity-federation | Перечислить Workload Identity Federation (внешние идентификаторы) | | GCP | instances | Перечислить экземпляры Compute Engine GCP с конфигурацией безопасности | | GCP | gke | Перечислить кластеры GKE с анализом безопасности | | GCP | cloudrun | Перечислить сервисы и задания Cloud Run с анализом безопасности | | GCP | | Перечислить Cloud Functions GCP с анализом безопасности | | GCP | | Перечислить приложения App Engine и конфигурации безопасности | | GCP | | Перечислить среды Cloud Composer | | GCP | | Перечислить кластеры Dataproc | | GCP | | Перечислить задания и конвейеры Dataflow | | GCP | | Перечислить ноутбуки Vertex AI Workbench | | GCP | | Перечислить Workload Identity GKE и Workload Identity Federation | | GCP | | Быстрая инвентаризация ресурсов — работает без Cloud Asset API | | GCP | | Перечислить bucket'ы Cloud Storage GCP с конфигурацией безопасности | | GCP | | Перечислить bucket'ы GCS на наличие чувствительных файлов (учётные данные, секреты, конфиги) | | GCP | | Перечислить наборы данных и таблицы BigQuery GCP с анализом безопасности | | GCP | | Перечислить экземпляры Cloud SQL с анализом безопасности | | GCP | | Перечислить экземпляры и базы данных Cloud Spanner | | GCP | | Перечислить экземпляры и таблицы Cloud Bigtable | | GCP | | Перечислить экземпляры Filestore NFS | | GCP | | Перечислить экземпляры Memorystore (Redis) | | GCP | | Перечислить сети VPC | | GCP | | Перечислить сети VPC и правила брандмауэра с анализом безопасности | | GCP | | Перечислить балансировщики нагрузки | | GCP | | Перечислить зоны и записи Cloud DNS с анализом безопасности | | GCP | | Перечислить все сетевые конечные точки (внешние и внутренние) с IP, портами и именами хостов | | GCP | | Перечислить конечные точки Private Service Connect и вложения сервисов | | GCP | | Визуализировать топологию сети VPC, отношения пиринга и границы доверия | | GCP | | Перечислить VPC Service Controls | | GCP | | Перечислить уровни доступа Access Context Manager | | GCP | | Перечислить политики безопасности Cloud Armor и найти уязвимости | | GCP | | Перечислить конфигурации Identity-Aware Proxy | | GCP | | Перечислить конфигурации BeyondCorp Enterprise | | GCP | | Перечислить ключевые кольца и криптоключи Cloud KMS с анализом безопасности | | GCP | | Перечислить секреты GCP Secret Manager с конфигурацией безопасности | | GCP | | Перечислить SSL/TLS сертификаты и найти истекающие или неправильно настроенные сертификаты | | GCP | | Перечислить политики организации и выявить уязвимости безопасности | | GCP | | Перечислить GCP Artifact Registry и Container Registry с конфигурацией безопасности | | GCP | | Перечислить триггеры и сборки Cloud Build | | GCP | | Перечислить Cloud Source Repositories | | GCP | | Перечислить задания Cloud Scheduler с анализом безопасности | | GCP | | Перечислить темы и подписки Pub/Sub с анализом безопасности | | GCP | | Перечислить приёмники и метрики Cloud Logging с анализом безопасности | | GCP | | Перечислить иерархию организации GCP | | GCP | | Перечислить Cloud Asset Inventory с опциональным анализом зависимостей | | GCP | | Перечислить политики резервного копирования, защищённые ресурсы и выявить пробелы в резервировании | | GCP | | Отобразить пути латерального перемещения, векторы кражи учётных данных и возможности для перехода | | GCP | | Выявить пути эксфильтрации данных, потенциальные векторы и отсутствие усиления безопасности | | GCP | | Найти ресурсы с доступом allUsers/allAuthenticatedUsers в 16 сервисах GCP | | GCP | | Проанализировать межпроектные привязки IAM, приёмники логирования и экспорты Pub/Sub для латерального перемещения | | GCP | | Запустить FoxMapper (графовый анализ IAM) для обнаружения путей повышения привилегий | | GCP | | Сканировать записи Cloud Logging на наличие чувствительных данных (учётные данные, токены, PII) | | GCP | | Сканировать наборы данных, таблицы и столбцы BigQuery на наличие индикаторов чувствительных данных | | GCP | | Сканировать экземпляры Bigtable, таблицы и семейства столбцов на наличие индикаторов чувствительных данных | | GCP | | Сканировать схемы баз данных Spanner на наличие чувствительных имён таблиц и столбцов |
Как CloudFox соотносится с ScoutSuite, Prowler, AWS Compliance Module от Steampipe, AWS Security Hub и т.п.?
CloudFox не создаёт оповещений или находок и не проверяет вашу среду на соответствие базовому уровню или стандарту. Вместо этого он просто позволяет вам работать эффективнее во время ручного тестирования на проникновение. Он предоставляет информацию, которая, скорее всего, понадобится вам для проверки, возможен ли тот или иной путь атаки.
Почему я вижу ошибки в некоторых командах CloudFox?
Вы всегда можете посмотреть файл ~/.cloudfox/cloudfox-error.log, чтобы получить больше информации об ошибках.
endpointsendpointsiam-simulatorpermissions--userdata в команде instances, команды permissions и многих других.| Политика | Примечания |
|---|
| Пользовательская политика 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, но если вам предоставили такой уровень доступа как пентестеру, это, вероятно, само по себе должно быть находкой :) |
| Область | Роль | Назначение |
|---|
| Организация | 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 |
| 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 | Анализ безопасности данных |
| Provider | Command Name | Description |
|---|
| AWS | all-checks | Запустить все остальные команды с разумными настройками по умолчанию. Вам все равно стоит изучить нестандартные опции каждой команды, но это отличное место для начала. |
| AWS | access-keys | Выводит активные ключи доступа для всех пользователей. Полезно для перекрестной проверки найденного ключа и определения, к какому аккаунту в рамках оценки он относится. |
| AWS | api-gw | Выводит конечные точки API Gateway и предоставляет пользовательские команды curl, включая токены API, если они хранятся в метаданных. |
| AWS | buckets | Выводит корзины в аккаунте и предоставляет удобные команды для их дальнейшего изучения. |
| AWS | cape | Перечисляет пути повышения привилегий между аккаунтами. Требует предварительного запуска pmapper |
| AWS | cloudformation | Выводит стеки CloudFormation в аккаунте. Генерирует loot-файл с деталями стека, параметрами стека и выводом стека — ищите секреты. |
| AWS | codebuild | Перечисляет проекты CodeBuild |
| AWS | databases | Перечисляет базы данных RDS. Получите loot-файл со строками подключения. |
| AWS | ecr | Выводит URI последнего отправленного образа из всех репозиториев. Используйте loot-файл, чтобы загрузить выбранные образы с помощью docker/nerdctl для проверки. |
| AWS | ecs-tasks | Выводит все задачи ECS. Возвращает список задач ECS с указанием кластера, определения задачи, экземпляра контейнера, типа запуска и связанного участника IAM. |
| AWS | eks | Выводит все кластеры EKS, проверяет, открывают ли они свою конечную точку публично, и проверяет связанные роли IAM, прикрепленные для доступа к кластеру или группе узлов. Генерирует loot-файл с командой aws eks udpate-kubeconfig, необходимой для подключения к каждому кластеру. |
| AWS | elastic-network-interfaces | Выводит всю информацию о ENI. Возвращает список ID ENI, типа, внешнего IP, частного IP, VPCID, прикрепленного экземпляра и описания. |
| 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 и профили экземпляров. Генерирует loot-файлы, которые можно передать в 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 | Выводит секреты из Secrets Manager и SSM. Ищите интересные секреты в списке, а затем узнайте, у кого есть к ним доступ, используя cloudfox iam-simulator и/или pmapper. |
| AWS | sns | Эта команда перечисляет все темы SNS и предоставляет команды для подписки на тему или отправки сообщений в тему (при наличии необходимых разрешений). Эта команда работает только с темами, а не с функцией SMS. Эта команда также пытается обобщить политики ресурсов тем, если они существуют. |
| AWS | sqs | Эта команда перечисляет все очереди SQS и предоставляет команды для получения сообщений из очереди и отправки сообщений в очередь (при наличии необходимых разрешений). Эта команда также пытается обобщить политики ресурсов очередей, если они существуют. |
| AWS | tags | Выводит все ресурсы с тегами и все теги. Это можно использовать аналогично inventory как еще один метод определения того, какие типы ресурсов существуют в аккаунте. |
| AWS | workloads | Выводит все вычислительные нагрузки и их роли. Сообщает, если какая-либо из ролей является администраторской (плохо) и если у вас есть локальные данные pmapper, сообщит, может ли какая-либо из ролей повысить привилегии до администратора (тоже плохо) |
| AWS | ds | Выводит все управляемые AWS каталоги и их атрибуты. Также обобщает текущие доверия с их направлениями и типами. |
| Provider | Command Name | Description |
|---|
| Azure | whoami | Отображает информацию о тенанте, подписках и группах ресурсов, доступных в вашем текущем сеансе Azure CLI. Это полезно для ситуационной осведомленности о том, какие идентификаторы тенанта и подписки использовать с другими подкомандами. |
| Azure | inventory | Отображает таблицу инвентаризации всех ресурсов по местоположению. |
| Azure | rbac | Выводит назначения ролей Azure RBAC на уровне подписки или тенанта |
| Azure | storage | Команда storage все еще находится в разработке. В настоящее время она отображает только ограниченные данные об учетных записях хранения |
| Azure | vms | Перечисляет полезную информацию для вычислительных экземпляров во всех доступных группах ресурсов и подписках |
inventory и CloudFox в целом.