M1/M2 Mac上でやられマシンを起動する【VulnHub編】
目次
はじめに
いつもブログをご覧いただきありがとうございます。
コーストFIRE中のIPUSIRONです😀
今回は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マシン)が通信できるところまでテストできました。
ターゲット端末の攻略については機会があれば記事にします。