ラボの作り方 — 自分の PC に攻撃ラボを構築する のサムネイル

ラボの作り方 — 自分の PC に攻撃ラボを構築する

⏱ 約 11 分 view 8 like 0 LOG_DATE:2026-07-11
目次 / TOC

Hacking Labo の標的マシンは、あなたの PC の VirtualBox に立ち上げて攻撃します。このガイドでは、攻撃側の Kali Linux と標的マシンを host-only ネットワーク (192.168.56.0/24) でつなぎ、サイトの解説ページを読みながら手を動かせる環境を、手順どおりに構築します。対象読者は初〜中級のセキュリティ学習者。VirtualBox も Vagrant も初めてで構いません。上から順に進めれば、最初の標的 (Levi = 192.168.56.50) に nmap を撃てる状態になります。

▸ 最初に読む — 安全の大前提

標的マシンは意図的に脆弱です。必ず host-only ネットワークだけで使ってください。ブリッジ接続やポートフォワードでインターネットに晒すと、あなたの標的が第三者の攻撃対象になります。詳細は最後の「安全上の注意」を必ず読んでください。

01

全体像 — 作るのは 2 台の VM #

構築するのは、たった 2 台の仮想マシンです。

                         あなたの PC (Windows / macOS / Linux)
  ┌──────────────────────────────────────────────────────────────────┐
  │                                                                    │
  │   ┌───────────────────┐        host-only          ┌─────────────┐ │
  │   │   Kali Linux VM   │   192.168.56.0/24         │  標的 VM     │ │
  │   │  (攻撃者)          │◀─────────────────────────▶│ (脆弱)       │ │
  │   │  192.168.56.10    │   VirtualBox の隔離網      │ 192.168.56.5X│ │
  │   └───────────────────┘   (外部に出ない)           └─────────────┘ │
  │                                                                    │
  └──────────────────────────────────────────────────────────────────┘
       あなたが操作        ─ nmap / metasploit / etc ─▶      攻撃対象
  • Kali VM (攻撃者): あなたが実際に操作する端末。nmapmetasploitgobuster などが入っています。
  • 標的 VM (脆弱): vagrant up で立ち上がる、意図的に穴のあるサーバ。ここを攻略してフラグを取ります。
  • host-only ネットワーク (192.168.56.0/24): この 2 台だけが会話できる、外部から隔離された仮想 LAN。実機の家庭内 LAN やインターネットとは切り離されています。

標的の IP は固定で割り当てられており、vagrant up すると必ずこの IP で出現します。

slug名前難易度IP攻略の要点 (foothold → privesc)
leviLevieasy192.168.56.50SNMP + PostgreSQL RCE → sudo systemctl (GTFOBins)
box-01-lazyadminLazyAdmineasy192.168.56.51Web コマンドインジェクション → SUID PATH ハイジャック
box-02-keyholderKeyHoldereasy192.168.56.52SSH ブルートフォース → sudo tar (GTFOBins)
box-03-dropzoneDropZoneeasy192.168.56.53無制限アップロード webshell → capabilities (cap_setuid)

以降のコマンド例では標的 IP を 192.168.56.5X と書きます。攻略したいマシンの IP に読み替えてください。

02

必要なもの #

もの用途入手先
VirtualBox 7.x仮想マシンを動かす基盤virtualbox.org
Vagrant標的をコマンド一発で構築developer.hashicorp.com/vagrant
Kali Linux (VirtualBox 版)攻撃側の端末kali.org/get-kali
標的マシンのフォルダ工場から配布される machines/<slug>/マシン工場リポジトリ

Extension Pack は不要です。 このラボは host-only ネットワークだけを使うので、USB 3.0・RDP・PXE などを提供する VirtualBox Extension Pack (別ライセンス) は入れなくて構いません。

ホスト (あなたの PC) の前提:

  • メモリ: 標的 1 台は 1GB、Kali は 2〜4GB。両方を同時に立てるので 空きメモリ 4GB 以上を推奨 (8GB あると快適)。
  • CPU 仮想化支援 (VT-x / AMD-V) を BIOS/UEFI で有効化しておくこと。無効だと VM が起動しないか、極端に遅くなります。Intel なら VT-x、AMD なら AMD-V (SVM Mode) を ON。Windows では タスクマネージャ → パフォーマンス → CPU → 「仮想化: 有効」で確認できます。Hyper-V / WSL2 / メモリ整合性 (コア分離) が競合することがあります (後述)。
  • ディスク: Kali + 標的数台で 40GB 程度の空きがあると安心。

インストールしたら、まずバージョンを確認します。

powershell
VBoxManage --version vagrant --version

Windows で VBoxManage が「見つからない」場合は、まだ PATH に入っていないだけです (トラブルシュート参照)。

03

Kali VM の用意 #

攻撃側の Kali を用意します。公式の VirtualBox 版をインポートするのが最速です。

  • 方法 A (推奨): Kali の VirtualBox イメージ (.7z または .ova) をダウンロードして展開 → .vbox をダブルクリック (または VirtualBox の ファイル → 仮想アプライアンスのインポート)。初期ログインは kali / kali (初回ログイン後にパスワード変更)。
  • 方法 B: Kali の ISO から新規 VM を作ってインストール。時間はかかりますが中身を理解できます。

どちらの場合も肝心なのは、次の host-only アダプタの追加です。Kali を標的と同じ host-only 網に入れないと、そもそも通信できません。

1. host-only ネットワークの確認・作成
VBoxManage list hostonlyifs で確認。無ければ VBoxManage hostonlyif create。実際には標的を初めて vagrant up すると Vagrant が自動生成するので、先に標的を起動すればこの手順は Vagrant に任せられます。
2. Kali に 2 枚目の NIC を足す
VirtualBox マネージャで Kali VM → 設定 → ネットワーク → アダプター 2 を開き、「ネットワークアダプターを有効化」→ 割り当て「ホストオンリーアダプター」→ 名前は標的が使うものと同じ VirtualBox Host-Only Ethernet Adapter。アダプター 1 は NAT のまま残すと、Kali からツール更新のためインターネットへ出られて便利です。
3. アドレスを確認
Kali を起動し ip a | grep 192.168.56。DHCP で 192.168.56.x が付くはず。固定したいなら sudo ip addr add 192.168.56.10/24 dev eth1 (標的の .50〜.53 と重複させないこと)。
04

VirtualBox 7.x の host-only 許可レンジの罠 #

VirtualBox は 6.1.28 以降 / 7.x で、セキュリティ強化のため host-only ネットワークに割り当てられる IP を既定で 192.168.56.0/21 に制限しました。この範囲外の IP を付けようとすると、vagrant up が次のエラーで止まります。

error
The IP address configured for the host-only network is not within the allowed ranges.
▸ このラボの既定 IP なら設定不要

このラボの標的は 192.168.56.50〜 なので、既定の 192.168.56.0/21 (= 192.168.56.0〜192.168.63.255) に収まっており、通常は何も設定しなくてもそのまま動きます。範囲外の IP (例: 10.0.0.x) を使う自作マシンのときだけ、下記の許可レンジ設定が必要です。

範囲外を使いたい場合だけ、許可レンジ設定ファイル (Windows: %PROGRAMDATA%\VirtualBox\networks.conf / Linux・macOS: /etc/vbox/networks.conf) に次の 1 行を足します (無ければ新規作成)。編集後は VirtualBox を再起動してから vagrant up し直します。

networks.conf
* 192.168.56.0/21
05

標的マシンの起動 #

工場から配布された machines/<slug>/ フォルダの中に Vagrantfile があります。そのフォルダで vagrant up するだけで、標的が host-only 網に立ち上がります。

bash
cd machines/levi # 攻略したいマシンのフォルダへ vagrant up # 初回は base box (bento/ubuntu-22.04) DL で数分

Windows (PowerShell) でフォルダに cd せず起動したい場合は、$env:VAGRANT_CWD で場所を指定できます。初回は bento/ubuntu-22.04 の base box をダウンロードするため時間がかかります (2 回目以降はキャッシュ利用で速い)。起動が終われば、標的は Vagrantfile 記載の固定 IP (Levi なら 192.168.56.50) で待ち受けています。

状態確認と、停止・リセット・破棄:

やりたいことコマンド説明
状態を見るvagrant statusup / poweroff / not created を確認
停止 (後で再開)vagrant halt次回 vagrant up で続きから
新品にリセットvagrant destroy -f && vagrant upフラグや汚れた状態を捨てて完全に作り直す
完全に破棄vagrant destroy -fVM を削除 (base box は残る)

攻略の途中で壊しても、vagrant destroy -f && vagrant up で毎回新品に戻せます。フラグは (トークンを渡さなければ) 起動ごとにランダム生成されるので、作り直すと値が変わります。

06

攻撃の始め方 #

Kali から標的をスキャンし、サイトの解説ページを読み進めるのが基本の流れです。

bash
export TARGET=192.168.56.50 # IP を変数に入れると誤射を減らせる

nmap -sV "$TARGET" # バージョン付きサービススキャン (TCP) sudo nmap -sU -p 161 "$TARGET" # 一部の標的は UDP (例: Levi の SNMP) が主役

偵察結果が出たら、当サイトの該当マシンの解説ページ (machines/<slug>) を開き、foothold (初期侵入) → privesc (権限昇格) の順に手を動かします。たとえば Levi なら「SNMP でサービスを特定 → PostgreSQL のデフォルト認証 → COPY FROM PROGRAM で RCE → sudo systemctl を GTFOBins の手法で悪用して root」という流れです。user.txt (一般ユーザ) と root.txt (root) の 2 つのフラグ取得がゴールです。

▸ ヒント

各マシンには「解ける証明」として solve.sh (攻略の自動再現) が同梱されています。どうしても詰まったときの答え合わせに使えますが、まずは解説を読みながら自力で攻略するのがおすすめです。

07

トラブルシュート #

症状原因と対処
標的に ping が通らない / スキャンが返らない最頻出は Kali の host-only アダプタ未設定ip a | grep 192.168.56 が空なら 2 枚目 NIC が host-only になっていないか DHCP 未取得。Kali と標的が同じ host-only アダプタを使っているか確認。標的 OS のファイアウォールで ICMP を落とす設定でも、nmap でポートが開いていれば攻撃は可能。
VM が起動しない / VT-x 無効エラーBIOS/UEFI で仮想化支援を有効化。Windows で Hyper-V / WSL2 / メモリ整合性が有効だと VirtualBox が VT-x を掴めず失敗。管理者 PowerShell で bcdedit /set hypervisorlaunchtype off → 再起動 (戻すときは auto)。
vagrant up が VBoxManage を見つけられないVirtualBox が PATH に無いだけ。そのセッション限りで $env:PATH += ";C:\Program Files\Oracle\VirtualBox" を足す。恒久化は Windows 環境変数 Path に追加。
IP レンジのエラーで止まる04 章の networks.conf* 192.168.56.0/21 を追記して VirtualBox 再起動。既定 IP (.50〜.53) なら本来は不要。
base box の DL が遅い / 失敗する初回のみ bento/ubuntu-22.04 を取得。回線が不安定だと途中で止まる。vagrant destroy -f で片付けてから回線の良い環境で再実行。
08

安全上の注意 (最重要) #

▸ 標的は「意図的に脆弱」です。扱いを間違えると、あなた自身や他人が危険にさらされます。
  • host-only 網だけで使うこと。 標的 VM をブリッジ接続・NAT ポートフォワード・DMZ 等でインターネットや家庭内 LAN に晒さない。脆弱なサーバを外に開くと、あなたのラボが第三者に乗っ取られ踏み台にされる恐れがあります。標的の NIC は Vagrantfile で host-only に固定されています。設定を書き換えて外部に出さないこと。
  • 攻撃は自分のラボ内に限定すること。 ここで学んだ手法 (スキャン・exploit・ブルートフォース等) を、許可のない第三者のシステム・ネットワーク・サービスに対して使わない。不正アクセスは多くの国で犯罪であり、日本では不正アクセス禁止法などの対象になります。
  • Kali からの攻撃対象は 192.168.56.5X の標的だけ。 誤って家庭内 LAN やルータ、クラウド上のホストへツールを撃たないよう、宛先 IP を毎回確認。IP を環境変数に入れておくと誤射を減らせます。
  • 終わったら片付ける。 使わない標的は vagrant halt で停止、不要になったら vagrant destroy -f で破棄。放置した脆弱 VM を起動しっぱなしにしないことも安全のうちです。

このラボは「安全な砂場の中で、攻撃者の視点を身につける」ためのものです。砂場の外に手を出さない限り、思う存分試して学べます。楽しんで、そして責任を持って。

𝕏 ポスト B! はてブ