内网渗透和“域渗透”这两个词,在网络安全圈子里几乎是被绑在一起讨论的。很多人学渗透测试,一开始都在外网打转:扫端口、找Web漏洞、拿一个Webshell,然后就觉得完事了。实际上,真正值钱的目标基本都在内网,企业核心数据、管理后台、生产系统、财务系统,全都挂在内网。一次完整的域渗透,往往是从边界突破开始的,但边界突破之后的路更长、也更考验思路。
这篇文章要讲的,就是一条完整的域渗透测试主线:从搭建实验环境,到信息收集、权限提升、横向移动,最后拿到域控权限,再从蓝队视角告诉你怎么检测、怎么防。适合正在自学网络安全、想搞清楚“内网渗透到底在做什么”的读者,也适合做企业安全运维、想理解攻击者思路的朋友。我会尽量把每个环节背后的“为什么”讲清楚,而不是只扔给你几条命令。
1. 内网渗透到底是什么:一个域环境的前世今生
1.1 为什么要关注域环境
想象一下,一家公司有两百台电脑,如果没有统一认证,每个员工在每个系统上都要注册一套账号密码,IT部门光是重置密码就忙不过来。于是微软给出了Active Directory域环境这套方案:一台服务器作为域控制器(DC),整个域里的账号、密码、权限、组策略全部集中在这里管理。你登录电脑时,这台电脑要向域控验证你的身份;你访问共享文件时,域控负责判断你是否有权限。
这个设计极大提升了企业IT管理效率,但也带来一个致命的攻击视角:只要有人能控制域控,就等于控制了整个域的“身份证系统”。他可以把自己变成任何用户、访问任何电脑、读取任何共享文件。所以内网渗透里最经典的目标路径,几乎都以域控为终点。
我见过不少同学把内网渗透想得太玄乎,觉得就是“黑进一台电脑翻资料”。真做起来,你会发现难点不在单台机器,而在“网状结构”里:一台机器只是点,域是一张网。攻击者最终拿下的不是一台机器,而是一张网里所有机器之间的信任关系。理解“信任关系”这四个字,是入门域渗透的第一步。
1.2 域渗透的核心:凭据、票据和信任
Windows域环境里,默认的身份认证协议是Kerberos。这里不展开密码学细节,你可以把它理解成:你进公司大楼,前台给你一张工牌,这张工牌就是“票据”。之后你去不同楼层、开不同房间,保安都认这张工牌。攻击者在域渗透里做的事,本质上就是想办法弄到一张更高权限的工牌,或者伪造一张别人都不怀疑的工牌。
所以你会发现,域渗透过程中的攻击者其实是“小偷思维”:先偷一张普通工牌,然后在地图里找哪扇门能通到总控制室,再偷更高权限的工牌,最后进入总控制室。信息收集就是画地图,权限提升就是换工牌,横向移动就是拿着工牌在不同的门之间试。这个类比虽然简单,但能帮你把后面所有技术细节串起来。
一次完整的域渗透,大致可以分为五个阶段:边界突破、建立立足点、域内信息收集、权限提升与横向移动、控制域控并复盘。边界突破只是拿到一个小入口,真正的攻防博弈,全都发生在进入内网之后。
2. 搭建实验环境:把战场搬进虚拟机
2.1 三台虚拟机复刻一个域
学内网渗透,最忌讳的就是拿真实公司环境练手。正确的做法是自己搭靶场,把所有组件搬到虚拟机里随便折腾。
我建议的配置如下:
- DC01:Windows Server 2019,2GB内存,作为域控;
- PC01:Windows 10专业版,2GB内存,加入域;
- PC02:Windows 10专业版,2GB内存,也加入域。
虚拟机软件用VMware或VirtualBox都行。网络模式设置为自定义的“仅主机”或“内部网络”,保证环境封闭,外网访问不到。这一步不仅是安全考虑,也能避免广播流量干扰你分析问题。
DC01上的初始化过程很简单,安装AD域服务功能后,把服务器提升为域控。可以用PowerShell命令完成:
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools Install-ADDSForest -DomainName "corp.local" -DomainNetbiosName "CORP"corp.local这种域名是文档和测试专用的保留域名,用起来没有歧义。安装完成后,再把PC01和PC02加入域:
Add-Computer -DomainName "corp.local" -Restart加入域的过程会要求输入域管账号密码,这一步走通后,整台机器的登录窗口就会多出一个“登录到:CORP”的选项。随后,你可以在域控上创建几个测试账号,比如把用户分成sales、it、backup三个组,模拟常见的组织架构。
靶场环境的额外好处是:打坏了大不了拍快照恢复。真实企业域控你敢乱动,严重的话整个公司业务都要停摆。
2.2 授权与范围:动手前必须定死的规矩
这一小节可能是全文最重要的一段。正规渗透测试和违法的黑客行为的唯一界限,就是授权。你在自己靶场里怎么折腾都行,但进入任何真实网络环境前,必须有明确的授权书、IP范围、时间窗口和应急联系人。缺乏授权的扫描,哪怕只是Nmap扫端口,在法律意义上都已经是非法侵入。
我见过不少自学安全的朋友,喜欢拿附近企业的网络练手,或者随便扫公网IP,这是非常危险的行为。记住:真正的渗透测试不是“能打下来”,而是“能在授权范围内打下来,并且给出修复建议”。动手前把资产范围写清楚,测试过程中每一步操作都要留日志,这是职业素养,也是保护自己的护身符。
3. 核心实操拆解:从信息收集到拿下域控
3.1 信息收集:决定后续所有攻击路径的地基
很多新手进入内网后,第一反应是到处扫端口,像无头苍蝇一样撞运气。这个习惯非常不好。一次有效信息收集的核心是“建立资产清单”,具体来说要搞清三件事:网段里有哪些机器、每台机器开了什么端口、当前用户和域是什么关系。
拿到一台跳板机后,基础信息收集命令应该是:
whoami ipconfig /all net config workstation这几条命令能告诉你当前用户是谁、这台机器是否加域、网卡IP段是什么。接下来再用Nmap对授权网段做存活探测和端口扫描:
nmap -sn 192.168.100.0/24 nmap -sV -p 445,3389,5985 192.168.100.0/24这里扫445(SMB)、3389(RDP)、5985(WinRM)是为了快速定位域内其他Windows主机。信息收集阶段最重要的不是“扫得多”,而是“看得懂”。比如445开放说明有文件共享,5985开放说明对方可能开了远程管理,这些都会直接影响你后面的横向移动方式选择。
域信息收集方面,可以用Windows自带的命令查看:
net user /domain net group /domain nltest /dclist:corp.local如果你需要更直观地看“从当前用户到域管”的攻击路径,推荐用BloodHound这类AD权限分析工具。它通过采集域内用户、组、计算机、会话和访问控制关系,生成一张可视化大图。很多初学者不理解BloodHound的价值,觉得只是“画图好看”。实际上它真正厉害的地方,是把几千条ACL权限关系整理成一条条路径,让你一眼看出“哪个普通用户能通过哪几层关系控制域管”,这是手动枚举完全做不到的。
信息收集的原则是先摸清拓扑,再决定打哪里。无脑扫描不仅动静大,还会让几百条无效告警淹没真正有价值的信息。每收集到一条信息,都打开笔记记下来:IP、主机名、用户、开放端口、发现的账号,后面每一步行动都依赖这份笔记。
3.2 权限提升:从普通用户到管理员
拿到一台机器的普通用户权限后,下一步是提权。提权路径可以分为两大类:系统漏洞利用和配置错误利用。
系统漏洞利用比较好理解,就是操作系统内核或服务存在远程代码执行或本地提权漏洞,你只需要匹配当前系统的版本和补丁情况,找到对应的漏洞利用方式。但真实攻防中,我不建议第一时间就去打内核漏洞,原因有三:一是容易把系统打崩,影响业务;二是EDR通常对这类敏感行为盯得很紧;三是很多配置错误其实比漏洞更好打。
配置错误利用是我在实际测试中最喜欢先看的点。典型的有:服务路径存在空格且目录可写、自启动服务指向可被普通用户替换的脚本、计划任务以高权限运行但执行路径可控、系统里躺着备份脚本并包含了数据库密码。这些问题的共性是“不需要任何漏洞,只需要细心”。
域内提权的另一个常见入口是弱口令猜测和口令喷洒。管理员为了省事,经常会把十几个服务账号设置成同一个密码,且密码复杂度很低。用当前掌握的账号对域内其他机器做登录尝试,成本很低,但要注意不能尝试次数太多,否则会触发账号锁定策略。这种情况下,一次成功的口令喷洒往往比花几个小时找漏洞效率高得多。
在域环境里,提权从来不止“本地提权到System”这一条路。你还要关注域内特殊的权限配置,比如某个用户对某台服务器有“允许登录”权限,某个服务账号被配置了委派,某个用户的ACL可以授予自己额外权限。这些都属于域提权范畴,也是BloodHound最擅长帮你发现的东西。
3.3 横向移动:在域内步步为营
横向移动是整个域渗透中最考验耐心的环节。它的本质是:用已控制的账号和凭据,从一台机器跳到另一台机器,不断累积访问面。
最常见的横向移动方式包括:
- 计划任务:在目标机器上创建一次性任务,用管理员凭据执行命令;
- WMI:通过WMI远程调用目标系统进程;
- PowerShell远程会话:如果目标开启了WinRM,直接建立会话;
- SMB远程管理工具:通过文件共享通道执行命令。
每种方式都有各自的适用条件,也都会在目标机器留下对应的安全日志。横向移动选哪种方式,不是看哪个“看起来厉害”,而是要看目标机器开放了哪些端口、当前凭据对目标机器有什么权限、整个过程的日志暴露风险有多大。比如目标机器只开了445和3389,那你选WinRM就是白费力气。
横向移动的过程中,有一类特殊凭据问题经常被忽略:本地管理员密码。很多企业的所有电脑,本地管理员账号和密码都是同一个镜像翻出来的。攻击者在一台机器上拿到本地管理员密码后,直接去试整个域网段的相同账号。如果企业没有用LAPS管理本地管理员密码,这一步就等于把所有机器都交出去了。
从防御方视角反过来说,这也是为什么“每台机器的本地管理员密码必须独立管理”是最重要的加固项之一。
横向移动的时候,我习惯在笔记里专门画一张简化的访问关系表:哪台机器被谁控制、通过什么凭据控制、当前权限级别是什么。这张表的价值在于,它能在你发现新凭据后立刻告诉你“新凭据可以让我们到达哪些新节点”,避免来回重复踩点。
3.4 拿下域控:最后一跳
拿到域控权限,意味着整个域渗透测试基本到达终点。到这个阶段,攻击者已经不再是“大楼里某个楼层的访客”,而是“拿着总钥匙的人”。
获取域控权限的方式没有固定套路。常见的是通过备份或恢复工具滥用、域内高权限账号直接登录域控、利用域控上的AD服务配置错误、以及通过域内其他高权限资产跳板过去。每一种方式都有对应的检测点,但核心思路依然没变:先通过信息收集找到一条从当前控制点到域控的合法权限路径,再一步步执行。
在授权测试中,刚拿到域控权限的那一刻,我建议先不要激动,按这四步走:
- 确认当前会话身份,验证是否真的拥有域管权限;
- 记录关键证据:账号名、域控主机名、时间、使用的权限链;
- 做最小化的概念验证,不要修改域策略,不要导出所有用户哈希,不要把自己添加成域管;
- 按客户指定的流程清理测试痕迹,恢复被改动的配置。
很多新手到了这一步就特别想“展示战果”,比如创建一个域管账号证明自己打下来了。这个动作在授权测试里其实是减分项,因为它增加了真实风险,还会在域内留下永久的后门痕迹。真正专业的做法是:证明权限路径存在,评估影响范围,然后干净地退出。
4. 常见问题与排查技巧实录
4.1 BloodHound采集不了数据怎么办
BloodHound数据采集失败,是我见过最多的问题之一。常见原因有三个:
- 当前PowerShell执行策略限制脚本运行。这种情况可以在当前进程里临时绕过策略再运行采集器;
- 当前用户是普通域用户,没有足够的LDAP读取权限和远程会话权限,导致部分API调用失败。解决办法是先在目标机器上提到本地管理员,或者找一台有更高权限的主机重新采集;
- 采集器版本跟目标域控版本不匹配。这类工具往往更新很快,建议先升级到最新版本。
采集过程中如果遇到杀毒拦截,那说明你用的行为特征已经被标记。不要试图强行免杀绕过,正确的做法是先确认目标机器是否有EDR,如果有,应该评估当前测试方式的风险,并及时告知委托方。
4.2 横向移动命令执行失败
横向移动失败,排在前列的原因通常是:
- 目标主机的防火墙拦截了对应端口。比如SMB端口不通,就得看是不是需要切换到WinRM或RDP;
- 当前凭据只在某几台机器上有管理员权限,在目标机器上无效。这时候先做小范围验证再批量操作,能省很多事;
- 目标主机启用了额外防护机制,限制本地管理员从网络登录;
- 远程执行过程中踩到账号锁定策略,导致当前账号被临时冻结。
遇到连续失败时,不要下意识地认为“工具不好使”或者“目标太难”。先退一步检查:网络通不通、凭据对不对、权限够不够、协议开没开。横向移动最怕“凭感觉”,一旦开始瞎试,告警日志会越来越多,风险也越来越大。
4.3 蓝队怎么发现这些动作
红队视角看多了,也得知道自己会留下什么脚印。蓝队检测域渗透,通常盯住以下几个关键位置:
- 域控安全日志里,登录类型3(网络登录)中出现陌生来源IP的域管账号登录,这是很明显的异常;
- Kerberos服务票据请求量突然增加,特别是同一用户短时间内请求大量票据,可能是票据枚举或伪造的前兆;
- 敏感工具进程创建事件,例如PowerShell远程调用、计划任务异常创建,都会在4688进程创建日志和Sysmon里留下记录;
- 高权限组(比如域管组、本地管理员组)的成员变化,这是永恒不变的高危告警;
- 对域控敏感目录或进程的异常访问行为。
防御方如果收到这类告警,应该优先确认账户是否被用于非业务时段的访问、目标主机是否超出了已知管理路径、远程登录来源是否处于资产管理范围之内。然后再根据时间线回溯攻击链,确认影响范围。
域环境的加固,我按优先级给一个建议清单:
- 本地管理员密码用LAPS管理,确保每台机器密码独立;
- 域管账号只允许登录受控的跳板机和域控,不允许随便登录员工电脑;
- 开启Credential Guard和LSASS进程保护;
- 及时安装系统补丁,尤其是域控和承载关键服务的机器;
- 部署EDR并开启敏感日志采集;
- 每半年做一次AD权限风险评估,重点检查ACL委派、受保护组、服务账号配置。
5. 自学路线与避坑经验
5.1 别一上来就刷工具,先把基础补齐
现在很多自学网络安全的朋友,上来就是“装Kali,跑扫描器,看教程”。这种打法能让你产生短暂的上手快感,但遇到真实环境,往往会一头雾水。内网渗透尤其吃基本功:TCP/IP、DNS、Windows用户和组的概念、NTFS权限、域的概念、Kerberos的原理。
我建议的学习顺序是:
- 先把网络基础过一遍,不只是会ping,要理解端口状态、广播域、ARP、DNS解析过程;
- 学Windows系统管理,理解用户、组、共享、计划任务、安全日志;
- 在虚拟机里搭一个小域环境,把账号、组策略、加域、登录验证跑通;
- 再学习域渗透的常用思路和工具;
- 最后学防御侧检测,写几份对应事件的检测规则。
这个顺序可能比较慢,但能让你在遇到复杂环境时“拆得出原理”,而不是只会照着命令模板敲。我见过太多人在某个CTF题目里会用某个漏洞,换一个环境就不会了,就是因为跳过了原理层。
5.2 工具链和资料推荐
常用的工具,没必要贪多:
- Nmap:端口和存活探测,渗透测试的地基工具;
- BloodHound:AD权限路径分析;
- Wireshark:排查协议问题;
- Sysinternals Suite:系统进程和权限排查;
- PowerShell自带的AD模块:主动域信息查询。
特别提醒一句,不要四处下载来路不明的“破解版”或“一键提权工具”。这类工具往往自带后门,你拿它打靶场,结果自己被装了木马,得不偿失。
资料方面,优先看厂商官方文档。比如Windows AD相关的内容,微软的官方文档和模块帮助已经写得足够清楚了。然后是技术社区里带详细过程分析的分享帖,尤其是那些把踩坑过程都写出来的文章,比单纯贴输出结果的截图有营养得多。
5.3 几条心得,写在最后
我在这个方向上学了很长时间,最深的体会是:内网渗透不是“秀操作”的舞台,而是“拼耐心和严谨性”的战场。你的信息收集笔记、横向移动路径记录、权限验证逻辑,比任何炫酷的利用方式都更能决定测试结果。
授权这条红线,再怎么强调都不为过。没有授权的扫描和攻击,无论技术多厉害,都不是安全研究,而是违法。哪怕你现在拿靶场练手,也要养成分清“实验环境”和“真实环境”的肌肉记忆。
另外,别把目光全放在攻击侧。真正拉开水平差距的,是你能不能从攻击者的每一步里推导出防御检测规则。你越理解域渗透攻击链,就越清楚该在域控日志里查什么、在终端检测里布什么规则。这种双向思维,才是网络安全这个领域真正值钱的地方。
先搭起自己的域环境,跑通一遍信息收集到域控的全流程,然后换到蓝队视角,重新审视自己留下的每一步痕迹。这个过程做完,你对内网渗透的理解,会比看一百篇文章都深刻得多。