サイバーセキュリティ学習用に設計された仮想マシンを無料で配布しているプラットフォーム
- VulnHub -
本記事では、VulnHubの使い方について、仮想マシンのダウンロードからセットアップ、セキュリティ診断の始め方まで、ステップバイステップで解説!
初心者向けの仮想マシン「DC-1」を題材に、VulnHubの使い方を実践形式で解説しています。
VulnHubとは
VulnHubは、脆弱性診断やペネトレーションテストのスキルを安全に磨くための学習用プラットフォームです。意図的に脆弱性を組み込んだ仮想マシン(VM)を多数公開しており、受動的な学習では得られない〝手を動かす経験〟を積むことができます。
VulnHubは2012年にg0tmi1k氏が創設し、2020年からOffensive Security社が運営しています。
サイバーセキュリティのトレーニングやコンサルティングサービスを提供している企業で、Kali Linuxの開発企業としても広く認知されています。
VulnHubのコンテンツは、CTF(Capture The Flag)形式の課題だけでなく、実際の企業ネットワークを模した複数段階の侵害シナリオや、特定の脆弱性を深く理解するための専用VMなど多岐にわたります。難易度も幅広く、初心者向けの基礎理解レベルから、横展開や権限昇格の知識が求められる上級者向けシナリオまで揃っているため、段階的にスキルを向上させやすい点も特徴です。
VulnHubの特徴
セキュリティ学習プラットフォーム
VulnHubは、脆弱性診断やペネトレーションテストのスキルを実践的に学べるプラットフォームです。
脆弱性を意図的に組み込んだ仮想マシンが700以上(※)公開されており、実際に手を動かしながら、脆弱性診断やペネトレーションテストのスキルを身に付けることができます。※2025年11月17日時点
仮想マシン形式で配布
現在公開されている仮想マシンの多くは、OVAやVDI、VMDK形式で公開されているため、一般的な仮想化ソフトウェア(例.VirtualBox、VMware)に簡単にインポートできます。
- 特別な環境構築は不要で、数分で演習を始まられます。
- 初期状態をスナップショットとして保存しておけば、学習プロセスの途中で環境が破損しても即座に復元可能です。
完全オフライン環境で安全に練習できる
VulnHubで提供される仮想マシンは、ローカル環境上の仮想化ソフトウェア(例.VirtualBox、VMware)で起動して使用します。インターネット接続を必要としないため、実際のネットワークに影響を与えることなく、完全に隔離された環境でトレーニングを行うことができます。
課題のジャンルが豊富
VulnHubには、幅広いジャンルの課題が用意されています。
- Webアプリケーションの脆弱性
- Linux権限昇格
- ネットワーク探索
- パスワード管理や認証周りの実装不備
- サービスの脆弱性 など
実際の診断業務で求められる技術領域を、演習を通じて網羅的に習得できます。
無料で利用でき、ユーザー登録も不要
VulnHubは完全無料で利用でき、ユーザー登録も不要です。個人学習や企業研修においてコストを発生させることなく、継続的に環境を利用できる点は大きなメリットです。
注意事項
- 仮想マシンはローカル環境や隔離されたネットワークで実行すること
- 仮想マシンには脆弱性が含まれるため、インターネットに接続された環境で実行すると、不正アクセスの踏み台になるリスクがあります。
- 法律とモラルを守った学習を心がけること
- セキュリティ分野は社会的責任が伴う分野です。技術を正しく使うことはもちろん、倫理的な判断が常に求められます。
VulnHubで公開されている代表的な仮想マシン
VulnHubには、脆弱性診断やペネトレーションテストの学習に適した様々な仮想マシンが公開されています。ここでは、特に利用頻度が高く、学習目的で広く活用されている代表的な仮想マシンをご紹介します。
| 仮想マシン | 概要 |
|---|---|
| OWASP BWA | 30以上の脆弱なWebアプリケーションを1つの仮想マシンにまとめた学習環境。 仮想マシンを1台セットアップするだけで、複数のWebアプリケーションを学習に使用できるので、初学者におすすめ。 |
| DVWA | 脆弱性理解と対策習得を目的とした学習用Webアプリケーション。 難易度が「Low」「Medium」「High」「Impossible」の4段階で提供されており、利用者の習熟度に合わせて調整できる。 |
| Metasploitable2 | Metasploit Frameworkの学習環境として設計されたLinuxベースの脆弱な仮想マシン。 SSHやSMTPなど、脆弱なサービスが多数稼働しており、プラットフォーム診断の基礎〜応用を体系的に学習できる。 |
| OWASP WebGoat | Java、Spring Bootで構築された脆弱なWebアプリケーション。 OWASP Top 10に焦点を当て、体系的に脆弱性の仕組みを学習できる。 |
| DC-1 | CTF形式に近い課題構成となっており、Boot2Root形式の学習環境。 ネットワーク偵察から始まり、脆弱性の特定、エクスプロイトによるユーザー権限の獲得、最終的に権限昇格を通じてrootを奪取することがゴール。 |
以下の記事では、インストール手順や使い方について解説していますので、あわせてご覧ください。
VulnHubから仮想マシンをダウンロード
脆弱性診断・ペネトレーションテストの初学者向けとして広く推奨されているのが「DCシリーズ」です。その中でも「DC-1」は難易度が比較的低く、Webアプリケーションの基本的な脆弱性から権限昇格の基礎までカバーできます。
学習で使用する仮想マシンを選ぶ
VulnHubの公式サイトにアクセスし、検索ボックスに「DC-1」と入力して検索します。

検索結果に対象の仮想マシンが表示されますので、「DC-1」を選択すると、詳細情報のページへ遷移します。

- About Release(リリース内容)
- Download(ダウンロード)
- Description(概要)
- File Information(ファイル情報)
- Virtual Machine(仮想マシン)
- Networking(ネットワーク) などの各情報
詳細ページの中でNetworking(ネットワーク)に記載している内容は、後続のネットワーク設定で必要なので、確認しておきます。

- DHCP service:Enabled(DHCPサービスは有効)
- IP address:Automatically assign(IPアドレスは自動割り当て)
仮想イメージのダウンロード
DC-1の場合、five86のダウンロードサイトはリンクが切れているので、ミラーサイトからダウンロードします。

DC-1の場合、ダウンロードファイルはZIP形式になっているので解凍します。ZIP内には、VirtualBoxで使用可能な仮想アプライアンス「DC-1.ova」が格納されています。このファイルには、仮想マシンの構成情報とディスクイメージが含まれています。
仮想マシンをセットアップ
VulnHubからダウンロードした仮想マシン「DC-1」を稼働させるためには、VirtualBoxにセットアップする必要があります。ここでは、仮想アプライアンスのインポートからネットワーク設定、必要な構成変更まで、順を追って詳しく解説します。
- VirtualBox用のネットワークアダプターを作成
- VirtualBoxに仮想マシンをセットアップ
- 仮想マシンのネットワークアダプターを変更
- その他の設定
VirtualBox用のネットワークアダプターを作成
VulnHubで提供されている多くの仮想マシンは、インターネット等の外部ネットワークへの接続を必要としません。そのため、意図しない外部通信を防止する目的で、ホストオンリーアダプターによるネットワーク隔離が推奨されます。
ホストオンリーアダプターの作成
VirtualBoxのメニューバーから、ファイル>ツール>ネットワークマネージャーを選択し、ホストオンリーネットワークタブを開きます。

まだ、ホストオンリーアダプターを作成していない場合、作成アイコンをクリックして、ホストオンリーアダプターを作成します。

本記事で使用しているホストオンリーアダプターの設定内容

DHCPサーバーの有効化
前述の通り、DC-1のIPアドレスは「DHCPによる自動割り当て」を前提としているため、DHCPサーバーを有効化します。

DHCPサーバータブを選択し、サーバーを有効化にチェックを入れ、適用ボタンをクリックします。
VirtualBoxに仮想マシンをセットアップ
仮想アプライアンスのインポート
VirtualBoxのメニューバーから、ファイル>仮想アプライアンスのインポートを選択し、インポートウィザードを開始します。

ソース・ファイルの指定
インポートのソース画面で、先ほどダウンロードおよび解凍したDC-1.ovaファイルを指定します。

インポートの設定変更
インポートの設定画面で、CPU数やメモリサイズなど必要に応じて設定を変更します。

設定例)本記事の場合
| CPU | 2 |
| RAM | 2048MB |
| 仮想マシンの基本フォルダー | 環境に合わせて指定 |
| MACアドレスのポリシー | すべてのネットワークアダプターでMACアドレスを生成 |
完了をクリック
最後に完了ボタンをクリックし、仮想アプライアンスのインポートを開始します。

インポートが完了すると、DC-1の仮想マシンがVirtualBox上に追加されます。

仮想マシンのネットワークアダプターを変更
DC-1の場合、ブリッジアダプターが初期設定されています。この設定では外部ネットワークへの接続が可能で、脆弱性のある仮想マシンをそのまま接続するとセキュリティリスクが生じてしまいます。
このリスクを回避するため、外部ネットワークと接続しないホストオンリーアダプターに変更します。
ブリッジアダプターとホストオンリーアダプターの違いは、下記のVirtualBox公式サイトをご覧ください。
DC-1の設定画面を開く
仮想マシンDC-1を選択し、設定アイコンをクリックします。

ネットワークアダプターを変更
Expert>ネットワークを選択し、アダプター1の割り当てをホストオンリーアダプターに変更し、OKボタンをクリックします。

その他の設定
DC-1をインポートした際、一部の環境ではグラフィックコントローラーの警告が発生する場合があります。

この場合、ディスプレイのグラフィックコントローラーをVMSVGAに変更します。

仮想マシンの起動
起動アイコンをクリック
VirtualBoxのホーム画面で、対象となるDC-1マシンを選択し、起動アイコンをクリックします。

新規ウィンドウが起動
新規ウィンドウが開き、Linuxカーネルのブートメッセージが表示されます。


ログイン画面が表示
OSの起動プロセスが完了すると、DC-1のログイン画面(CUIベース)が表示されます。

脆弱性診断・ペネトレーションテストを開始
仮想マシン「DC-1」の起動が完了したら、次は脆弱性診断・ペネトレーションテストの工程に進みます。
このセクションでは、ペネトレーションテスト向けディストリビューションであるKali Linuxを用いて、脆弱性診断およびペネトレーションテストを実施します。
| OS | IPアドレス | |
|---|---|---|
| 自分のマシン | Kali Linux | 固定IPアドレス (192.168.10.11) |
| ターゲットマシン | DC-1 | 自動割り当て |
※Kali Linux、およびDC-1は、同じホストオンリーアダプター上で稼働している仮想マシンです。
ターゲットマシンのIPアドレスを特定
仮想マシン「DC-1」の起動後、最初に必要となるのが「ターゲットマシンのIPアドレス」です。まずは、Kali Linuxのネットワーク情報(ネットワークインタフェース)を確認します。
Kali Linuxで実行
$ ip a
〜 省略 〜
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:29:e7:15 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.11/24 brd 192.168.10.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe29:e715/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever次にnetdiscoverコマンドを使って、LAN内に存在するマシンのIPアドレスをリストアップします。
$ sudo netdiscover -i eth1 -P -r 192.168.10.0/24-i:Kali Linuxのネットワークインターフェース(デバイス)-P:結果を解析しやすい形式で出力し、スキャン後にプロセスを停止する-r:スキャン対象のIPアドレス範囲
実行結果
_____________________________________________________________________________
IP At MAC Address Count Len MAC Vendor / Hostname
-----------------------------------------------------------------------------
192.168.10.1 0a:00:27:00:00:05 1 60 Unknown vendor
192.168.10.2 08:00:27:4b:84:9e 1 60 PCS Systemtechnik GmbH
192.168.10.202 08:00:27:e8:59:35 1 60 PCS Systemtechnik GmbH
-- Active scan completed, 3 Hosts found.本検証環境の場合、192.168.10.1はホストOS、192.168.10.2はDHCPサーバーに割り当てられているので、DC-1のIPアドレスは192.168.10.202であると特定できます。
ポートスキャンを実施
ターゲットのIPアドレスを特定したら、次はNnmapを用いてポートスキャンを行い、サービスの稼働状況を確認します。
$ nmap -sV -p- 192.168.10.202
Starting Nmap 7.95 ( https://nmap.org ) at 2025-11-16 16:39 JST
Nmap scan report for 192.168.10.202
Host is up (0.000097s latency).
Not shown: 65531 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.0p1 Debian 4+deb7u7 (protocol 2.0)
80/tcp open http Apache httpd 2.2.22 ((Debian))
111/tcp open rpcbind 2-4 (RPC #100000)
56643/tcp open status 1 (RPC #100024)
MAC Address: 08:00:27:E8:59:35 (PCS Systemtechnik/Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.53 seconds-sV:稼働しているサービスのバージョンを確認-p-:すべてのポート(1〜65535番)を対象にスキャン
ポートスキャンを実施すると、開放されているポート番号に加え、稼働中のサービス(例:SSH、Apache)とそのバージョン情報が取得できます。これらの結果を踏まえ、次のフェーズ(脆弱性の調査)を進めていきます。
次の作業は・・・
この時点で、ターゲットマシンの基本的な情報が揃いました。次は、発見したサービスやバージョンに対して、既知の脆弱性が存在するかを調査し、エクスプロイトの有無を確認していく工程に進みます。
例えば、Searchsploitを用いて脆弱性の情報を検索したり、GVM/OpenVASやsqlmapなどのツールでWebアプリケーション診断を実施したりすることが考えられます。
実際のアプローチは多岐に渡るため、ぜひ自らの手で手法を試し、失敗と成功を繰り返しながら学習を深めてください。VulnHubはそのための安全な環境を提供してくれます。
国内外問わず、多数のユーザーが仮想マシンの解説記事を公開しています。これにより、自力での攻略が難しい場合も学習を継続しやすく、また異なるアプローチやツールの使い方も学べるため、知見を深める助けになります。
