
クラウド侵入テストにおける状況認識の自動化。
CloudFoxは、未知のクラウド環境での状況認識を支援します。これは、ペネトレーションテスターやその他の攻撃的セキュリティ専門家がクラウドインフラストラクチャ内の悪用可能な攻撃経路を見つけるのを支援するために作成されたオープンソースのコマンドラインツールです。
CLOUDFOX アップデート必須: (2025年12月):
cloudfoxを使用している場合、v1.17.0 以上を使用する必要があります。それ以前のバージョンはすべて、AWSの公開サービスマッピングファイルのフォーマット変更後、動作しなくなりました。
概要
RedSec Discordサーバーに参加してください。
CloudFoxはモジュール式です(一度に1つのコマンドを実行できます)が、aws all-checksコマンドを使用すると、適切なデフォルト設定で他のawsコマンドをまとめて実行できます:
cloudfox aws --profile [profile-name] all-checks

CloudFoxは、限られた読み取り専用権限を持つプリンシパルによって実行されるように設計されていますが、その目的は、シミュレートされた侵害シナリオ(別名、目標ベースのペネトレーションテスト)で悪用可能な攻撃経路を見つけるのを支援することです。
CloudFoxは、「発見された」認証情報で使用できます。これは、weirdAALやenumerate-iamを使用する方法と同様です。失敗したチェックは静かに失敗するため、返されたデータは、あなたの「発見された」認証情報がそれを取得するために必要なアクセス権を持っていることを意味します。
完全なドキュメントについては、wikiを参照してください。
| プロバイダ | 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カスタムポリシー追加のポリシーノート(2022年9月時点):
gcloud auth application-default login)最小限の権限(単一プロジェクト):
単一プロジェクトの基本的な列挙には、roles/viewer ロールでほとんどのリソースへの読み取りアクセスが提供されます(ログ、モニタリング、コンピュート/ネットワークの表示を含む)。
包括的な権限(組織全体):
組織全体にわたる徹底的なセキュリティ評価を行う場合:
注: 基本的な
roles/viewerロールにはroles/logging.viewer、roles/monitoring.viewer、roles/compute.networkViewerの権限が含まれているため、これらを個別に付与する必要はありません。
評価する各プロジェクトでAPIを有効にする必要があります。 GCP APIはプロジェクトスコープです。
詳細な設定手順については、GCPセットアップガイドを参照してください。
各GCPコマンドの詳細なドキュメントについては、GCPコマンドWikiを参照してください。| プロバイダー | コマンド名 | 説明 | - | - | - | | GCP | whoami | 認証されたGCPユーザー/サービスアカウントのIDコンテキストを表示 | | GCP | iam | 組織、フォルダ、プロジェクト全体でGCP IAMプリンシパルを列挙 | | GCP | permissions | 各IAMエンティティのすべての権限を、完全な継承展開を含めて列挙 | | GCP | serviceaccounts | GCPサービスアカウントをセキュリティ分析とともに列挙 | | GCP | service-agents | Google管理のサービスエージェントを列挙 | | GCP | keys | すべてのGCPキー(SAキー、HMACキー、APIキー)を列挙 | | GCP | resource-iam | GCPリソース(バケット、データセット、シークレットなど)のIAMポリシーを列挙 | | GCP | domain-wide-delegation | Google Workspaceへのドメイン全体の委任を持つサービスアカウントを検索 | | GCP | privesc | GCPプロジェクトにおける権限昇格パスを特定 | | GCP | hidden-admins | IAMポリシーを変更できるプリンシパル(隠れ管理者)を特定 | | GCP | identity-federation | ワークロードID連携(外部ID)を列挙 | | 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クラスタを列挙 | | GCP | | Dataflowジョブとパイプラインを列挙 | | GCP | | Vertex AI Workbenchノートブックを列挙 | | GCP | | GKEワークロードIDとワークロードID連携を列挙 | | GCP | | クイックリソースインベントリ - Cloud Asset APIなしで動作 | | GCP | | GCP Cloud Storageバケットをセキュリティ設定とともに列挙 | | GCP | | GCSバケット内の機密ファイル(認証情報、シークレット、設定)を列挙 | | GCP | | GCP BigQueryデータセットとテーブルをセキュリティ分析とともに列挙 | | 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 | | 16のGCPサービス全体でallUsers/allAuthenticatedUsersアクセスを持つリソースを検索 | | GCP | | 横移動のためのクロスプロジェクトIAMバインディング、ログシンク、Pub/Subエクスポートを分析 | | GCP | | FoxMapper(グラフベースのIAM分析)を実行し、権限昇格パスを発見 | | GCP | | Cloud Loggingエントリをスキャンし、機密データ(認証情報、トークン、PII)を検出 | | GCP | | BigQueryデータセット、テーブル、列をスキャンし、機密データの兆候を検出 | | GCP | | Bigtableインスタンス、テーブル、列ファミリーをスキャンし、機密データの兆候を検出 | | GCP | | Spannerデータベーススキーマをスキャンし、機密性の高いテーブル名と列名を検出 |
CloudFoxは、ScoutSuite、Prowler、SteampipeのAWSコンプライアンスモジュール、AWS Security Hubなどと比べてどうですか?
CloudFoxはアラートや検出結果を作成せず、ベースラインやベンチマークへの準拠をチェックしません。代わりに、手動のペネトレーションテスト活動中により効率的に作業できるようにするだけです。攻撃パスが可能かどうかを検証するために必要な情報を提供します。
一部のCloudFoxコマンドでエラーが表示されるのはなぜですか?
エラーの詳細については、~/.cloudfox/cloudfox-error.log ファイルをいつでも確認できます。
endpointsコマンドの着想endpointsコマンドの着想iam-simulatorコマンドの着想元であり、強く推奨されるパートナーpermissionsコマンドの着想instancesコマンドの--userdata機能、permissionsコマンドなどに着想を提供inventoryコマンドおよびCloudFox全般の着想| ポリシー | 備考 |
|---|
| 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 | (オプション)CloudFox操作用のAPI割り当てを管理 |
| 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 | データセキュリティ分析 |
| プロバイダ | コマンド名 | 説明 |
|---|
| AWS | all-checks | 合理的なデフォルトを使用して、他のすべてのコマンドを実行します。各コマンドのデフォルト以外のオプションも確認することをお勧めしますが、開始点としては最適です。 |
| AWS | access-keys | すべてのユーザーのアクティブなアクセスキーを一覧表示します。見つけたキーと、どのスコープ内アカウントに属するかを相互参照するのに便利です。 |
| AWS | api-gw | APIゲートウェイエンドポイントを一覧表示し、APIトークンがメタデータに保存されている場合、それらを含むカスタムcurlコマンドを提供します。 |
| AWS | buckets | アカウント内のバケットを一覧表示し、さらに調査するための便利なコマンドを提供します。 |
| AWS | cape | クロスアカウントの権限昇格パスを列挙します。最初に pmapper を実行する必要があります。 |
| AWS | cloudformation | アカウント内のCloudFormationスタックを一覧表示します。スタックの詳細、スタックパラメータ、スタック出力を含む戦利品ファイルを生成します - シークレットを探します。 |
| 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 ID、タイプ、外部IP、プライベートIP、VPC ID、アタッチされたインスタンス、説明のリストを返します。 |
| AWS | endpoints | さまざまなサービスからエンドポイントを列挙します。内部および外部の両方の位置からこれらのエンドポイントをスキャンして、認証が不要なもの、設定ミスがあるものなどを探します。 |
| AWS | env-vars | 環境変数を持つサービス(App Runner、ECS、Lambda、Lightsailコンテナ、SageMakerがサポートされています)から環境変数を取得します。機密性の高いシークレットを見つけた場合は、cloudfox iam-simulator と pmapper を使用して誰がそれらにアクセスできるかを確認します。 |
| AWS | filesystems | EFSおよびFSxファイルシステムを列挙し、クレデンシャルなしでマウントできる可能性があるもの(適切なネットワークアクセスがある場合)を確認します。たとえば、ec2: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 | whoami | 現在のAzure CLIセッションで利用可能なテナント、サブスクリプション、リソースグループに関する情報を表示します。これは、他のサブコマンドで使用するテナントIDとサブスクリプションIDを把握するのに役立ちます。 |
| Azure | inventory | すべてのリソースの場所ごとのインベントリテーブルを表示します。 |
| Azure | rbac | サブスクリプションまたはテナントレベルでのAzure RBACロールの割り当てを一覧表示します。 |
| Azure | storage | storageコマンドはまだ開発中です。現在はストレージアカウントに関する限られたデータのみを表示します。 |
| Azure | vms | 利用可能なすべてのリソースグループとサブスクリプション内のComputeインスタンスに関する有用な情報を列挙します。 |