尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

VMware搭建Windows域渗透靶场:从零构建内网攻防实验环境

VMware搭建Windows域渗透靶场:从零构建内网攻防实验环境 1. 项目概述与核心价值在安全研究和技能提升的道路上一个贴近真实、可自由操控的靶场环境至关重要。很多初学者甚至是有一定经验的安全爱好者常常卡在环境搭建这一步。网上的教程要么过于简略跳过了关键的配置细节要么环境过于复杂让人望而却步。今天我就来分享一个在VMware Workstation中用三台虚拟机搭建一个经典、完整且可控的内网域渗透测试环境的超详细步骤。这个环境将包含一台域控制器DC、一台加入域的成员服务器Member Server和一台独立的工作站Workstation模拟出企业内网中最常见的“域环境独立主机”的混合场景。为什么选择这个架构因为它覆盖了内网渗透测试中最核心的几类目标域控权限的制高点、域内服务器常见应用和数据存放点以及可能存在弱点的非域机器攻击的初始入口。通过亲手搭建这个环境你不仅能透彻理解Windows域Active Directory的工作原理如用户认证、组策略、信任关系等更能为后续学习横向移动、权限提升、域内信息收集、黄金票据等经典攻击手法提供一个绝佳的“练兵场”。整个过程我会把每一步的操作意图、可能遇到的坑以及背后的原理都讲清楚确保你跟着做一遍就能成功并且知道为什么要这么做。2. 环境整体设计与核心思路拆解2.1 拓扑结构与角色定义我们的目标网络是一个简单的C类私有网段192.168.52.0/24。在这个网段内我们将部署三台虚拟机每台扮演不同的角色共同构成一个微缩但功能完整的企业内网模型。域控制器 (DC) -WIN-ADIP地址192.168.52.10操作系统Windows Server 2008 R2核心服务Active Directory 域服务 (AD DS)、DNS 服务器、DHCP 服务器可选。角色说明这是整个域环境的大脑和心脏。它负责管理域中所有的计算机、用户账户进行集中身份验证和授权。选择Server 2008 R2是因为它经典、稳定且是很多现有企业环境中仍可能存在的系统对于理解AD基础架构非常合适。域成员服务器 (Member Server) -SRV01IP地址192.168.52.20操作系统Windows Server 2008 R2 或 Windows 7/10。核心服务可以安装IIS、SQL Server等应用服务模拟一台提供内部业务的应用服务器。角色说明这台机器已加入由WIN-AD创建的域接受域的统一管理。在渗透测试中它通常作为横向移动的中继点或数据窃取的目标。独立工作站 (Workstation) -CLIENT01IP地址192.168.52.100操作系统Windows 7 或 Windows 10。核心服务无特殊服务模拟一台普通员工办公电脑。角色说明这台机器不加入域仅通过工作组模式运行。它通常模拟一个初始攻击入口可能因为弱密码、未打补丁的漏洞或用户误操作而被攻陷进而成为攻击者跳入内网的“桥头堡”。注意在实际搭建中强烈建议为每台虚拟机拍摄“快照”Snapshot。在关键步骤完成后如系统安装完、配置完IP、提升为域控后立即拍摄一个干净的快照。这能让你在配置出错时一键回滚到正确状态极大节省时间。2.2 虚拟机与网络配置规划我们使用VMware Workstation Pro版本15及以上均可作为虚拟化平台。网络模式选择上为了隔离和可控我们使用“自定义”的VMnet网络。网络模式选择不使用NAT或桥接。我们将创建一个自定义的VMnet网络例如VMnet2并将三台虚拟机都连接到这个网络。这样做的好处是这个虚拟网络与你的物理主机及其他网络完全隔离形成一个纯粹的实验内网不会对外界产生任何影响也避免了IP冲突等问题。虚拟机配置建议DC (WIN-AD)建议分配2核CPU、2-4GB内存。因为AD和DNS服务运行需要一定资源。SRV01 CLIENT01分配1-2核CPU、1-2GB内存即可满足基础运行。磁盘每台虚拟机系统盘40-60GB足够使用“单个文件”存储虚拟机磁盘以方便管理。镜像准备你需要提前下载好Windows Server 2008 R2和Windows 7/10的ISO镜像文件。请确保使用带有SP1的Server 2008 R2以获得更好的兼容性。3. 基础环境搭建与核心配置实操3.1 创建与配置自定义虚拟网络这是确保三台机器能互通且独立的关键第一步很多问题都源于网络没配好。打开VMware Workstation点击顶部菜单栏的“编辑” - “虚拟网络编辑器”。在弹出的窗口中点击右下角的“更改设置”以获取管理员权限。点击“添加网络...”从下拉列表中选择一个未被使用的VMnet例如VMnet2然后点击“确定”。选中新添加的VMnet2在下方进行配置子网IP设置为192.168.52.0。这定义了我们虚拟内网的网段。子网掩码255.255.255.0。不要勾选“使用本地DHCP服务”。我们将手动配置静态IP这样地址固定更利于后续实验。当然你也可以开启并指定地址池如.100-.200但手动配置更能让你理解网络结构。点击“应用”然后“确定”保存设置。现在任何连接到VMnet2的虚拟机都将处于192.168.52.0/24这个独立的网络中。3.2 安装并初始化三台虚拟机接下来我们创建三台虚拟机。以DC (WIN-AD)为例其他两台步骤类似主要区别在于操作系统选择和计算机名。新建虚拟机在VMware中点击“创建新的虚拟机”选择“典型”或“自定义”均可。我习惯用“自定义”以便更精细控制。选择硬件兼容性默认的Workstation版本即可。安装来源选择“安装程序光盘映像文件(iso)”并浏览指向你下载的Windows Server 2008 R2 ISO文件。命名与位置给虚拟机命名为WIN-AD并选择一个空间充足的目录存放。固件类型选择BIOS。虽然UEFI更现代但Server 2008 R2对BIOS兼容性更好避免不必要的引导问题。处理器与内存按之前建议给DC分配2核和2048MB2GB内存。网络类型这是关键选择“自定义”并在下拉菜单中选择我们刚刚创建的VMnet2。I/O控制器和磁盘类型默认推荐即可LSI Logic, SCSI。选择磁盘选择“创建新虚拟磁盘”大小设为40GB选择“将虚拟磁盘存储为单个文件”。完成并安装完成向导后启动虚拟机开始安装Windows Server 2008 R2。在安装类型选择界面务必选择完整安装Full Installation而不是Server Core。系统安装过程接受许可条款。选择“自定义高级”进行全新安装。在磁盘分区界面直接下一步安装程序会自动在虚拟磁盘上创建分区。安装过程中会自动重启数次请耐心等待。首次登录配置安装完成后首次登录会强制要求更改管理员密码。为方便实验可以设置一个强密码并牢记如Admin123但绝对不要使用空密码或过于简单的密码因为后续有些服务如远程桌面在安全策略下不允许使用空密码连接。关闭“初始配置任务”窗口和“服务器管理器”窗口。重复以上过程创建并安装另外两台虚拟机SRV01同样安装Windows Server 2008 R2或Windows 7网络同样连接到VMnet2。CLIENT01安装Windows 7 或 Windows 10网络连接到VMnet2。安装完成后暂时不要做任何额外配置。先为每台刚安装好系统的虚拟机拍摄一个快照命名为“Initial_Setup”。3.3 配置静态IP地址与基础连通性测试域环境依赖稳定的网络通信尤其是DNS因此必须配置静态IP。在DC (WIN-AD)上操作右键点击桌面右下角的网络图标 - “打开网络和共享中心” - 点击左侧“更改适配器设置”。右键点击“本地连接” - “属性”。双击“Internet 协议版本 4 (TCP/IPv4)”。配置如下IP地址192.168.52.10子网掩码255.255.255.0默认网关可以不填因为我们不访问外网。如果为了某些测试需要可以填DC自己的IP192.168.52.10或不填。首选DNS服务器这是最关键的一步填写DC自己的IP192.168.52.10。因为DC自己将扮演域内DNS服务器的角色所有域成员都必须将DNS指向DC。点击“确定”保存。在SRV01 (192.168.52.20)和CLIENT01 (192.168.52.100)上重复上述步骤分别设置各自的IP和子网掩码。它们的DNS服务器必须指向DC的IP192.168.52.10。连通性测试在每台虚拟机上打开命令提示符cmd。使用ping命令测试两两之间的连通性。在DC上ping 192.168.52.20和ping 192.168.52.100在SRV01上ping 192.168.52.10和ping 192.168.52.100在CLIENT01上ping 192.168.52.10和ping 192.168.52.20如果都能ping通说明网络层通信正常。如果ping不通请检查虚拟机网络适配器是否都连接到VMnet2。各虚拟机防火墙是否暂时关闭用于测试。可以在每台机器的控制面板-Windows防火墙中暂时关闭。IP地址配置是否正确是否在同一网段。4. 构建Active Directory域控制器这是整个环境搭建的核心环节我们将把WIN-AD这台普通的服务器提升为域控制器。4.1 安装Active Directory域服务角色在DC (WIN-AD)上从“开始”菜单打开“服务器管理器”。在左侧窗格中点击“角色”然后在右侧主窗口点击“添加角色”。在“开始之前”页面直接点击“下一步”。在“选择服务器角色”页面勾选“Active Directory域服务”。在弹出的对话框中点击“添加必需的功能”然后点击“下一步”。在“Active Directory域服务”简介页面直接点击“下一步”。在“确认安装选择”页面点击“安装”。安装完成后不要关闭窗口。点击“关闭该向导并启动Active Directory域服务安装向导(dcpromo.exe)”。或者你也可以在“运行”中输入dcpromo来启动。4.2 运行AD域服务安装向导 (dcpromo)在“欢迎”页面勾选“使用高级模式安装”这能提供更多选项点击“下一步”。操作系统兼容性直接点击“下一步”。选择部署配置因为是创建新域和新林所以选择“在新林中新建域”点击“下一步”。命名林根域这是你域的名字。为了简单直观我们使用一个简单的内部域名例如lab.local。输入lab.local点击“下一步”。注意.local并非互联网有效域名专用于内部网络非常适合实验环境。设置林功能级别选择“Windows Server 2008 R2”。功能级别决定了域中可用的AD功能以及可以加入的旧版服务器类型。选择2008 R2能兼容我们所有的实验机器。其他域控制器选项DNS服务器默认已勾选必须勾选。域控制器必须也是DNS服务器。全局编录默认已勾选保留。只读域控制器不勾选。我们创建的是标准可写的域控制器。点击“下一步”。可能会弹出警告说“无法创建该DNS服务器的委派”这是正常的因为我们是全新安装点击“是”继续。数据库、日志文件和SYSVOL的位置保持默认即可点击“下一步”。目录服务还原模式的Administrator密码设置一个密码如DSRM123。这个密码是在目录服务修复模式下使用的请务必牢记。点击“下一步”。摘要检查所有配置信息确认无误后点击“下一步”。安装程序将开始配置AD这个过程可能需要几分钟。安装完成后系统会提示需要重启。点击“立即重新启动”。4.3 验证域控制器安装重启后使用之前设置的本地管理员密码登录。你会发现登录界面发生了变化现在你可以选择登录到“LAB”域了。登录后打开“服务器管理器”在“角色”摘要下应该能看到“Active Directory域服务”已安装。打开“开始”菜单 - “管理工具”你应该能看到多了很多AD管理工具如“Active Directory用户和计算机”、“Active Directory域和信任关系”等。打开命令提示符输入netdom query fsmo可以查看五大FSMO操作主机角色是否都在本机确认域控制器功能完整。至此你的域控制器WIN-AD.lab.local已经搭建完成。立即为这台虚拟机拍摄一个快照命名为“DC_Promoted”。5. 将服务器与工作站加入域环境现在我们让其他机器成为这个域的一部分。5.1 将SRV01加入域登录SRV01使用本地管理员账户。右键点击“计算机” - “属性”点击“更改设置”。在“计算机名”选项卡点击“更改...”。在弹出的对话框中选择“域”并输入我们创建的域名lab.local点击“确定”。此时会弹出凭据窗口要求输入有权限将计算机加入域的账户信息。输入域管理员账户LAB\Administrator注意格式域名\用户名密码是你在DC上设置的域管理员密码与本地管理员密码可能相同也可能不同取决于你之前的设置。如果成功你会看到“欢迎加入lab.local域”的提示。点击“确定”系统会提示需要重启。重启SRV01。5.2 验证SRV01的域成员身份重启后登录界面会显示“登录到LAB”。使用域账户登录例如LAB\Administrator。登录成功后再次打开“系统属性”确认计算机已隶属于lab.local域。打开命令提示符输入nslookup win-ad.lab.local。这个命令通过DNS查询域控制器的地址。如果返回的地址是192.168.52.10说明DNS解析和域成员身份都正常。5.3 保持CLIENT01为独立工作站CLIENT01我们特意不将其加入域。保持其“计算机名/域”设置为工作组例如默认的WORKGROUP。这样它就模拟了一台未纳入企业统一管理的个人电脑或边缘设备。网络配置回顾请再次确认CLIENT01的DNS服务器地址指向的是DC (192.168.52.10)。即使它不加入域为了能通过主机名访问域内资源在某些攻击场景中需要DNS指向域控也是有好处的。6. 域内基础服务配置与用户管理一个完整的域环境除了机器还需要用户和组。我们来创建一些模拟的域账户。6.1 创建组织单元OU与用户在DC (WIN-AD)上操作打开“开始” - “管理工具” - “Active Directory 用户和计算机”。在左侧控制台树中展开lab.local域。右键点击域名lab.local选择“新建” - “组织单位”。命名为“Employees”。OU用于逻辑上分组管理用户和计算机比直接在“Users”容器里管理更清晰。右键点击新建的“Employees” OU选择“新建” - “用户”。填写用户信息例如姓Zhang名San用户登录名zhangsan点击“下一步”。设置密码例如User123。根据实验需要可以勾选“用户下次登录时须更改密码”或“密码永不过期”。为了实验方便我通常勾选“密码永不过期”。点击“下一步”完成创建。重复步骤再创建几个用户如lisiwangwu。6.2 创建域管理员组并添加用户为了模拟权限分离我们创建一个自定义的管理员组。在“Employees” OU上右键选择“新建” - “组”。组名输入Domain Admins Lab注意避免与内置的Domain Admins组完全重名组作用域选择“全局”组类型选择“安全组”。双击新建的Domain Admins Lab组切换到“成员”选项卡点击“添加”。输入zhangsan点击“检查名称”然后确定。这样用户zhangsan就拥有了这个组的权限。接下来我们需要给这个组委派权限。在AD用户和计算机中点击菜单栏的“查看”确保“高级功能”已勾选。右键点击lab.local域根选择“属性”。切换到“安全”选项卡点击“高级”。点击“添加”选择对象类型为“组”输入Domain Admins Lab点击“检查名称”后确定。在“权限项目”中在“应用于”下拉框选择“这个对象及全部子对象”然后在权限列表里勾选“完全控制”。点击“确定”层层返回。这样zhangsan用户就拥有了对整个域的管理权限模拟一个高权限账户。6.3 配置组策略GPO示例组策略是域管理的利器。我们设置一个简单的策略让所有域成员自动关闭防火墙仅用于实验环境真实环境切勿如此。在DC上打开“开始” - “管理工具” - “组策略管理”。展开“林lab.local” - “域” -lab.local。右键点击lab.local选择“在这个域中创建GPO并在此处链接”。命名为“Disable Firewall for Lab”点击“确定”。右键点击新建的GPO“Disable Firewall for Lab”选择“编辑”。在打开的组策略管理编辑器中依次展开“计算机配置” - “策略” - “Windows 设置” - “安全设置” - “高级安全Windows防火墙” - “高级安全Windows防火墙 - LDAP...”。在右侧右键点击“域配置文件”选择“属性”。将“防火墙状态”设置为“关闭”点击“确定”。关闭编辑器。策略不会立即生效。你可以在域成员机SRV01上打开命令提示符输入gpupdate /force强制更新组策略然后重启。重启后其防火墙应被关闭。7. 环境验证与渗透测试前置准备在开始任何安全测试之前验证环境的正确性和做好准备工作至关重要。7.1 基础连通性与服务验证DNS解析测试在CLIENT01非域成员上打开cmd执行nslookup win-ad.lab.local和nslookup srv01.lab.local。都应正确返回IP地址(192.168.52.10和192.168.52.20)。这说明DNS服务工作正常非域机器也能解析域内主机名。域身份验证测试在SRV01域成员上尝试用LAB\lisi一个普通域用户登录。应该能成功登录但权限受限。再用LAB\zhangsan我们赋予的管理员组用户登录权限应该更高例如可以安装软件。网络共享访问在DC上创建一个文件夹右键“属性” - “共享”选项卡设置一个共享如C:\Share并赋予Everyone读取权限。在CLIENT01上打开“运行”WinR输入\\192.168.52.10\Share应该能匿名访问因为防火墙已关且共享权限允许。在SRV01上输入\\WIN-AD\Share使用域名访问同样应能成功。7.2 为渗透测试安装常用工具为了模拟攻击我们需要在攻击者机器通常是CLIENT01因为它模拟了初始入口点上安装一些工具。注意以下操作仅在实验虚拟机中进行。安装Python及常用库下载Python安装包安装时务必勾选“Add Python to PATH”。安装后用pip安装impacket库这是一个用于对SMB、HTTP等协议进行低级编程访问的利器很多内网工具依赖它pip install impacket。安装Nmap下载Windows版的Nmap安装程序安装时选择安装所有组件包括Npcap。Nmap是端口扫描和网络发现的必备工具。安装Wireshark用于抓包分析网络流量理解协议交互。准备Mimikatz这是一个著名的密码提取工具。从其官方GitHub发布页下载最新版。重要Windows Defender或杀毒软件可能会将其报毒在实验虚拟机中你需要临时禁用实时保护或添加排除项才能运行。安装PowerShell确保系统是PowerShell 2.0或以上Win7默认是2.0。很多后期利用工具是PowerShell脚本。在SRV01和DC上你也可以有选择地安装一些“靶标”服务例如在SRV01上安装IIS搭建一个简单的网页。在SRV01或DC上安装一个旧版本的MySQL或SQL Server并配置弱密码模拟存在漏洞的服务。为所有虚拟机拍摄最终快照在完成所有基础配置和工具安装后为每台虚拟机拍摄一个干净的快照命名为“Ready_For_Pentest”。这是你的黄金镜像任何时候环境乱了都可以快速回到这个起点。8. 常见问题与排查技巧实录搭建过程中你几乎一定会遇到一些问题。这里记录了我踩过的坑和解决方法。8.1 网络连通性问题症状虚拟机之间无法ping通。排查检查VMnet配置确保三台虚拟机网卡都连接到同一个自定义网络如VMnet2并且子网IP设置正确。检查防火墙在测试阶段可以暂时在所有虚拟机的“控制面板-Windows防火墙”中点击“打开或关闭Windows防火墙”选择“关闭”来排除干扰。检查IP配置用ipconfig /all命令仔细核对每台机器的IPv4地址、子网掩码和DNS服务器。确保DNS指向DC192.168.52.10。检查VMware服务在物理主机上运行services.msc确保“VMware NAT Service”和“VMware DHCP Service”是停止状态因为我们用的是自定义静态IP但“VMware Hostd”和“VMware Workstation Server”等服务是运行的。8.2 加入域失败症状在SRV01上尝试加入lab.local域时提示“找不到网络路径”或“域控制器不可用”。排查DNS是首要疑犯99%的加域问题源于DNS。确保SRV01的DNS服务器地址唯一地、正确地指向了DC的IP192.168.52.10。不要在DNS列表里添加其他地址如8.8.8.8。从SRV01反向解析DC在SRV01的cmd中执行nslookup 192.168.52.10。它应该返回win-ad.lab.local。如果没有说明DC上的DNS反向查找区域可能未正确配置或记录未创建。一个快速的解决方法是在DC的DNS管理器里为52.168.192.in-addr.arpa区域如果不存在则创建添加一个指向win-ad.lab.local的PTR记录。时间同步确保DC和要加域的机器系统时间相差不大最好在5分钟内。过大的时间差会导致Kerberos认证失败。使用FQDN尝试用域的完全限定名FQDNlab.local而不是NetBIOS名LAB。8.3 域用户登录失败或权限异常症状使用域账户如LAB\zhangsan在成员服务器上登录失败或登录后没有预期权限。排查确认用户状态在DC的“AD用户和计算机”中确认该用户账户未被禁用密码未过期。本地登录权限默认情况下普通域用户没有在域成员服务器上本地登录的权限。你需要将该用户或所属的域全局组如Domain Users添加到成员服务器的“本地安全策略”-“本地策略”-“用户权限分配”-“允许本地登录”中。组策略生效在成员服务器上运行gpresult /r查看应用到的组策略结果。运行gpupdate /force强制更新策略并重启。缓存凭据如果之前用另一个账户登录过尝试重启后登录。8.4 快照管理与性能问题虚拟机运行越来越慢快照文件巨大。技巧快照不是备份快照会显著影响磁盘I/O性能。只在关键、干净的状态点如系统刚装好、域控升级完成、环境配置就绪拍摄快照。定期清理实验完成后如果确定某个快照链不再需要使用VMware的“快照管理器”删除旧的快照这会合并磁盘文件释放空间并提升性能。内存分配不要给虚拟机分配超过物理主机一半的内存。确保主机本身有足够内存避免使用交换文件导致整体卡顿。搭建这样一个环境最磨炼人的不是点击下一步而是遇到报错时冷静排查的能力。每一次排错都会让你对AD、DNS、网络认证的理解加深一层。这个环境搭好后你就可以安全地练习各种内网渗透技术比如用Nmap扫描网段发现存活主机和服务用net命令进行域内信息枚举尝试传递哈希攻击或者利用MS17-010永恒之蓝漏洞进行横向移动而不用担心影响任何真实系统。记住所有操作都在这个封闭的沙盒中进行这是你成为合格安全研究员的第一个也是最重要的实验室。
返回列表