VMware虚拟机搭建渗透网络及原理解析

本文介绍了使用VMware搭建渗透测试环境的方法。先阐述了桥接、NAT、Host - Only三种模式的原理,接着进行对应实验。还构建小型企业网络模型,配置相关主机并测试通信。最后总结了不同系统和VMware的配置文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

作为一名黑客(我没说我是hk),你要了解目标网络的拓扑,这样才能更加准确的模拟和实施渗透攻击。作为学生的我,只能用VMware来模拟企业环境。这一步很关键,所以不仅要能用虚拟机,还要清楚虚拟机不同模式的原理,更要通过配置不同模式连通企业的网络,下面这篇文章就来带你入门如何搭建渗透测试环境

这篇文章的写作顺序:
1.先熟悉VMware三种模式
本人是MacBook,如果你是windows电脑可以参考
https://blog.csdn.net/weixin_42442713/article/details/80903173
2.实验VMware三种模式
3.按照metasploit魔鬼训练营中的环境搭建网络(一个小公司网路模型)
//# vmware网络配置的进阶请参照官网教程
//# https://docs.vmware.com/cn/VMware-Workstation-Pro/index.html


vmnet8: nat模式下主机与虚拟机通信的网卡
Vmnet8: nat模式下的虚拟交换机
vmnet1: host-only模式下主机与虚拟机通信的网卡
Vmnet0: 桥接模式下的虚拟交换机


理论:

桥接模式

主机和虚拟机是邻居,就好比你的电脑和你宿舍同学的电脑之间的关系,主机和虚拟机都连接在虚拟交换机上,所以你应该把虚拟机配置为主机所在的网段(不配置的话无法和主机通信)。主机用他原本的网卡通过虚拟网桥和虚拟交换机连接。如果真实的路由器发出了dncp信息或者路由更新,主机会通过广播的方式把信息通过虚拟网桥传达给虚拟机(可以见实验的图片),前提是你把路由器配置成网关,否则,你的虚拟机不会理睬路由器的任何通知,并且你也不能上网。

NAT模式

如果网络IP资源紧缺,但是又希望你的虚拟机能够连网,这时候NAT模式是最好的选择。NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以连网。

Host-Only模式

Host-Only模式就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。

实验:

VMWare的配置在网络模块,可自行配置。Internet共享是nat。自定义是Host-Only。接下来演示的都是虚拟机的网络配置
在这里插入图片描述

桥接模式

图片仔细看包括文字
在这里插入图片描述
桥接模式下虚拟机的IP地址要和虚拟机处于同一网段,网关相同,dns服务器相同
查看MacBook电脑的网关地址和dns地址
网关是192.168.43.1
dns是192.168.43.1
在这里插入图片描述
在这里插入图片描述
1.kali中/etc/network/interfaces配置网络

auto eth0
iface eth0 inet static
address 192.168.43.103
netmask 255.255.255.0
gateway 192.168.43.1

/etc/resolv.conf配置dns

nameserver 192.168.43.1

如果嫌麻烦直接就

auto eth0
iface eth0 inet dhcp

真实的dncp服务器会帮你获取ip。网关和dns可以在你访问网络的时候动态获取
/etc/init.d/networking restart重新启动网络
kali虚拟机的网卡eth0
在这里插入图片描述

我主机的网卡是en0
在这里插入图片描述

实验:

虚拟机ping主机,在en0抓包
在这里插入图片描述
虚拟机ping 一下外网114.114.114.114并在主机的en0抓包
在这里插入图片描述

NAT模式

如果网络IP资源紧缺,但是又希望你的虚拟机能够连网,这时候NAT模式是最好的选择。NAT模式借助虚拟NAT设备和虚拟DHCP服务器,使得虚拟机可以连网。
在这里插入图片描述
虚拟机和主机的网卡vmnet8必须处于同一网段,你可以自己配置(/Library/Preferences/VMware\ Fusion/vmnet8,nat.conf找网关,dhcpd.conf找可定义的ip范围),也可以使用虚拟dhcp来自动获取。
这里我就直接使用虚拟dhcp服务器自动获取了
配置/etc/network/interfaces

auto eth0
iface eth0 inet dhcp

/etc/init.d/networking restart重启
在这里插入图片描述

主机MacBook的两个网卡:
原先就存在的en0,ip是192.168.43.15
和虚拟机通信的网卡vmnet8,ip是192.168.83.1
在这里插入图片描述

在这里插入图片描述

实验:

虚拟机和主机通信:wireshark监听vmnet8网卡
虚拟机和外网通信:wireshark监听en0网卡

1.虚拟机和主机通信:
虚拟机使用192.168.83.143,通过Vmnet8虚拟交换机,与我的vmnet8网卡192.168.83.1通信
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2.虚拟机和外网通信:
虚拟机使用192.168.83.143,通过Vmnet8虚拟交换机,到达nat转换器转换成主机en0的ip192.168.43.15和外网通信
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
虚拟机主动向外网建立通信是可以的,外网不能主动向虚拟机建立通信。

Host-Only模式

Host-Only模式就是NAT模式去除了虚拟NAT设备,然后使用VMware Network Adapter VMnet1虚拟网卡连接VMnet1虚拟交换机来与虚拟机通信的,Host-Only模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。
在这里插入图片描述
仍然采用dhcp配置的方法:

auto eth0
iface eth0 inet dhcp

主机vmnet1网卡ip
在这里插入图片描述

kali虚拟机eth0网卡ip
在这里插入图片描述二者必须是一个网段

实验:

虚拟机ping主机,主机vmnet1抓包。可以ping通
在这里插入图片描述
虚拟机ping外网114.114.114.114
在这里插入图片描述
主机在vmnet1入口处丢弃虚拟机访问外网的包,外网自然也不可能访问内网

小型的企业网络模型

metasploit魔鬼训练营pdf下载:
https://pan.baidu.com/s/1xHP9vHf9nk4X_sg-GXte5g 提取码: 7rn9
实验环境下载:
https://pan.baidu.com/s/1uliDaot6_FL_kXD1SxweEA 提取码: 6j8k
网络拓扑图
在这里插入图片描述
我还是大学生,还没去过企业。但是就我推测,拓扑的意思是,外网和企业内网都可以访问dmz区域(内网和外网之间的区域,目的是外网方便访问,内网更加安全),但是外网不可以访问企业内网。企业内网访问外网进行限制,可以访问某些指定网站。
其中dnz区域外侧应该还有个防火墙,过滤规则是只允许外网访问dmz,并且只允许内网访问部分外网。
而网关服务器又是另一层过滤,阻挡一切从外网访问内网的数据,放行内网的数据。

说的不对的指正一下哈,我声明,这是我的猜测,不要误导一些人。

那我就按照书上的教程来配置环境。
除去宿主主机,一共需要配置5个电脑
1.DMZ区域的网站服务器OWASP-Ubuntu
2.DMZ区域的后台服务器Win2003
3.自己的攻击机,就用我的kali2020了
4.网关服务器Linux-Ubuntu
5.公司内网客户机WinXP

下面的拓扑我自己画的,献丑了,有不对的一定要帮我纠正,谢谢


我画错了,nat设备连接eth0网卡,而,VMnet8网卡是虚拟机与主机通信用的(我回过头重新学习发现的错误)

这个拓扑图务必要仔细的研究,方便深入理解VMware搭建的网络
在这里插入图片描述

那么下面我先配置这5个主机

配置

声明下,nat模式的虚拟机如果不使用dhcp而是static,也是可以的,但是有一定可能性你配置的static和另一个虚拟机从dhcp获取的ip重叠,但是问题不大。既然这样就都配置成static就好了
1.winxp和win2003
在这里插入图片描述

2.OWASP-Ubuntu
VMware选择nat模式
编辑/etc/network/interfaces

auto eth0 
        iface eth0 inet static
        address 10.10.10.129
        netmask 255.255.255.0
        gateway 10.10.10.254

/etc/init.d/networking restart重启

3.kali2020
VMware选择nat模式
编辑/etc/network/interfaces

auto eth0 
        iface eth0 inet static
        address 10.10.10.128
        netmask 255.255.255.0
        gateway 10.10.10.254

/etc/init.d/networking restart重启

4.网关Ubuntu
VMware选择nat模式
编辑/etc/network/interfaces

auto eth0
iface eth0 inet static
        address 10.10.10.254
        netmask 255.255.255.0
        network 10.10.10.0
        broadcast 10.10.10.255
        gateway 10.10.10.2
iface eth1 inet static
        address 192.168.10.254
        netmask 255.255.255.0
        network 192.168.10.0
        broadcast192.168.10.255

我配置的eth0的网关是虚拟nat的地址10.10.10.2,这个地址在/Library/Preferences/VMware\ Fusion/vmnet8/nat.conf,当然也可以自己修改这个地址然后重新启动虚拟机

虚拟机关机,然后VMware中添加设备->网络适配器->添加
在这里插入图片描述
重启查看
在这里插入图片描述
设置网关转发功能
编辑/etc/rc.local
在末尾加上一句

/sbin/iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -d 10.10.10.0/24 -o eth0 -j MASQUERADE

书上的命令没有 -d 10.10.10.0/24,不加上的话公司内网的用户还是能够随意访问外网,起不到host-only的效果,所以加上后只允许公司内网的人访问dmz区域

iptables命令可以简单的在
http://www.zsythink.net/archives/tag/iptables/page/2/
学习一下,其中
-t nat 是选择表nat
-A POSTROUTING 是在POSTROUTING链添加规则
-s 192.168.10.0/24 来源是 192.168.10.0/24的主机
-d 10.10.10.0/24 目的是10.10.10.0/24的主机
-o eth0 转发到eth0网卡
-j MASQUERADE 自动nat转换

一整个话的意思就是从192.168.10.0/24网段来的发往10.10.10.0/24网段的数据包都转发到eth0网卡(10.10.10.0/24网段)并且设置自动nat

通信

在这里插入图片描述
winxp:可以访问dmz区域,不可以访问外网
ping 10.10.10.128通
在这里插入图片描述
ping 114.114.114.114不通
在这里插入图片描述
kali2020:可以访问外网,可以访问内网
ping 114.114.114.114通
在这里插入图片描述
ping 192.168.10.128通
在这里插入图片描述
但是我认为这样配置有很多缺陷,比如说没有限制外网的用户,这样不是等于随便给别人入侵吗,也许这就是模拟环境和实战的差距,书上教的和真实的永远是有差距的

其他的尝试

我好奇如果dmz的owasp-ubuntu设置dhcp获得一个ip,然后kali2020静态设置owasp-ubuntu的ip,结果会怎么样。发现这样是可以的!ping的对象根本不知道你是dhcp获取的真ip还是static设置的伪装ip。头脑中联想出一系列搞事情的画面…
在这里插入图片描述
在这里插入图片描述

最后总结一下配置文件

linux&windows:
配置网络ip
kali:/etc/network/interfaces
centos:/etc/sysconfig/network-scripts/ifcfg-ens33
配置dns
/etc/resolv.conf
配置域名映射,优先于/etc/resolv.conf
/etc/hosts
C:\windows\system32\drivers\etc\hosts
启动执行的最后一个用户配置脚本
/etc/rc.local
配置内核
/etc/sysctl.conf

macos-VMWare:
配置虚拟网络
/Library/Preferences/VMware\ Fusion/networking
配置虚拟dhcp服务器
/Library/Preferences/VMware\ Fusion/vmnet1/dhcpd.conf
/Library/Preferences/VMware\ Fusion/vmnet8/dhcpd.conf
配置虚拟nat服务器
/Library/Preferences/VMware\ Fusion/vmnet8/nat.conf

<think>嗯,用户想配置Kali Linux虚拟机网络访问外部网络,这确实是个很实用的需求。从用户提问来看,ta应该是个刚开始接触虚拟机的安全爱好者,可能正在搭建渗透测试环境。用户特意提到"访问外部网络",说明ta可能需要更新系统或下载工具包,这对Kali用户确实很关键。 我注意到用户引用了三处资料,但第三处关于Metasploit payload设置的引用其实和网络配置关系不大,可能是误粘贴。重点应该放在前两个引用上:引用1详细解释了VMware NAT的工作原理,引用2则给出了具体的配置文件修改示例。这说明用户已经做过一些功课,但可能对具体操作步骤还有疑问。 用户可能遇到的主要困惑点在于:1) 如何选择正确的网络模式(NAT还是桥接) 2) 配置文件的具体参数设置 3) 测试网络是否真正连通。特别是网关和子网掩码的设置,新手很容易搞错。考虑到Kali默认使用NetworkManager,其实还有更简单的图形化方法可以补充。 在回答时,我需要强调几个关键细节:网络模式的选择逻辑(NAT适合大多数场景)、配置文件的位置(/etc/network/interfaces)、重启网络服务的命令(systemctl restart networking)。对于图形界面用户,额外说明NetworkManager的配置方法也很重要,因为很多新手不熟悉命令行。 测试环节特别要提醒用户检查DNS解析,因为即使能ping通IP但无法解析域名也很常见。引用中提到的"ip地址设置为自己主机网段"这个描述需要更精确——应该强调必须和VMware虚拟网络编辑器里的子网保持一致。 最后生成的三个问题都很有针对性:性能优化针对高级用户,故障排除解决常见痛点,NAT原理则帮助理解底层机制。特别是第二个关于"能ping通但无法上网"的问题,这确实是实际使用中最高频的故障现象。</think>好的,配置 Kali Linux 虚拟机访问外部网络最常用的方法是使用 VMware 的 **NAT 模式**。以下是清晰的设置步骤: ### 📌 方法一:使用 VMware NAT 模式(推荐,简单易行) 1. **关闭 Kali Linux 虚拟机。** 2. **在 VMware 中配置网络适配器:** * 在 VMware Workstation/Player 中,选中你的 Kali Linux 虚拟机(确保它处于关闭状态)。 * 右键点击虚拟机 -> `设置` (Settings)。 * 选择 `硬件` (Hardware) 选项卡下的 `网络适配器` (Network Adapter)。 * 在右侧的 `网络连接` (Network Connection) 部分,选择 **`NAT 模式:用于共享主机的 IP 地址`** (NAT Mode: Used to share the host's IP address)。 * 点击 `确定` (OK) 保存设置。 3. **启动 Kali Linux 虚拟机。** 4. **配置 Kali Linux 网络(通常自动完成):** * **现代 Kali Linux (使用 NetworkManager):** * 启动后,Kali 通常会自动通过 DHCP 从 VMware 的 NAT 服务获取 IP 地址、网关和 DNS。 * 检查网络状态:在终端输入 `ip a` 或 `ifconfig` (如果已安装) 查看网络接口(通常是 `eth0` 或 `ens33`)是否获得了 IP 地址(类似 `192.168.x.x`)。 * 尝试访问外部网络:`ping 8.8.8.8` (测试网络连通性) 和 `ping google.com` (测试 DNS 解析)。 * **如果未自动获取或使用旧版/最小化安装:** * 编辑网络配置文件:`sudo nano /etc/network/interfaces` * 确保主要接口(如 `eth0`)配置为 DHCP: ```bash auto eth0 iface eth0 inet dhcp ``` * 保存文件 (`Ctrl+O`, `Enter`, `Ctrl+X`)。 * 重启网络服务:`sudo systemctl restart networking` 或 `sudo /etc/init.d/networking restart`。 * 再次检查 `ip a` 和测试网络连接。 > **NAT 模式工作原理:** VMware 内置的 NAT 服务会为虚拟机分配一个私有 IP 地址(在主机的一个独立子网内)。当虚拟机访问外部网络时,NAT 服务会将虚拟机的私有 IP 地址转换为主机的物理 IP 地址。外部网络看到的请求源是主机 IP。返回的数据包由 NAT 服务根据映射关系转换回虚拟机的私有 IP 地址并转发给它。这样虚拟机就能共享主机网络连接访问外部,同时外部网络无法直接访问虚拟机,提供了一层安全隔离[^1]。 ### 📌 方法二:使用 VMware 桥接模式(虚拟机获得独立局域网 IP) 如果需要虚拟机像一台物理机一样直接连接到你的物理网络(获得主机同网段的 IP),可以使用桥接模式: 1. **关闭 Kali Linux 虚拟机。** 2. **在 VMware 中配置网络适配器:** * 同方法一步骤 2,进入网络适配器设置。 * 选择 **`桥接模式:直接连接到物理网络`** (Bridged: Connect directly to the physical network)。 * *(可选)* 如果主机有多个物理网卡,在下方选择正确的 `桥接到` (Bridged to) 的物理网卡(通常是连接到你路由器的网卡或无线网卡)。 * 点击 `确定` (OK) 保存。 3. **启动 Kali Linux 虚拟机。** 4. **配置 Kali Linux 网络:** * **使用 DHCP (常见):** * 同方法一第 4 步的 DHCP 配置(编辑 `/etc/network/interfaces` 或依赖 NetworkManager)。 * 虚拟机将从你的物理路由器获取 IP 地址(主机在同一网段,如 `192.168.1.x`)。 * **使用静态 IP (可选,需确保地址不冲突):** * 编辑 `/etc/network/interfaces`: ```bash auto eth0 iface eth0 inet static address 192.168.1.150 # 替换为你的局域网内可用IP netmask 255.255.255.0 # 替换为你的子网掩码 gateway 192.168.1.1 # 替换为你的路由器网关IP dns-nameservers 8.8.8.8 192.168.1.1 # 替换为你的DNS服务器 ``` * 保存文件。 * 重启网络服务。 5. **测试网络连接:** `ping 8.8.8.8`, `ping google.com`。 ### 📌 图形界面配置 (NetworkManager - 推荐) 如果 Kali 安装了图形界面和 NetworkManager(默认安装通常包含): 1. 点击右上角的网络图标。 2. 选择 `有线连接` 或对应的网络接口。 3. 点击 `有线设置` 或齿轮图标。 4. **对于 NAT/DHCP:** * 在 `IPv4` 或 `IPv6` 选项卡下,选择 `自动 (DHCP)`。 * 确保 `DNS` 设置为 `自动`。 * 点击 `应用`。 5. **对于静态 IP (桥接模式常用):** * 在 `IPv4` 选项卡下,选择 `手动`。 * 点击 `地址` 旁边的 `添加`。 * 输入 `地址` (如 192.168.1.150), `子网掩码` (通常 24 等同于 255.255.255.0), `网关` (如 192.168.1.1)。 * 在 `DNS` 部分输入 DNS 服务器地址 (如 8.8.8.8, 192.168.1.1)。 * 点击 `应用`。 6. 切换网络连接的开关或重启网络服务使更改生效。 ### 📌 关键检查点 * **VMware 设置:** 确认虚拟机网络适配器模式选择正确(NAT 或 桥接)。 * **IP 地址:** `ip a` / `ifconfig` 查看接口是否获得有效 IP。 * NAT 模式:IP 应在 `192.168.x.x` (x 通常由 VMware 决定,如 192.168.152.0/24)。 * 桥接模式:IP 应在你物理网络的网段内(如 192.168.1.0/24)。 * **网关:** `ip route` 或 `route -n` 查看默认网关是否正确设置(NAT 模式网关通常是 VMware NAT 网关,如 192.168.x.2;桥接模式是你的物理路由器 IP)。 * **DNS 解析:** `ping 8.8.8.8` 通但 `ping google.com` 不通,说明 DNS 配置有问题。检查 `/etc/resolv.conf` 中的 DNS 服务器是否正确,或在 NetworkManager 设置中检查 DNS。 * **防火墙:** 确保 Kali Linux 本地防火墙(如 `ufw`)没有阻止出站连接(新安装 Kali 通常默认关闭防火墙)。检查状态:`sudo ufw status`。 * **VMware 服务:** 确保主机上的 VMware NAT 和 DHCP 服务正在运行(在 Windows 服务管理器中查看 `VMware NAT Service` 和 `VMware DHCP Service`)。 **总结:对于大多数只需要访问互联网的场景,使用 VMware 的 NAT 模式并让 Kali Linux 通过 DHCP 自动获取网络配置是最简单、最可靠的方法[^1]。** 桥接模式适用于需要虚拟机局域网中拥有独立身份的情况。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值