Commando VM 2.0: カスタマイズ、コンテナ、Kali, Oh My!

Complete Mandiant Offensive Virtual Machine (「 Commando VM 」) は、2019 年初頭に Black Hat Asia Arsenal でデビューしたとき、侵入テスト コミュニティを席巻しました。 1.0 リリースは、140 以上のツールを搭載して前進しました。さて、今回は Black Hat USA Arsenal 2019 での素晴らしいリリースのために再び戻ってきました!この 2.0 リリースでは、コミュニティに耳を傾け、いくつかの新しい必須機能を実装しました: Kali Linux、Docker コンテナー、およびパッケージのカスタマイズ。

Commando VM について

侵入テスターは通常、Active Directory 環境を評価する際に、Windows マシンの独自のバリアントを使用します。 Commando VM は、内部侵入テストを実行するための頼りになるプラットフォームになるように特別に設計されています。 Commando VM を使用する利点には、Windows と Active Directory のネイティブ サポート、VM をコマンド アンド コントロール (C2) フレームワークのステージング領域として使用すること、ネットワーク共有をより簡単に (そしてインタラクティブに) 参照できること、 PowerViewBloodHoundなどのツールを使用せずに使用できることが含まれます。出力ファイルをクライアント アセットに配置することについて心配する必要はありません。

Commando VM はBoxstarterChocolatey 、およびMyGetパッケージを使用してソフトウェアをインストールし、侵入テストをサポートするための多くのツールとユーティリティを提供します。 170 以上のツールがあり、増え続けている Commando VM は、すべてのペネトレーション テスターとレッド チームにとって事実上の Windows マシンになることを目指しています。

最近の更新

2019 年 3 月の Black Hat Asia Arsenal での最初のリリース以来、Commando VM は、新しいツールやバグ修正を含む 3 つの追加の更新を受け取りました。 GitHub で 61 件の問題をクローズし、26 個の新しいツールを追加しました。バージョン 2.0 は、3 つの主要な新機能、追加のツール、バグ修正などをもたらします。

 

カリ Linux

2016 年、Microsoft はWindows Subsystem for Linux (WSL) をリリースしました。それ以来、ペンテスターはこの機能を活用して、Windows システムからより多くの生産性を引き出すことを試みてきました。実行する必要がある仮想マシンの数が少ないほど、優れています。 WSL を使用すると、Windows ストアから Linux ディストリビューションをインストールし、ターミナルで一般的な Linux コマンドを実行できます。たとえば、SSH、MySQL、または Apache サーバーの起動、一般的なスクリプト言語による日常的なタスクの自動化、同じ Windows システム内での他の多くの Linux アプリケーションの利用などです。 .

2018 年 1 月、Offensive Securityは WSL での Kali Linux のサポートを発表しました。 2.0 リリースにより、Commando VM は WSL で Kali Linux を正式にサポートします。 Kali を最大限に活用するために、Linux GUI 全体を Windows デスクトップに表示できる X サーバーであるVcXsrvも含めました (図 1)。 Linux GUI を表示してウィンドウを Windows に渡す方法については、以前に Offensive Securityやその他の専門家によって文書化されていましたが、これらを組み合わせて GUI と、 Terminator (図 2) やDirBuster (図3)。

 

VcXsrv を使用した WSL 上の Kali XFCE

図 1: VcXsrv を使用した WSL 上の Kali XFCE

 

Commando VM のターミネーター – VcXsrv を使用した Kali WSL

図 2: Commando VM 上のターミネーター – VcXsrv を使用した Kali WSL

 

Commando VM 上の DirBuster – VcXsrv を使用した Kali WSL

図 3: Commando VM 上の DirBuster – VcXsrv を使用した Kali WSL

ドッカー

Docker は、侵入テスト コミュニティ内でますます人気が高まっています。ペンテストに Docker を使用した興味深い機能について詳しく説明しているブログ投稿が複数あります。その人気に基づいて、 Docker は 2019 年 3 月の 1.0 リリース以来、私たちのロードマップにあり、現在、Commando VM 2.0 のリリースでサポートされています。 AmassSpiderFootなどのツールをプルし、各ツールのコンテナーを起動するスクリプトを提供します。図 4 は、Docker 内で実行されている SpiderFoot の例を示しています。

 

Docker で実行されている Impacket コンテナー

図 4: Docker で実行されている Impacket コンテナー

Amass などのコマンド ライン Docker コンテナー用に、Docker を介して Amass コマンドを自動的に実行する PowerShell スクリプトを作成しました。このスクリプトは PATH にも追加されるため、ユーザーはどこからでもamassを呼び出すことができます。このスクリプトを図 5 に示します。Docker でより創造的なことを行うために、ユーザーが独自のスクリプトを作成することをお勧めします。

 

Amass.ps1 スクリプト

図 5:Amass.ps1 スクリプト

このスクリプトは、ショートカットが開かれたときにも実行されます。

 

PowerShell スクリプトを介して実行される Docker コンテナーを収集します。

図 6: PowerShell スクリプトを介して実行された Amass Docker コンテナー

カスタマイズ

誰もが常にすべてのツールを必要とするわけではありません。一部のツールは、インストール プロセスを数時間延長したり、数ギガバイトのハード ドライブ領域を占有したり、不適切なライセンスやユーザー契約を伴う場合があります。一方、人気のあるFLARE VM内で利用可能な追加のリバース ツールをインストールしたい場合もあります。または、 chocolateyコミュニティ フィードから入手できる多くの代替テキスト エディターまたはブラウザーのいずれかを使用することをお勧めします。いずれにせよ、必要なパッケージのみを選択的にインストールするオプションを提供したいと考えています。カスタマイズにより、あなたとあなたの組織は、プロファイルを共有または配布して、チーム全体が同じ VM 環境を持っていることを確認することもできます。これらのシナリオに対応するための Commando 2.0 の最後の大きな変更は、インストールのカスタマイズのサポートです。 デフォルトのプロファイルを使用し、必要に応じてツールを削除または追加することをお勧めします。方法については、次のセクションをお読みください。

カスタム インストールを作成する方法

開始する前に、Commando VM の独自のエディションをカスタマイズした後、 cup allコマンドは、カスタマイズされたディストリビューション内に事前にインストールされたパッケージのみをアップグレードすることに注意してください。私たちのチームが将来リリースする新しいパッケージは、 cup allで自動的にインストールまたはアップグレードされません。これらの新しいパッケージは、必要に応じて、 cinstまたはchoco installコマンドを使用して手動でインストールするか、新しいインストールの前にプロファイルに追加することでいつでもインストールできます。

簡単な説明

  1. https://github.com/fireeye/commando-vmからダウンロード フォルダーに zip をダウンロードします。
  2. zip を解凍し、${Env:UserProfile}Downloadscommando-vm-mastercommando-vm-masterprofile.json ファイルを編集して、ツールを削除するか、「packages」セクションにツールを追加します。ツールは、パッケージ リストまたはChocolatey リポジトリから入手できます。
  3. 管理 PowerShell ウィンドウを開き、スクリプトの実行を有効にします。
    • Set-ExecutionPolicy 無制限 -f
  4. 解凍したプロジェクト ディレクトリに移動します。
    • cd ${Env:UserProfile}Downloadscommando-vm-mastercommando-vm-master
  5. -profile_file 引数を指定してインストールを実行します。
    • .install.ps1 -profile_file .profile.json

詳細な手順

独自のディストリビューションのカスタマイズを開始するには、パブリックGitHub リポジトリから次の 3 つのアイテム*が必要です。

  1. 私たちのinstall.ps1スクリプト
  2. サンプルのprofile.json
  3. インストール テンプレート。 commandovm.win10.install.fireeye の使用をお勧めします。

*注意: プロジェクトの ZIP を GitHub からダウンロードすると、3 つのアイテムすべてが含まれます。

インストール スクリプトは、JSON プロファイルを指定するオプションの-profile_file引数をサポートするようになりました。 -profile_file引数を指定せずに.install.ps1を実行すると、デフォルトの Commando VM ディストリビューションがインストールされます。 Commando VM のエディションをカスタマイズするには、JSON 形式でプロファイルを作成し、それを-profile_file引数に渡す必要があります。サンプルのprofile.jsonプロファイルを調べてみましょう (図 7)。

 

profile.json プロファイル

図 7: profile.json プロファイル

この JSON プロファイルは、インストーラーが使用する多くの環境変数を指定するenvディクショナリで始まります。これらの環境変数は、デフォルト値のままにすることができ、そのままにしておく必要があります。サポートされている環境変数のリストは次のとおりです。

  • VM_COMMON_DIRは、共有ライブラリを VM にインストールする場所を指定します。インストールが正常に完了すると、この場所にFireEyeVM.Commonディレクトリが見つかります。これには、パッケージで共有される PowerShell モジュールが含まれています。
  • TOOL_LIST_DIRTOOL_LIST_SHORTCUTは、それぞれ、スタート メニュー内にインストールされているすべてのパッケージのリストとデスクトップ ショートカットの名前を含むディレクトリを指定します。
  • RAW_TOOLS_DIR環境変数は、いくつかのツールがインストールされる場所を指定します。 Chocolatey はデフォルトで%ProgramData%Chocolateylibにツールをインストールします。この環境変数は、デフォルトで%SystemDrive%Toolsを指しているため、コマンド ラインでいくつかのツールに簡単にアクセスできます。
  • 最後に、 TEMPLATE_DIRは、 install.ps1がディスク上にある場所に相対的なテンプレート パッケージ ディレクトリを指定します。 GitHub リポジトリでテンプレートとして入手できるcommandovm.win10.installer.fireeyeパッケージを使用することを強くお勧めします。 VM が Windows 7 を実行している場合は、適切なcommandovm.win7.installer.fireeyeパッケージに切り替えてください。 「ハッキー」で冒険好きな方は、テンプレートのtoolsディレクトリ内にあるchocolateyinstall.ps1およびchocolateyuninstall.ps1スクリプトを変更して、インストーラをさらにカスタマイズしてください。適切なテンプレートとは、(1) 適切にフォーマットされたnuspecファイル、(2) (3) Chocolateyinstall.ps1ファイル、(4) Chocolateyuninstall.ps1ファイルを含む「tools」フォルダーの 5 つ以上を含むフォルダーであることに注意してください。ファイル、および (5) profile.jsonファイル。テンプレートを使用する場合、変更する必要があるのは packages.json ファイルだけです。これを行う最も簡単な方法は、GitHub から commando-vm zip ファイルをダウンロードして抽出することです。

パッケージ変数を設定すると、独自のディストリビューションにインストールするパッケージを指定できるようになりました。一部のパッケージは、追加のインストール引数を受け入れます。 openvpn.fireeyeエントリを見ると、この例を確認できます。フィードから入手できるパッケージの完全なリストについては、パッケージ リストを参照してください。

プロファイルの変更が完了すると、インストールの準備が整います。昇格された特権でpowershell.exeを実行し、次のコマンドを実行して Commando VM の独自のエディションをインストールします ( myprofile.jsonという名前のプロファイルのバージョンを保存したと仮定します (図 8))。

 

例 myprofile.json

図 8: myprofile.json の例

次にmyprofile.jsonファイルを組織全体で共有および配布して、Commando VM をインストールするときに全員が同じ VM 環境を使用できるようにします。

結論

Commando VM は当初、すべてのペネトレーション テスターとレッド チームの事実上の Windows マシンになるように設計されていました。現在、Kali Linux のサポート、Docker、およびインストールのカスタマイズが追加されているため、これが 1 つになることを願っています。 すべてのペネトレーションテスターとレッドチーム向けのマシン。ツールの完全なリストとインストール スクリプトについては、 Commando VM GitHub リポジトリを参照してください。ユーザーからのフィードバックに対応し、ツールや機能を追加し、この Windows 攻撃プラットフォームにさらに多くの拡張機能を作成できることを楽しみにしています。

参照: https://www.mandiant.com/resources/blog/commando-vm-customization-containers-kali

コメント

タイトルとURLをコピーしました