[VirtualBox] 用 NAT Network 讓多個 VM 可互連,也可連至 Internet

[VirtualBox] 用 NAT Network 讓多個 VM 可互連,也可連至 Internet

最近在研究滲透測試 (penetration testing),

想在自己的 Mac Book 上,架 VirtualBox 的虛擬機器來測試,

但遇到一個網路設定的問題:

  • 我想要兩台 VM 可以互連,這樣才能做中間人攻擊 (Man-in-the-middle attack)
  • 兩台 VM 都要可以連上 Internet
  • Mac Book 在公司/家裡網路切換時,希望 VM 的 IP 位址不需要重新設定

 

如果只要要滿足前兩點的話,用 Bridge 模式就行了,

這樣兩台 VM 都會從公司/家裡的 DHCP 取得各自的 IP,

可以互連、可以上網,只是第三點沒辦法滿足 (公司是 10.x.x.x,家裡是 192.168.x.x)…

 

參考了一下 VirtualBox 的文件,Introduction to networking modes 這章裡有個表格,

詳述各種網路模式下,VM 可以連線的範圍。

要同時滿足上面的 3 點需求的話,就只能用 NAT Network 了~

這個模式下,VM 都會取得 VirtualBox 配發的虛擬 IP,

因此不論 Mac Book 移動到哪裡,VM 的 IP 都是一樣的。

上網的話則是透過本機的網卡連出去,也沒有問題

(只不過外部的人無法從 Internet 直接連線至 VM,要用 Port Forwarding 才行)~

 

NAT Network 和 NAT 模式其實很類似,

只是 NAT 模式是每台 VM 都屬於各自的 NAT 範圍,

彼此不能互通,因此沒辦法滿足我的需求~

 

來看一下怎麼設定 NAT Network 吧~

 

1. 新增 NAT Network

先到 VirtualBox > Preferences > Network > NAT Networks,

這邊預設是空的,按下 + 鈕新增一個 NatNetwork,

接著再按下右下的設定鈕:

 

預設值應該可以不用修改,可以看到這個 NAT Network 的子網域是 10.0.2.x,

連接到這個網路的 VM 可以透過 DHCP 取得 10.0.2.x 的 IP。

至於 Supports IPv6 我目前沒有需求,就不用勾選

(一開始勾了之後,還因為我在用的應用程式不支援,反倒出了問題):

 

2. 將 VM 連接至 NAT Network

到 VM > Machine > Settings > Network,

將 VM 連接到 NAT Network (注意不是 NAT),這樣就可以了~

有多台 VM 要可以互連時,就每一台都作相同的設定就行:

 

3. 測試 NAT Network

在 VM 裡,執行 ipconfig 看看取得的 IP,

可以看到取得了 10.0.2.4 的 IP,第二台 VM 拿到的通常就是 10.0.2.5,以此類推:

C:\>ipconfig

乙太網路卡 區域連線:

   連線特定 DNS 尾碼 . . . . . . . . :
   連結-本機 IPv6 位址 . . . . . . . : fe80::89eb:1c49:9a42:f44b%11
   IPv4 位址 . . . . . . . . . . . . : 10.0.2.4
   子網路遮罩 . . . . . . . . . . . .: 255.255.255.0
   預設閘道 . . . . . . . . . . . . .: 10.0.2.1

 

要與類近的 VM (如 10.0.2.5) 互連,

或是連到 Internet (如 www.google.com),都沒有問題:

C:\>ping 10.0.2.5

Ping 10.0.2.5 (使用 32 位元組的資料):
回覆自 10.0.2.5: 位元組=32 time<1ms TTL=128
回覆自 10.0.2.5: 位元組=32 time<1ms TTL=128

C:\>ping www.google.com

Ping www.google.com [216.58.200.36] (使用 32 位元組的資料):
回覆自 216.58.200.36: 位元組=32 時間=124ms TTL=53
回覆自 216.58.200.36: 位元組=32 時間=10ms TTL=53

 

這樣子就可以開始玩 MITM attack 啦~^^

(本頁面已被瀏覽過 3,112 次)

發表迴響

你的電子郵件位址並不會被公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料