なぜ専用の演習環境が必要か
サイバーセキュリティの学習では、ツールの実行・脆弱性の検証・ネットワーク解析など、通常の作業環境では絶対に行うべきでない操作が必要になる。自分のメイン PC でスキャンツールや exploit を走らせれば、OS の設定を壊したり、意図せず外部に攻撃パケットを送信してしまうリスクがある。
専用の隔離された演習環境(ラボ)を用意することで、次の3つが実現できる:
- ホストOSへの影響を完全に分離できる
- 意図的に脆弱なターゲットマシンを安全に運用できる
- 仮想ネットワーク内で攻撃・防御シナリオを何度でも再現できる
現場のプロも、新しい exploit を試す前に必ず隔離された検証環境を用意する。本番環境での「うっかりテスト」は、インシデントの原因になりうるからだ。
演習で使用するツールや手法は、自分が所有または書面で許可を得たシステムのみで実施すること。他人のシステムへの無断アクセスは不正アクセス禁止法に違反し、刑事罰の対象となる。このラボは完全にオフライン・隔離された環境での使用を前提としている。
必要なソフトウェア
| ソフトウェア | 用途 | 費用 |
|---|---|---|
| VirtualBox 7.x | 仮想化プラットフォーム | 無料 |
| Kali Linux 2024.x | 攻撃側演習環境(攻撃ツール群搭載) | 無料 |
| Metasploitable 2 | 意図的に脆弱な標的環境 | 無料 |
最小システム要件:
- RAM: 8GB(16GB推奨)
- ストレージ: 50GB以上の空き容量
- CPU: 仮想化支援機能(VT-x/AMD-V)が有効なもの
Metasploitable 2 はセキュリティ演習用に意図的に脆弱化されたUbuntu 8.04ベースのLinux VMで、Rapid7社が公開している。FTP・SSH・HTTP・MySQL・PostgreSQL など多数のサービスが既知の脆弱な設定で動作しており、ペネトレーションテストの練習台として世界中で使われている。絶対に外部ネットワークに接続してはならない。
ステップ1: VirtualBox のインストール
VirtualBox公式サイトからホストOSに対応したインストーラーをダウンロードし、画面の指示に従ってインストールする。
VBoxManage —version
# 出力例: 7.0.14r161095
ステップ2: Kali Linux VM の作成
Kali Linux の Pre-built Virtual Machines(.ova ファイル)を使うと、設定済みの状態でそのまま使えるため最も手軽だ。
- Kali公式サイトから VirtualBox 用 OVA をダウンロード
- VirtualBox を起動 → ファイル > 仮想アプライアンスのインポート
- ダウンロードした
.ovaを選択してインポート - 仮想マシン設定でメモリを 4096MB 以上に変更(推奨: 8GB)
# パッケージリストの更新(初回は時間がかかる)
sudo apt update && sudo apt upgrade -y
# 主要ツールのバージョン確認
nmap —version
# 出力例: Nmap version 7.94 ( https://nmap.org )
python3 —version
# 出力例: Python 3.11.6
msfconsole —version
# 出力例: Framework Version: 6.3.x-dev
ステップ3: Metasploitable 2 のダウンロードとインポート
ダウンロード
SourceForge の Metasploitable 2 ページから .zip ファイルをダウンロードし展開する。展開後のディレクトリ構成は次のとおり:
Metasploitable2-Linux/
├── Metasploitable.vmdk ← 仮想ディスクイメージ
├── Metasploitable.vmx ← VM設定ファイル(VMware形式)
└── Metasploitable.nvram
VirtualBox へのインポート手順
Metasploitable 2 は VMware 形式で配布されているため、VirtualBox では手動でVMを作成してディスクを接続する:
- VirtualBox → 新規 をクリック
- 名前:
Metasploitable2、タイプ:Linux、バージョン:Ubuntu (64-bit) - メモリ: 512MB(軽量なのでこれで十分)
- ハードディスク: 既存の仮想ハードディスクファイルを使用 →
Metasploitable.vmdkを選択 - 作成後、ネットワーク設定を変更(次のステップ参照)
VMware Workstation Player(無料)を使えば .vmx ファイルを直接開けるため、手順がシンプルになる。VirtualBox でうまく動かない場合の代替として有効だ。
ステップ4: ネットワークの隔離設定
Metasploitable 2 は意図的に脆弱なため、インターネットや社内ネットワークに接続すると即座に危険な状態になる。必ずホストオンリーアダプターまたは内部ネットワークに設定すること。この手順を省略した演習環境は「自宅に鍵のかかっていない金庫を置く」のと同じだ。
ホストオンリーネットワークの作成
- VirtualBox → ファイル > ホストネットワークマネージャー
- 作成 ボタンをクリック(
vboxnet0が作成される) - アダプターのIPv4アドレス:
192.168.56.1 - マスク:
255.255.255.0 - DHCPサーバーを有効化(
192.168.56.100〜192.168.56.254を割り当て)
両VMのネットワーク設定変更
Kali Linux VM の設定:
- VM設定 → ネットワーク → アダプター1
- アタッチメント: ホストオンリーアダプター
- 名前:
vboxnet0
Metasploitable 2 VM の設定:
- 同様にアダプター1を ホストオンリーアダプター →
vboxnet0
ステップ5: 起動と疎通確認
両VMを起動し、ネットワーク設定が正しいことを確認する。
Metasploitable 2 の起動確認
起動すると以下のようなバナーが表示される(ログイン: msfadmin / msfadmin):
_ _ _ _ _ _ ____
_ __ ___ ___| |_ __ _ ___ _ __ | | ___ (_) |_ __ _| |__ | | ___|___ \
| '_ ` _ \ / _ \ __/ _` / __| '_ \| |/ _ \| | __/ _` | '_ \| |/ _ \ __) |
| | | | | | __/ || (_| \__ \ |_) | | (_) | | || (_| | |_) | | __// __/
|_| |_| |_|\___|\__\__,_|___/ .__/|_|\___/|_|\__\__,_|_.__/|_|\___|_____|
Warning: Never expose this VM to an untrusted network!
Kali Linux からのIPアドレス確認
# Kali Linux 自身のIPアドレスを確認
ip addr show eth0
# 出力例:
# 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>
# inet 192.168.56.102/24 brd 192.168.56.255 scope global eth0
# 短縮形でも確認できる
ip -4 a show eth0
# 出力例: inet 192.168.56.102/24
# ルーティングテーブルの確認
ip route
# 出力例:
# 192.168.56.0/24 dev eth0 proto kernel scope link src 192.168.56.102
# インターネットへのping(失敗するはずだ)
ping -c 3 8.8.8.8
# 期待される出力:
# ping: connect: Network is unreachable
# または
# Request timeout for icmp_seq 0
# DNS解決も失敗することを確認
nslookup google.com
# 期待される出力: ;; connection timed out; no servers could be reached
Metasploitable 2 のIPアドレス確認と疎通テスト
# Metasploitable 2 のコンソールで実行
ifconfig eth0
# 出力例:
# eth0 Link encap:Ethernet HWaddr 08:00:27:xx:xx:xx
# inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0
# ===== Kali Linux 側から実行 =====
# Metasploitable への ping 疎通確認
ping -c 4 192.168.56.101
# 期待される出力:
# 64 bytes from 192.168.56.101: icmp_seq=0 ttl=64 time=0.456 ms
# 4 packets transmitted, 4 received, 0% packet loss
# 簡易ポートスキャンで主要サービスの確認
nmap -sV —top-ports 10 192.168.56.101
# 期待される出力(一部):
# PORT STATE SERVICE VERSION
# 21/tcp open ftp vsftpd 2.3.4
# 22/tcp open ssh OpenSSH 4.7p1
# 80/tcp open http Apache httpd 2.2.8
# 3306/tcp open mysql MySQL 5.0.51a
DHCPによって割り当てられるIPは環境によって変わる。nmap -sn 192.168.56.0/24 でサブネット全体をスキャンし、MACアドレスに「VirtualBox」と表示されているホストが Metasploitable 2 だ。以降の演習では 192.168.56.101 を使う想定で説明する。
ステップ6: スナップショットの活用
VirtualBox のスナップショット機能は演習環境において非常に重要だ。演習を始める前に必ず取得しておくことで、設定を壊したり攻撃を受けたりしても、クリーンな状態に一瞬で戻せる。これは「セーブデータ」のような感覚で使える。
# 現在の状態をスナップショットとして保存
VBoxManage snapshot “Kali-Linux” take “clean-state”
—description “初期クリーン状態 - 演習前ベースライン”
VBoxManage snapshot “Metasploitable2” take “clean-state”
—description “初期クリーン状態”
# スナップショット一覧の確認
VBoxManage snapshot “Kali-Linux” list
# 出力例:
# Name: clean-state (UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)
# Description: 初期クリーン状態 - 演習前ベースライン
# スナップショットへの復元
VBoxManage snapshot “Kali-Linux” restore “clean-state”
トラブルシューティング
よくある問題と解決方法
問題1: Metasploitable 2 が起動しない(VERR_NOT_SUPPORTED)
原因: .vmdk ファイルの形式が VirtualBox と非互換な場合がある。
# VirtualBox形式に変換
VBoxManage clonemedium
/path/to/Metasploitable.vmdk
/path/to/Metasploitable-vbox.vmdk
—format VMDK
問題2: ホストオンリーアダプターが表示されない
VirtualBox → ファイル → ホストネットワークマネージャー で手動作成する。macOS では VBoxNetAdpCtl: Error が出る場合、システム設定 → プライバシーとセキュリティ で VirtualBox の拡張機能を許可する必要がある。
問題3: Kali Linux がIPアドレスを取得できない
# DHCPクライアントを手動実行
sudo dhclient eth0
# それでも取得できない場合は手動設定
sudo ip addr add 192.168.56.102/24 dev eth0 sudo ip link set eth0 up
問題4: Metasploitable 2 への ping が通らない
ファイアウォール設定や VirtualBox のネットワーク設定を確認する。
# Kali 側のルーティング確認
ip route show
# 192.168.56.0/24 dev eth0 の行があるか確認
# ARPテーブルでMACアドレスを確認
arp -n
# 192.168.56.101 のエントリがあれば通信できているはずだ
# Metasploitable 側(コンソール)でリッスン確認
netstat -tlnp
# 0.0.0.0:22 などがLISTENしているか確認
問題5: VirtualBox Extension Pack のインストールが必要
USB 2.0/3.0 やディスプレイ機能を使うには Extension Pack が必要だ。VirtualBox 本体と同じバージョンの Extension Pack をダウンロードしてインストールすること。
sudo VBoxManage extpack install
Oracle_VM_VirtualBox_Extension_Pack-7.0.14.vbox-extpack
# 出力例: Successfully installed “Oracle VM VirtualBox Extension Pack”.
やってみよう: 環境確認チェックリスト
演習環境が正しく構築できているか、以下をすべて確認してほしい:
- VirtualBox がインストールされ、バージョンが確認できる
- Kali Linux VM が起動し、
ip addrでIPアドレスが表示される - Metasploitable 2 VM が起動し、
ifconfigでIPアドレスが表示される - Kali から Metasploitable 2 へ
pingが通る(4/4 パケット受信) - Kali からインターネット(8.8.8.8)へ
pingが失敗する - 両VMのスナップショット「clean-state」が作成済み
環境が整ったら、次のレッスンでは**Nmap を使ったネットワークスキャン**を演習する。Metasploitable 2 を標的にした安全な実習で、偵察フェーズの技術を体験的に学んでいこう。
演習用仮想環境のネットワーク設定として最も適切なものはどれですか?