はじめに
前回は、マルウェアを動作させるための環境構築として、ベースOSとHost OSのインストール方法を解説しました。今回は、前回から引き続き、マルウェアを動作させるための「Guest OS (Windows 10 Pro)」(以降、Windows 10 Pro)について、そのインストールと設定手順を解説します。
Windows 10 Proのインストール
- Host OS(Ubuntu 22.04)で「VirtualBox for Linux」を起動し、[Create a new virtual machine (VM)]を選択します。
図1:VirtualBox for Linuxを起動 - VirtualBox for LinuxでWindows 10 Proをインストールします。仮想マシンの設定は下記の通りです。[Proceed with Unattended Installation]のチェックを外します。
■仮想マシン設定- VM Name: win10x64jp
- Base Memory: 8192MB
- Number of CPUs: 2
- Processor: PAE/NX
- Disk Size: 100GB
- Network Adapter: Host-only Adapter
- Audio: 無効
■Windows 設定- 「プロダクトキーがありません」を選択
(プロダクトキーがあれば、入力) - 「Windows 10 Pro」を選択
- 「インターネットに接続していません」を選択
- 「制限された設定で続行する」
- 「デバイスのプライバシー設定の選択」は全て「いいえ」を選択
- 「Cortana による作業の支援を許可する」は「今は実行しない」を選択
- Host OS(Ubuntu 22.04)で/opt/CAPEv2/agent.pyをHomeにコピーします(図2)。
図2:agent.pyをHomeにコピー - Host OS(Ubuntu 22.04)でTerminalを起動し、下記コマンドを実行します。
$ cd /home/cape/ $ mkdir sysmon $ cd sysmon $ wget https://download.sysinternals.com/files/Sysmon.zip $ unzip Sysmon.zip $ wget https://raw.githubusercontent.com/olafhartong/sysmon-modular/refs/heads/master/sysmonconfig.xml $ cp Sysmon64.exe /home/cape/ $ cp sysmonconfig.xml /home/cape/ - VirtualBox for Linuxで[Devices]→[Insert Guest Additions CD image]→以降は、デフォルト設定で「Guest Additions」をインストールし(図3)し、Windows 10 Proを再起動します。【補足】インストーラーが自動起動しない場合はCDドライブ(D:)を確認し、VBoxWindowsAdditions.exeをダブルクリックします。
図3:Guest Additionsをインストール - Host OS(Ubuntu 22.04)のHomeフォルダに保存したagent.py、python-3.12.0.exe、Sysmon64.exe、sysmonconfig.xmlをWindows 10 Proの「デスクトップ」上にコピーします(図4)。
Guest Additionsをインストールしたので、マウスのドラッグ&ドラッグでコピーできます。ただし、下記の設定が必要になります。- [Devices]→[Shared Clipboard]→[Bidirectional]をチェック、[Enable Clipboard File Transfers]をチェック
- [Devices]→[Drag and Drop]→[Bidirectional]をチェック
図4:各種ファイルのコピー - Windows 10 Proでpython-3.12.0.exeをダブルクリックし、インストールします(図5)。インストール時に下記ボックスをチェックし、[Customize installation]を選択します。
- Use admin privileges when installing py.exe
- Add python.exe to PATH
図5:python-3.12.0のインストール (1/3) - 続けて、図6のようにボックスをチェックし、Installを選択してインストールフォルダ(install location)を確認します。
図6:python-3.12.0のインストール (2/3) - 続けて、[Disable path length limit]をクリックします(図7)。
図7:python-3.12.0のインストール (3/3) - Windows 10 Proで、下記を実行します(図8)。
- デスクトップ上のagent.pyファイル名を変更(ファイル名は任意。ただし、拡張子はpyw) この例ではyuki.pywに変更
- C:¥toolsフォルダを作成
- C:¥toolsフォルダにyuki.pywを移動
図8:agent.pyのインストール (1/2) - 続けて、Windows 10 Proで下記を実行します(図9)。
- タスクスケジューラを起動し [基本タスクの作成]
- 名前: (任意の名前)ここではyuki
- トリガー: ログオン時
- 操作: プログラムの開始
- プログラムの開始
- プログラム/スクリプト: “C:¥Program Files(x86)¥Python312-32¥pythonw.exe”
- 引数の追加: C:¥tools¥yuki.pyw
- 「[完了]をクリックしたときに、このタスクの[プロパティ]ダイアログを開く」をチェック
- 「最上位の特権で実行する」をチェック
図9:agent.pyのインストール (2/2) - タスクスケジューラを起動し [基本タスクの作成]
- Windows 10 Proで、デスクトップ上のSysmon64.exeとsysmonconfig.xmlファイルをc:¥toolsフォルダに移動します(図10)。
図10:Sysmon64.exeとsysmonconfig.xmlファイルを移動 - Windows 10 ProでPowerShell(管理者用)から下記コマンドを実行し、Sysmonをインストールします(図11)。
PS C:¥> cd c:¥tools PS C:¥> .\Sysmon64.exe -accepteula -i .¥sysmonconfig.xml
図11:Sysmonのインストール(Guest OS) - ベースOS(Windows 11)でコマンドプロンプト(管理者用)から下記コマンドを実行し、Sysmonをインストールします(図12)。
C:¥> cd c:¥tools¥Symon #(Sysmon.zipを解凍したフォルダ) C:¥> Sysmon64.exe -m
図12:Sysmonのインストール(ベースOS) - Host OS(Ubuntu 22.04)でTerminalを起動し、下記コマンドを実行します。
図13では、vboxnet0(Host-only)のIPアドレスは「192.168.56.1」です。後に設定で使用する値なので覚えておきましょう。$ ifconfig
図13:NIC(vboxnet0)のIPアドレスを確認 - Windows 10 Proで下記を実行します。
- デスクトップ上にコピーしたpython-3.12.0.exeファイルを完全削除
- Microsoft Edgeを起動し初期設定
- Windows 10 Proをシャットダウン
- VirtualBox for Linuxで図14のようにNetwork AdapterをNATに変更し、Windows 10 Proを起動します。
図14:一時的にNetwork AdapterをNATに変更 - Windows 10 Proで図15のような画面が表示されたら、アクセスを許可します。
図15:Firewallの設定を変更 - Windows 10 Proでコマンドプロンプト(管理者用)画面から下記pythonコマンドを実行し、シャットダウンします(図16)。
python -m pip install --upgrade pip python -m pip install Pillow==12.0.0 python -m pip install pywin32
図16:Pillowとpywin32をインストール - VirtualBox for LinuxでNetwork AdapterをHost-only Adapterに変更し、Windows 10 Proを起動します(図17)。
図17:Host-only Adapterに設定を戻す
Windows 10 Proの各種設定
ここまでで、Windows 10 Proのインストールは終了です。ここからは、Windows 10 Proに各種設定を行っていきます。
- [コントロールパネル]→[システムとセキュリティ]→[ユーザーアカウント制御の設定]→[通知しない]設定に変更します(図18)。
図18:ユーザーアカウント制御(UAC)の無効化 - [コントロールパネル]→[システムとセキュリティ]→[Windows Defenderファイアウォール]→[Windows Defenderファイアウォールの有効化または無効化]→[Windows Defenderファイアウォールを無効にする(推奨されません)] 設定に変更します(図19)。
図19:ファイアウォールの無効化 - [設定]→[更新とセキュリティ]→[Windowsセキュリティ]→[ウイルスと脅威の防止]→[設定の管理]→下記4項目のチェックをOFFに変更します(図20)。
- リアルタイム保護
- クラウド提供の保護
- サンプルの自動送信
- 改ざん防止
図20:Windows Defenderの無効化 - コマンドプロンプト(管理者用)画面から下記コマンドを実行し、ローカルグループポリシーエディターを開きます(図21)。
C:¥> netsh interface teredo set state disabled C:¥> gpedit
図21:netshコマンド、gpeditコマンドを実行 - Windows 10 Proのローカルグループポリシーエディターで[コンピュータの構成]→[管理用テンプレート]→[Windowsコンポーネント]→[Windows Update]→[自動更新を構成する]→[自動更新を構成する]を無効に設定します(図22)。
図22:Windows Updateの自動更新を無効化 - ローカルグループポリシーエディターで[コンピュータの構成]→[管理用テンプレート]→[Windowsコンポーネント]→[Microsoft Defenderウイルス対策]→[リアルタイム保護]→[リアルタイム保護を無効にする]→[リアルタイム保護を無効にする]を有効に設定します(図23)。
図23:リアルタイム保護の無効化 - ローカルグループポリシーエディターで[コンピュータの構成]→[管理用テンプレート]→[Windowsコンポーネント]→[Microsoft Defenderウイルス対策]→[Microsoft Defenderウイルス対策を無効にする]→[Microsoft Defenderウイルス対策を無効にする]を有効に設定します(図24)。
図24:Microsoft Defender ウイルス対策の無効化 - ローカルグループポリシーエディターで[コンピュータの構成]→[管理用テンプレート]→[ネットワーク]→[DNSクライアント]→[マルチキャスト名前解決をオフにする]→[マルチキャスト名前解決をオフにする]を有効に設定します(図25)。
図25:LLMNRの無効化 - ローカルグループポリシーエディターで[コンピュータの構成]→[管理用テンプレート]→[システム]→[インターネット通信の管理]→[インターネット通信を制限する]→[インターネット通信を制限する]を有効に設定します(図26)。
図26:インターネット通信の無効化 - コマンドプロンプト(管理者用)画面で下記コマンドを実行し(図27)、IPアドレス(DHCP)を確認します(この例では「192.168.56.101」)。
表示されたIPアドレスと同じように、手動でIPアドレスを設定します。C:¥>t; ipconfig
図27:IPアドレスの編集 - [コントロールパネル]→[プログラム]→[プログラムのアンインストール]→[Oracle VirtualBox Guest Additions 7.2.4]→[アンインストールと変更]を選択し、アンインストールします(図28)。
図28:VirtualBox Guest Additionsのアンインストール - Windows 10 Proを再起動してログインし、VirtualBox for Linuxでスナップショットを取得します(図29)。
(スナップショットの名前は「snapshot1」とします。大文字・小文字に注意)。
図29:Windows 10 Proのスナップショットを取得する - VirtualBox for Linuxで画面右上の「閉じる」ボタンを押下し、[Power off the machine]を選択して[Restore current snapshot ‘snapshot1’]にチェックを入れます(図30)。
図30:Windows 10 Proの電源をOFFする
以上で、第1回から引き続き行ってきたマルウェア環境構築としてのGuest OS(Windows 10 Pro)インストールと設定は完了です。お疲れさまでした。次回は、いよいよ「CAPE v2」の設定と実際にマルウェア解析を行ってみます。
