【Metasploitable2完全ガイド】VirtualBoxへのインストール&使い方を徹底解説!

セキュリティ診断の学習環境
- Metasploitable2 -

この記事では、Metasploitable2の特徴を解説しつつ、VirtualBoxへのインストール手順や使い方を初心者にも分かりやすく解説しています。

また本記事の後半では、Metasploitable2を用いたセキュリティ診断の学習方法も紹介していますので、最後までご覧ください。

目次

Metasploitable2とは

Metasploitable2は、ペネトレーションテストやセキュリティのトレーニングを行うための脆弱な仮想マシン(VM)です。この仮想マシンは、やられアプリとして開発されており、セキュリティエンジニアやホワイトハッカーがリアルな脆弱性環境で効果的なテストやトレーニングを実施できるよう設計されています。主に、Kali Linuxや他のセキュリティ診断ツールと組み合わせて使用されることが多く、特に有名なMetasploit Frameworkの練習用として利用されます。

Metasploitable2はUbuntuをベースに構築されており、さまざまな脆弱性が意図的に組み込まれています。これにより、ユーザーは多種多様な攻撃シナリオを試すことができ、現実世界のセキュリティリスクに対する理解を深めることができます。

Metasploitable2の読み方

「メタスプロイタブル・ツー」と読みます。「メタスプロイト」とは、ペネトレーションテスト用のフレームワークである「Metasploit」を指し、それに「able」という表現が付いた名前です。この名前から、Metasploitを用いたテストに最適なプラットフォームであることが分かります。

Metasploitable2の主な特徴

豊富な脆弱性

初心者から上級者まで学べるよう、数多くの脆弱性が意図的に組み込まれています。例えば、Webアプリケーション、データベース、ネットワークサービスなどの多岐にわたる脆弱性を学習できます。

安心して学べる環境

たとえ学習目的や善意であっても、他人が所有するサーバーやシステムに対して無断で脆弱性診断を行う行為は、不正アクセス禁止法等の法律に抵触する恐れがあります。Metasploitable2のような学習環境を利用することで、安心・安全にセキュリティ技術を学ぶことができます。

軽量設計

Linuxベースで軽量なため、VirtualBoxやVMwareなど仮想化ソフトウェア上で簡単にセットアップが可能です。PCリソースを多く消費しないため、手軽に利用できます。

実践的なペネトレーションテスト環境

Metasploitable2は、Metasploit Frameworkなどのセキュリティ診断ツールと連携して使用することを前提としています。これにより、実際の攻撃シナリオをシミュレートし、エクスプロイトやポストエクスプロイトのテクニックを実践的に学ぶことができます。

Metasploitable2とMetasploitable3の違い

Metasploitable2には後継としてMetasploitable3があります。Metasploitable3はWindowsとLinuxの両方の環境で動作し、さらに多くの脆弱性が追加されています。Metasploitable2はシンプルな構成であるため、ペネトレーションテストの入門者やセキュリティトレーニングの初期段階での利用に適していますが、Metasploitable3ではより複雑な攻撃シナリオに対応した演習が可能です。

項目Metasploitable2Metasploitable3
基盤となるOSUbuntu Linux 8.04WindowsとUbuntuの2種類が選択できる
セットアップの難易度簡単(イメージファイルをダウンロードし起動するだけ)やや難しい(VagrantやPackerのセットアップが必要)
脆弱性の数基本的な脆弱性が多数より現代的で多様な脆弱性が追加
対象者初心者やシンプルな環境で学びたい人向け中級者以上

Webアプリケーション診断には適さない

Metasploitable2は、ネットワークやOSレベルの脆弱性学習用に設計された仮想マシンのため、Webアプリケーション診断の学習には適しません。

Webアプリケーション診断の学習には、OWASP BWAがおすすめ。OWASP BWAは、複数の脆弱なWebアプリケーションをまとめたUbuntuベースの仮想マシンです。

Metasploitable2OSやサービス(FTP、SSH、Samba、MySQLなど)の脆弱性
OWASP BWASQLインジェクション、クロスサイトスクリプティング(XSS)、CSRF、セッション管理 など

インストール環境

この記事では、Windows10に構築している仮想環境にMetasploitable2をインストールします。

・インストール環境

OSWindows10 Pro 22H2(64bit)
CPUIntel Core i7
メモリ32GB
仮想化ソフトOracle VirtualBox 7.1.12

Metasploitable2のダウンロード

Metasploitable2は、オープンソースのダウンロードサイト「SourceForge.net」にて配布されています。

Metasploitable2のダウンロードサイト
  1. Filesタブが選択されていることを確認。
  2. metasploitable-linux-2.0.0.zipをクリックし、Zipファイル(825MB)をダウンロード。
  3. ダウンロードしたZipファイルを解凍。(Metasploitable.vmdkが含まれています。)

VMDKファイル(.vmdk)は、仮想マシンのハードディスクイメージです。

Metasploitable2をVirtualBoxにセットアップ

Metasploitable2をVirtualBoxにインストール

まず、Metasploitable2の仮想マシンをVirtualBoxに作成します。

STEP

新規アイコンをクリック

VirtualBoxマネージャーの新規アイコンをクリック
STEP

「名前とオペレーティングシステム」を設定

「名前とオペレーティングシステム」を設定

設定例

名前Metasploitable2
フォルダーご自身の環境に応じて設定
タイプLinux
SubtypeUbuntu
バージョンUbuntu(64-bit)
STEP

「自動インストール」は変更なし

「自動インストール」は変更なし
STEP

「ハードウェア」は変更なし

「ハードウェア」は変更なし
STEP

「ハードディスク」を設定

すでにある仮想ハードディスクファイルを使用するを選択し、フォルダアイコンをクリックします。

「ハードディスク」を設定
STEP

仮想マシンのハードディスクイメージを選択

追加アイコンをクリックし、事前に解凍しておいたMetasploitable.vmdkファイルを選択します。

追加アイコンをクリック
事前に解凍しておいたMetasploitable.vmdkファイルを指定
STEP

完了ボタンをクリック

追加したMetasploitable.vmdkが選択されていることを確認し、完了ボタンを押下します。

完了ボタンをクリック
STEP

Metasploitable2が追加されたことを確認

Metasploitable2が追加されたことを確認

VirtualBoxのネットワーク設定

Metasploitable2には多数の脆弱性が意図的に含まれているので、外部ネットワークから隔離し、VirtualBox内のプライベートネットワーク環境で稼働させます。

NATやホストオンリーネットワークなど、各ネットワークモードの通信可否は、VirtualBox公式マニュアルの「Table 6.1. Overview of Networking Modes」をご覧ください。

STEP

VirtualBoxのネットワークアダプターを確認

VirtualBoxのメニューより、ファイル-ツール-ネットワークマネージャーを選択し、ホストオンリーネットワークを確認します。

VirtualBoxのメニューより、ファイル-ツール-ネットワークマネージャーを選択

Metasploitable2を設置するネットワークをまだ構築していない場合は、作成アイコンを押して、新しいネットワークアダプターを作成してください。

作成アイコンを押して、新しいネットワークアダプターを作成

この記事では、192.168.10.0/24のネットワークアダプターを使用します。

STEP

Metasploitable2のネットワークアダプターを設定

対象の仮想マシンMetasploitable2を選択した状態で、設定アイコンを押下して、設定画面を開きます。

対象の仮想マシンMetasploitable2を選択した状態で、設定アイコンを押下

Expert-ネットワークを選択し、アダプター1の割り当てを「NAT」から「ホストオンリーアダプター」に変更します。

Expert-ネットワークを選択し、アダプター1の割り当てを「NAT」から「ホストオンリーアダプター」に変更

ホストオンリーアダプターを複数作成している場合、「名前」は上記で確認・作成したネットワークアダプターを選んで下さい。

STEP

OKボタンを押下

設定が完了したら、OKボタンをクリックし、VirtualBoxのネットワーク設定を完了します。

OKボタンを押下
STEP

以下の手順に従い、設定内容を確認

Metasploitable2-詳細を選択します。

Metasploitable2-詳細を選択

ネットワークの詳細を表示します。

ネットワークの詳細を表示

アダプター1にホストオンリーアダプターが設定されていることを確認します。

アダプター1にホストオンリーアダプターが設定されていることを確認

Metasploitable2を起動・ログイン

STEP

Metasploitable2を起動

対象の仮想マシンMetasploitable2を選択した状態で、起動アイコンをクリックし、Metasploitable2を起動します。

Metasploitable2を選択した状態で、起動アイコンをクリック

新規ウィンドウが自動的に立ち上がりますので、Metasploitable2の起動完了を待ちます。

新規ウィンドウが自動的に立ち上がる
Metasploitable2起動中
STEP

Metasploitable2にログイン

デフォルトのログインID/パスワードは、msfadmin/msfadminです。

Metasploitable2のログイン画面

キーボード設定を日本語キーボードに変更

Metasploitable2の初期状態では、英語キーボード設定になっています。日本語キーボードを使用する場合、キーボード配列を日本語配列に変更します。

STEP

Metasploitable2のベースOSを確認

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 8.04
Release:        8.04
Codename:       hardy

Metasploitable2はUbuntu 8.04をベースにした非常に古い環境です。そのため、古典的で最も簡単な方法を用いてキーボード設定を行います。

STEP

キーボード配列を日本語キーボードに変更

$ sudo loadkeys jp
Loading /usr/share/keymaps/jp.map.bz2
STEP

キーボード設定を永続化

上記のコマンドを実行すると、一時的に日本語キーボードが有効になりますが、Metasploitable2を再起動すると英語キーボードに戻ります。再起動後も日本語キーボードを維持したい場合は、起動スクリプトにキーボード設定を追加します。

$ cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.


nohup /usr/bin/rmiregistry >/dev/null 2>&1 &
nohup /usr/bin/unrealircd &
rm -f /root/.vnc/*.pid
HOME=/root LOGNAME=root USER=root nohup /usr/bin/vncserver :0 >/root/vnc.log 2>&1 &
nohup /usr/sbin/druby_timeserver.rb &

/bin/loadkeys jp

exit 0

viなどのエディタを使って、/etc/rc.localの最終行exit 0の直前に/bin/loadkeys jpを追記します。

Metasploitable2のネットワーク設定

STEP

現在のネットワーク設定を確認

デフォルトではDHCPが設定されています。

$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp
STEP

DHCPから固定IPアドレスに変更

viなどのエディタを使って、/etc/network/interfacesを編集します。

例.192.168.10.101/24の場合

$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.10.101
netmask 255.255.255.0
STEP

ネットワークインターフェースを再起動

$ sudo /etc/init.d/networking restart
STEP

IPアドレスが反映されたことを確認

$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 08:00:27:0e:b7:7f brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.101/24 brd 192.168.10.255 scope global eth0
    inet6 fe80::a00:27ff:fe0e:b77f/64 scope link
       valid_lft forever preferred_lft forever

Metasploitable2の疎通確認

例.ホストOS(Windows 10)からの疎通確認

C:\>ping -n 3 192.168.10.101

192.168.10.101 に ping を送信しています 32 バイトのデータ:
192.168.10.101 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.10.101 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.10.101 からの応答: バイト数 =32 時間 <1ms TTL=64

192.168.10.101 の ping 統計:
    パケット数: 送信 = 3、受信 = 3、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 0ms、平均 = 0ms

例.他のゲストOS(Kali Linux)からの疎通確認

$ ping -c 3 192.168.10.101
PING 192.168.10.101 (192.168.10.101) 56(84) bytes of data.
64 bytes from 192.168.10.101: icmp_seq=1 ttl=64 time=0.761 ms
64 bytes from 192.168.10.101: icmp_seq=2 ttl=64 time=0.492 ms
64 bytes from 192.168.10.101: icmp_seq=3 ttl=64 time=0.537 ms

--- 192.168.10.101 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2047ms
rtt min/avg/max/mdev = 0.492/0.596/0.761/0.117 ms

Metasploitable2の使い方

一般的な使い方として、まずはポートスキャンを実施し、開いているポートや稼働中のサービスを特定します。これには、Nmapなどのスキャニングツールが役立ちます。このプロセスを通じて、対象システムの構造を把握し、脆弱性を特定・分析するための準備を行います。

例.Kali LinuxからMetasploitable2に対して、ポートスキャンを実行

$ nmap 192.168.10.101
Starting Nmap 7.95 ( https://nmap.org ) at 2025-07-30 14:55 JST
Nmap scan report for 192.168.10.101
Host is up (0.00029s latency).
Not shown: 977 closed tcp ports (reset)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8009/tcp open  ajp13
8180/tcp open  unknown
MAC Address: 08:00:27:0E:B7:7F (PCS Systemtechnik/Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.48 seconds

21番ポートや22番ポートなど、代表的なポートが開放されていることが確認できるので、それぞれのサービスが抱える脆弱性を洗い出し、想定される攻撃シナリオを検証します。

例えば、FTPサービスでは認証情報が脆弱である場合が想定されます。また、SSHサービスにおいては古い暗号化プロトコルが使用されているケースも考えられます。

こうしたケースを前提に、Metasploitのようなセキュリティ診断ツールを活用し、脆弱性の攻撃シナリオを体験することで、攻撃者の視点を学ぶことができます。このような実践的なアプローチは、より堅牢なセキュリティ対策を実施するための貴重な経験となります。

以下の記事では、Metasploitable2を用いてセキュリティ診断ツールの実践的な使い方を詳しく解説しています。あわせてご覧ください。

Metasploitable2を終了・再起動

Metasploitable2を終了する

$ sudo shutdown -h now

Metasploitable2を再起動する

$ sudo shutdown -r now
デフォラボ

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
目次