Metasploitable2をVirtualBoxにインストール&使い方を徹底解説!

セキュリティテストの学習環境として人気の〝Metasploitable2〟

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

ネットワーク設定や日本語キーボードの設定など、つまづきやすいポイントを画像や具体例を交えながら分かりやすく解説!

目次

Metasploitable2とは

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

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

Metasploitable2の読み方

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

Metasploitable2の主な特徴

豊富な脆弱性

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

軽量設計

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のセットアップが必要)
脆弱性の数基本的な脆弱性が多数より現代的で多様な脆弱性が追加
対象者初心者やシンプルな環境で学びたい人向け中級者以上

インストール環境

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

・インストール環境

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

Metasploitable2のダウンロード

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

metasploitable-linux-2.0.0.zipをクリックし、Zipファイルをダウンロードしてください。ダウンロードしたZipファイルを解凍すると、Metasploitable.vmdkが含まれています。

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

Metasploitable2をVirtualBoxにセットアップ

Metasploitable2をVirtualBoxにインストール

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

STEP

新規アイコンをクリック

Metasploitable2インストール
STEP

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

Metasploitable2インストール

・設定例

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

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

Metasploitable2インストール
STEP

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

Metasploitable2インストール
STEP

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

「すでにある仮想ハードディスクファイルを使用する」を選択し、フォルダアイコンをクリックして、事前に解凍しておいた「Metasploitable.vmdk」ファイルを追加します。

Metasploitable2インストール
Metasploitable2インストール
STEP

完了ボタンをクリック

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

Metasploitable2インストール

VirtualBoxのネットワーク設定

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

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

STEP

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

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

Metasploitable2インストール

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

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

STEP

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

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

Metasploitable2インストール

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

設定画面はExpertモードを使用します。Expertモードを使用することで、Basicモードにはない詳細な設定や制御が可能となり、より柔軟なカスタマイズができます。

Metasploitable2インストール

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

STEP

OKボタンを押下

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

Metasploitable2を起動・ログイン

STEP

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

キーボード設定を永続化

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

$ sudo vi /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

/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アドレスに変更

例.192.168.21.101/24の場合

$ sudo vi /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.21.101
netmask 255.255.255.0
gateway 192.168.21.1
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:f9:63:55 brd ff:ff:ff:ff:ff:ff
    inet 192.168.21.101/24 brd 192.168.21.255 scope global eth0
    inet6 fe80::a00:27ff:fef9:6355/64 scope link 
       valid_lft forever preferred_lft forever

Metasploitable2の疎通確認

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

C:\>ping -n 3 192.168.21.101

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

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

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

$ ping -c 3 192.168.21.101
PING 192.168.21.101 (192.168.21.101) 56(84) bytes of data.
64 bytes from 192.168.21.101: icmp_seq=1 ttl=255 time=0.779 ms
64 bytes from 192.168.21.101: icmp_seq=2 ttl=255 time=0.910 ms
64 bytes from 192.168.21.101: icmp_seq=3 ttl=255 time=1.95 ms

--- 192.168.21.101 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 0.779/1.211/1.946/0.521 ms

Metasploitable2の使い方

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

例.Metasploitable2にポートスキャンを実行

$ nmap 192.168.21.101
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-01-14 17:49 JST
Nmap scan report for 192.168.21.101
Host is up (0.016s latency).
Not shown: 977 filtered tcp ports (no-response)
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

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

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

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

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

デフォラボで紹介する手法やツールは、ご自身が所有または管理する環境においてのみご利用ください。他者のサーバーやシステムに対して適用することは、法律に抵触する可能性があります。法令を遵守し、責任ある行動をお願いいたします。法律を守りながら、安心・安全にセキュリティを学び、知識とスキルを高めていきましょう。

Metasploitable2を終了・再起動

・Metasploitable2を終了する

$ sudo shutdown -h now

・Metasploitable2を再起動する

$ sudo shutdown -r now
デフォラボ

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

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