サポートを受ける場所: Rhino Security Labs Discord、または Stack Overflow
問題を提出する場所: https://github.com/RhinoSecurityLabs/pacu/issues
管理者: Rhino Security Labs
Pacu は、クラウド環境に対する攻撃的なセキュリティ テストのために設計された、オープンソースの AWS 活用フレームワークです。 Rhino Security Labs によって作成および保守されている Pacu を使用すると、ペネトレーション テスターはモジュールを使用して機能を簡単に拡張し、AWS アカウント内の設定の欠陥を悪用できます。現在のモジュールでは、ユーザー権限昇格、IAM ユーザーのバックドア、脆弱な Lambda 関数への攻撃など、さまざまな攻撃が可能になります。
Pacu は、少数の Python ライブラリをインストールするのに Python3.7 以降と pip3 のみを必要とするため、かなり軽量なプログラムです。
> pip3 install -U pip > pip3 install -U pacu > pacu
より詳細で使いやすい一連のユーザー手順については、Wiki のインストール ガイドを参照してください。
$ docker run -it rhinosecuritylabs/pacu:latest
$ docker run -it --entrypoint /bin/sh rhinosecuritylabs/pacu:latest
警告: このコマンドを実行すると、起動時にローカルの AWS 設定ファイルが Docker コンテナにマウントされます。これは、コンテナにアクセスできるすべてのユーザーがホスト コンピューターの AWS 認証情報にアクセスできることを意味します。
$ docker run -it -v ~/.aws:/root/.aws rhinosecuritylabs/pacu:latest
Pacu を初めて起動すると、新しいセッションを開始して名前を付けるように求められます。このセッションは、AWS キー ペアと、さまざまなモジュールの実行から取得されたデータを保存するために使用されます。 Pacu では、それぞれ独自の AWS キーとデータのセットを持つ異なるセッションをいくつでも持つことができ、いつでもセッションを再開できます (ただし、現在セッション間を切り替えるには再起動が必要です)。
モジュールには AWS キーが必要です。AWS キーは AWS 環境への最小限のアクセスを許可し、アクセス キー ID とシークレット アクセス キーで構成されます。セッションのキーを設定するには、 set_keys
コマンドを使用し、プロンプトに従ってキーのエイリアス (参照用のニックネーム)、AWS アクセス キー ID、AWS シークレット アクセス キー、および AWS セッション トークン (使用している場合) を入力します。 )。
行き詰まった場合は、 help
使用可能なコマンドのリストが表示されます。
list
現在のセッションで設定されたリージョンで利用可能なモジュールをリストします。
help module_name
指定されたモジュールに該当するヘルプ情報を返します。
run module_name
指定されたモジュールをデフォルトのパラメーターで実行します。
run module_name --regions eu-west-1,us-west-1
指定されたモジュールを eu-west-1 および us-west-1 リージョンに対して実行します (--regions 引数をサポートするモジュールの場合)
pacu --help
ヘルプ メニューを表示します
pacu --session
名を必要とするコマンドに使用するセッションを設定します。
pacu --list-modules
利用可能なすべてのモジュールをリストします (セッションは必要ありません)
pacu --pacu-help
、pacu ヘルプ ウィンドウをリストします (セッションは必要ありません)。
pacu --module-name
アクションを実行するモジュールの名前。モジュールを実行または情報を取得できます。
pacu --exec
--module-name
で指定されたモジュールを実行します
pacu --module-info
--module-name
で指定されたモジュールに関する情報を取得します
pacu --data
ローカル SQLAlchemy データベースにクエリを実行して、列挙された情報を取得します
pacu --module-args="
実行中のモジュールにオプションのモジュール引数を指定します
pacu --set-regions
セッションで使用するリージョンを設定します。リージョンをスペースで区切るか、すべてのリージョンの場合はall
を入力します。
pacu --whoami
現在のユーザーに関する情報を取得します
Pacu はさまざまなプラグイン モジュールを使用して、AWS 環境内での攻撃者の列挙、権限昇格、データ漏洩、サービス悪用、ログ操作を支援します。新しいモジュールへの貢献やアイデアは大歓迎です。
継続的な AWS 製品開発に歩調を合わせるために、私たちは拡張性を念頭に置いて Pacu をゼロから設計しました。共通の構文とデータ構造により、モジュールの構築と拡張が容易になります。AWS リージョンを指定したり、モジュール間で冗長な権限チェックを行ったりする必要はありません。 ローカル SQLite データベースは、取得したデータの管理と操作に使用され、API 呼び出し (および関連ログ) を最小限に抑えます。レポートと攻撃の監査もフレームワークに組み込まれています。 Pacu は、コマンドのログ記録とエクスポートを通じて文書化プロセスを支援し、テスト プロセスのタイムラインの構築を支援します。
私たちは、Pacu フレームワーク自体のバグ レポート、さまざまなモジュールのテストとフィードバック、そしてフレームワークの改善に役立つ重要なフィードバックをいつでも喜んで受け取ります。使用、テスト、改善を通じて、または単に情報を広めることによって Pacu をサポートしていただければ、非常に感謝します。
Pacu Framework 自体に直接貢献することに興味がある場合は、コード規約と git-flow ノートに関する貢献ガイドラインをお読みください。
Pacu 用に独自のモジュールを作成することに興味がある場合は、モジュール開発 wiki ページをチェックしてください。新しい機能を開発する際は、ぜひご連絡ください。Pacu に付属するコア コレクションに新しいモジュールを追加したいと考えています。
インターフェイスの書式設定を改善する
データベースの前方移行とバージョン追跡
複雑なモジュール実行チェーンを簡単に使用できるようにする「攻撃プレイブック」
カラーコンソール出力
モジュールのドライラン機能
スタンドアロン構成ファイルの使用を許可する
プラグインアーキテクチャの改善
Pacu は OSX と Linux で正式にサポートされています。
Pacu はオープンソース ソフトウェアであり、BSD-3 条項ライセンスとともに配布されます。
Pacu の脆弱性については、電子メール [email protected] で直接当社に報告してください。
Pacu は、各セッションのフォルダー内にエラー ログを作成するだけでなく、セッション外エラーのグローバル エラー ログもメイン ディレクトリに作成されます。可能であれば、これらのログをバグ レポートに含めてください。これにより、デバッグ プロセスが大幅に簡素化されます。
機能リクエスト、アイデア、またはバグを報告する場合は、ここに送信してください。
トレースバックや再現手順など、発見したバグを再現するのに十分な説明を含めてください。また、新しいバグ レポートを提出する前に、他のバグ レポートがないか確認してください。重複して提出しないでください。
ウォークスルーと完全なドキュメントについては、Pacu wiki を参照してください。
理由を問わず、ぜひご連絡をお待ちしております。 Rhino Security Labs Discord にご連絡ください。
私たちの知る限り、Pacu の機能は AWS 利用規約に準拠していますが、柔軟でモジュール式のツールであるため、これがあらゆる状況で当てはまることを保証することはできません。 Pacu の使用方法が AWS 利用規約に準拠していることを確認するのは、完全にお客様の責任です。
使用する AWS のサービスと計画したテストの内容によっては、実際にインフラストラクチャに対して Pacu を実行する前に、ペネトレーション テストに関する AWS カスタマー サポート ポリシーを確認する必要がある場合があります。
他の侵入テスト ツールと同様に、環境外で Pacu を使用する前に適切な許可を取得するのはユーザーの責任です。
Pacu はまったく保証のないソフトウェアです。 Pacu を使用すると、その結果生じるすべての結果に対して全責任を負うことになります。