Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CloudPrivs — クラウド認証情報からブルートフォーステストによって権限を特定する。 | Kitploit
ツール/GitHubGitHub/abstractclass/cloudprivs
特権昇格脆弱性分析情報収集ペネトレーションテストクラウドセキュリティ
GitHubabstractclass/cloudprivs

CloudPrivs

クラウド認証情報からブルートフォーステストによって権限を特定する。

リポジトリを見る
69226日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CloudPrivs

認証情報を手に入れた、さてどうする?

概要

CloudPrivs は、Boto3 などの SDK の既存の機能を活用して、すべてのクラウドサービスの権限をブルートフォースで調べ、特定の認証情報にどの権限が存在するかを判断するツールです。

このツールは、ペネトレーションテスター、レッドチーマー、その他のセキュリティ専門家にとって有用です。クラウドサービスは通常、特定の認証情報がどのような権限を持っているかを調べる方法を提供しておらず、サービスの数と操作の多さから手動で確認するのは困難な作業です。そのため、ある認証情報から権限昇格が可能かもしれないのに、単にその AWS 認証情報が Lambda を実行できることを知らないために気づかない、ということが起こり得ます。

インストール

現在 PyPi では利用できませんが、対応中です

Pip (簡易)

root@kitploit:~
git clone https://github.com/AbstractClass/CloudPrivs
cd CloudPrivs
python -m pip install -e .

これは仮想環境を使わない方法で、多くの Python プログラムを実行する場合には推奨されません。

Pip (推奨)

root@kitploit:~
git clone https://github.com/AbstractClass/CloudPrivs
cd CloudPrivs
python -m  venv venv/
./venv/bin/activate # Windows の場合は activate.ps1
python -m pip install -e .

Pyenv+virtualenv が利用可能な場合は以下のようにもできます:

root@kitploit:~
git clone https://github.com/AbstractClass/CloudPrivs
cd CloudPrivs
pyenv virtualenv CloudPrivs
pyenv local CloudPrivs
python -m pip install -e .

使用方法

cloudprivs [プロバイダ] [引数]

プロバイダ

現在利用可能なプロバイダは AWS のみですが、GCP にも対応中です。協力していただける場合は、#カスタマイズ を参照してください。

AWS

root@kitploit:~
オプション:
  -v, --verbose                出力に失敗およびエラーとなったテストを表示する
  -s, --services TEXT          利用可能な全サービスではなく、指定されたサービスのみテストする
  -p, --profile TEXT           スキャンする AWS プロファイル名。指定しない場合は環境変数が使用される
  -t, --custom-tests FILENAME  カスタムテストの YAML ファイルの場所。詳細はドキュメントを参照
  -r, --regions TEXT           リージョンに一致させるフィルターのリスト。例: "us", "eu-west", "ap-north-1"
  --help                       このメッセージを表示して終了する

ヒント

--region と --service には複数の引数を指定できますが、その都度フラグを付ける必要があります。例: cloudprivs aws -r us -r eu -s ec2 -s lambda。私もこの仕様は好きではありませんが、Click の制限であり、まだ回避策が見つかっていません。

region フラグは部分一致をサポートしていることに注意してください。一般的な引数としては、一般的なリージョンのみをカバーするために -r us -r eu のようにします。

結果はリージョンごとにグループ化されて表示され、各行にテストケースとその結果が含まれます。

エラー

テスト中に予期しないエラーが発生した場合、それらは発生時に stderr に出力されます。そのため、出力の流れが中断される可能性があります。表示したくない場合は、stderr をリダイレクトできます。

仕組み

WeirdAAL のように各テストケースを手動で記述する他のツールとは異なり、CloudPrivs は Boto3 SDK に直接クエリを実行し、利用可能なすべてのサービスと、各サービスの利用可能なすべてのリージョンを動的に生成します。

完全なリストが生成されると、各関数がデフォルトで引数なしで呼び出されます(ただし、操作ごとにカスタム引数を追加するオプションもあります。詳細は #カスタマイズ を参照)。

注意: 一部の AWS 関数は呼び出し時にコストが発生する可能性があります。私は誤ってコストが発生するのを防ぐために、get_、list_、describe_ で始まる操作のみを許可しています。これは私自身のテストでは安全であるように見えますが、注意して使用してください。enumerate-iam のような他のツールでも安全であるように見えますが、すべての関数を(たとえ引数なしで)呼び出したときに誤ってコストが発生しないことを保証するものではありません。

カスタマイズ

CloudPrivs は以下の 2 つの領域で簡単な拡張/カスタマイズをサポートしています:

  • プロバイダ
  • カスタムテスト

プロバイダ

新しいプロバイダ(例: GCP)を実装するのは簡単です。

  1. テストを実行するロジックを記述します。命名規則や構造は問いません。
  2. CloudPrivs/providers フォルダの下に、新しいプロバイダ用のフォルダを作成します(例: 'gcp')。
  3. CloudPrivs/providers/__init__.py ファイルで、__all__ 変数にプロバイダを追加します。フォルダ名と一致している必要があります。
  4. プロバイダフォルダ内に cli.py というファイルを作成します。
  5. Click を使用してプロバイダの CLI を作成し、CLI のエントリ関数の名前を cli にします(参考として AWS プロバイダを参照してください)。
  6. 完了です!cloudprivs <プロバイダ> を実行すると、作成した CLI が表示されるはずです。

カスタムテスト

AWS プロバイダは、AWS 関数を呼び出す際の引数の注入をサポートしています。この機能は、AWS 関数を呼び出すために引数が必要であり、場合によってはこれらの引数が固定変数であることがあるため提供されています。つまり、ダミー変数を提供できればテストのカバレッジを向上させることができます。また、dryrun=true のような引数を注入して呼び出しを高速化することもできます。

カスタムテストは、cloudprivs/providers/aws/CustomTests.yaml にある YAML ファイルに保存されます。

YAML の構造は次のとおりです:

root@kitploit:~
---
<サービス名>:
    - <関数名>:
        args:
            - <引数1>
            - <引数2>
        kwargs:
            arg1: val1
            arg2: val2

注意: 関数名は部分一致で機能します。つまり、「describe_」のような関数名を使用すると、指定された引数が「describe_」を含むすべての関数に注入されます。ルールは「最初に見つかったもの」ベースでマッチングされるため、汎用ルールをオーバーライドしたい場合は、より具体的なルールを汎用ルールの上に配置してください。例:

root@kitploit:~
ec2:
    - describe_instances
        args:
        kwargs:
            DryRun: True
            NoPaginate: True
    - describe_
        args:
        kwargs:
            DryRun: True

新しいルールの追加

新しいルールは、既存の CustomTests.yaml ファイルを変更するか、新しい YAML ファイルを作成して --custom-tests フラグで指定することで追加できます。新しいファイルは既存のテストファイルとマージされ、重複する値は指定されたファイルが優先されて上書きされます。

ライブラリとしての使用

AWS

AWS プロバイダは、他のツールに統合するためのライブラリとして記述されています。次のように使用できます:

root@kitploit:~
import boto3
from cloudprivs.providers.aws import service
from concurrent.futures import ThreadPoolExecutor

session = boto3.Session('default')
with ThreadPoolExecutor(15) as executor:
  iam = service.Service('iam', session, executor=executor)
  scan_results = iam.scan() # エグゼキュータにリストされたすべてのリージョンをカバー(デフォルトでは利用可能なすべてのリージョン)
  formatted_results = iam.pretty_print_scan(scan_results)
  print(formatted_results)

すべてコード内で完全にドキュメント化されているので、簡単に解析できるはずです。

ロードマップ

このツールは機能していますが、完成にはほど遠いです。私は積極的に新機能に取り組んでおり、貢献を受け付けています。お気軽に Issue/機能リクエストを開き、PR を送ってください。

計画中の機能

  • PyPi へのツール追加
  • GCP サポート
  • JSON 出力
  • 単体テストの追加
  • Golang への移行
ツールをダウンロード