当サイトの一部ページには、アフィリエイト・アドセンス・アソシエイト・プロモーション広告を掲載しています。

Amazonのアソシエイトとして、Security Akademeiaは適格販売により収入を得ています。

広告配信等の詳細については、プライバシーポリシーページに掲載しています。

消費者庁が、2023年10月1日から施行する景品表示法の規制対象(通称:ステマ規制)にならないよう、配慮して記事を作成しています。もし問題の表現がありましたら、問い合わせページよりご連絡ください。

参考:令和5年10月1日からステルスマーケティングは景品表示法違反となります。 | 消費者庁

M1/M2 Mac上でやられマシンを起動する【VulnHub編】

今回はVulnHubで提供されているやられ仮想マシンをUTMで起動する方法を紹介します。
この方法は応用が効き、別の運用でも役立つはずです。
例えば、日頃Windows/LinuxのVirtualBoxで利用している仮想マシンを、M1/M2 Macでも使いたいといった場面です。仮想マシンをOVAファイルにエクスポートさえできれば、本記事の方法によりUTMに仮想マシンとして取り込めるはずです。

VulnHubでの仮想マシンの提供形式

  • OVAファイルで提供されている。
  • VMDKファイルで提供されいている。

M1/M2 Macにおける準備

M1/M2 Macに次のソフトウェアをインストールしておきます。

  • UTM・・・仮想マシンの管理に使う。
  • Homebrew・・・qemuのインストールに使う。
  • qemu・・・QCOW2形式のファイルに変換するのに使う。

UTMのインストール

UTMの公式サイト(https://mac.getutm.app/)からUTMをダウンロードします。ダウンロードしたら、"UTM.app"をApplicationsフォルダーにコピーするだけです。

詳細は次の記事を参考にしてください。

Homebrewのインストール

詳細は次の記事を参考にしてください。

qemuのインストール

QCOW2形式のファイルに変換するために、qemu-imgコマンドを使える環境を構築しなければなりません。

これはqemuに収録されているので、Homebrewを用いてqemuをインストールします。

% brew install qemu

Homebrewが自動的に依存パッケージをたくさんインストールするので、qemuのインストールが完了するまでそれなりに時間がかかるはずです。

インストールが完了したら、次のコマンドを実行します。ヘルプが表示されることを確認にします。

% qemu-img -h

「OVA⇒VMDK⇒QCOW2」でファイル形式を変換する

1:OVAファイルからディスクイメージを展開する

次のようにtarコマンドを実行することで、「.OVF」「.MF」「.VMDK」ファイル群が得られます。このうちVMDKファイルがディスクイメージになります。

% tar -xvf <ファイル名>.ova

なお、最初からVMDKファイル形式で配布されていれば、このステップを飛ばしてください。

2:qemu-img convertコマンドでQCOW2ファイルに変換する

次の書式でqemu-img convertコマンドを実行すると、VMDK形式からQCOW2形式に変換できます。

% qemu-img convert -O qcow2 <ファイル名>.vmdk <ファイル名>.qcow2

次の画像はファイル形式をした際のコマンド入力例になります。用いたマシンはEmpire: Breakoutであり、配布形式はVMDKファイルでした。

3:出力ファイルを調べる

fileコマンドで用いて最終確認してみます。

% file <ファイル名>.qcow2

先ほどの例のファイルで確かめてみると、QEMU用のQCOW2イメージであることが確認できました。

参考にしたページ

QCOW2ファイルから仮想マシンを作成する

1:UTMを起動する

MacでUTMを起動します。

2:空の仮想マシンを作成する

UTMのメイン画面にて「プラス」アイコンを押して、「始める」画面を表示します。

「始める」画面では「エミュレート」を選びます。

「オペレーティングシステム」画面ではOSを選びますが、ここではカスタムの「その他」を選びます。

「その他」画面では「ISO起動をスキップ」のチェックを入れて、[続ける]ボタンを押します。

「ハードウェア」画面ではメモリーを調整します。VulnHubの仮想マシンはもともとAppleシリコン向けではないので、アーキテクチャは「x86_64」のままとします。やられマシンであればそれほどのメモリー容量は必要ないため、1,024MBにしておけばよいでしょう。[続ける]ボタンを押します。

「ストレージ」画面では仮想ハードディスクの容量を決定します。デフォルトでは64GBになっていますが、20GBにします。この仮想ハードディスクは最終的に削除するので、QEMU2ファイルのサイズに合わせるといった調整は必要ありません。

「共有ディレクトリ」画面ではデータの共有をする場合の設定をします。ここでは不要なので、何もチェックを入れずに、[続ける]ボタンを押します。

「概要」画面では名前に仮想マシン名を入力して、[保存]ボタンを押します。

するとUTMのメイン画面の左ペインに、今作成した仮想マシンが出現します。現時点で仮想マシンは空の状態です。

3:空の仮想マシンにQCOW2ファイルを取り込む

ステップ2で作成した仮想マシンを選択して、右クリックで「編集」を選びます。右上の「スライダー」アイコンを押しても同様です。

仮想マシンの設定画面が表示されます。

ドライブにIDEドライブがありますが、これを削除します。その後で、「新規」を選びます。インターフェースでは「IDE」、サイズは10GBとしました(QCOW2ファイルのサイズより大きくなるように調整)。ここでQCOW2ファイルを指定します。

次に、仮想マシンの設定画面でQEMUを選びます。「UEFI起動」のチェックを外します。

最後にネットワークの設定もしておきます。ネットワークモードで「ブリッジ(詳細)」を選んで、保存します。

4:やられ仮想マシンを起動する

以上で準備はできましのたで、UTMのメイン画面の左ペインからやられ仮想マシンを選んで、起動します。

やられ仮想マシンのログイン画面が表示されれば成功です。

今回使用した仮想マシンは動的にIPアドレスを取得するようになっており、ブリッジモードに設定したことからLAN内のIPアドレスが割り当てられました。

参考になる動画

次の動画の流れと同様です。

その後の課題

本記事を参考にすれば、M1/M2 Mac上でやられ仮想マシンを起動できるようになるはずです。

ところで、ハッキングの実験をするには、攻撃端末とターゲット端末(今回はやられ仮想マシン)が通信できる必要があります。

攻撃端末にはKali LinuxやParrotOSの仮想マシンを準備すればよいでしょう。

後は、2台の仮想マシン間で通信ができるようにします。そのためには、各仮想マシンのネットワーク設定において、ネットワークモードを「ブリッジ(詳細)」(Bridged (Advanced))にします。

UTMの左ペインに表示されている仮想マシン(停止している必要あり)を選び、右クリックで「編集」を選ぶことで、仮想マシン個別の設定が可能です。

※このあたりは操作感は、VirtualBoxと似ています。

おわりに

攻撃端末(ParrotOS)とターゲット端末(Breakoutマシン)が通信できるところまでテストできました。

ターゲット端末の攻略については機会があれば記事にします。