
很多人问过我一个问题内网渗透到底难不难我的回答通常是一句大实话——不难但很杂。它不像拿一个CVE去打外网漏洞那样目标清晰内网渗透更像一场“无声的巷战”你要在不知道对方地形、不知道对方哨位的情况下一点点摸清网络脉络找到防守薄弱点然后用最小的动作拿到最大的权限。这篇内容我结合自己这几年在授权红队评估、攻防演练中的实操经验把内网渗透从入门到落地这条链路完整拆给你所有方法都以防守视角和授权测试为前提新手认真看完至少能少走三个月弯路。先说清楚适用人群准备转行安全测试的运维、刚入行的初级渗透测试工程师、以及想搞明白“内网被攻破到底怎么回事”的蓝队同学。这篇文章不适合拿去做非法用途所有技术点都应当在你拥有合法授权的网络环境中验证。我的习惯是先搭一套虚拟化靶场把攻击链路自己在靶场里跑通再考虑真实环境的事。1. 内网渗透的核心逻辑先搞清楚“你在打什么”1.1 内网和公网的本质差异很多新手在接触内网渗透时最容易犯的错就是把外网渗透的思路生搬硬套进来。外网渗透的目标是“拿到一台公网服务器的权限”而内网渗透的目标是“拿到核心业务系统或域控权限”。两者的差异体现在三个关键维度第一个是边界。公网资产有明确的域名、IP、端口映射你可以从互联网直接发起扫描和攻击。内网则是一个相对封闭的信任网络默认情况下很多主机之间互相信任但对外不可达。这意味着你一旦进入内网首先要解决的不是“如何绕过WAF”而是“如何确认自己在哪、旁边是谁、哪里藏着核心资产”。第二个是身份认证体系。外网系统大多数是单点登录或者独立账号体系攻下一个系统往往就结束了。内网环境尤其是Windows域环境存在统一的身份认证中心域控一台机器被攻破后你拿到的可能只是一个本地管理员账号而真正的目标是那个能登录全网所有主机的域账号。第三个是流量检测能力。公网入口通常部署了IPS、WAF等安全设备而内网核心区的检测能力往往弱得多。许多企业的内网安全建设是“外紧内松”所以内网渗透的对抗重点不是绕过复杂的安全设备而是躲避已有的主机审计、日志监控和流量分析。这也是为什么内网渗透更强调信息收集的细致程度和权限维持的隐蔽性。你可以把内网想象成一栋写字楼外网渗透是找到大楼没有锁的窗户翻进去内网渗透则是你已经在楼里了但你要找到总经理办公室的钥匙还得尽量不让监控拍到。1.2 常见的授权测试流程长什么样一次完整的内网渗透测试或者说红队评估严格遵循一个可复用的阶段模型。我习惯把它分成六个阶段外网打点通过钓鱼、漏洞利用、口令爆破等手段拿到第一个内网入口。权限维持建立稳定的控制通道确保不会因为一次重启或者一次补丁更新丢掉权限。内网信息收集探测存活主机、开放端口、服务信息、域环境信息、共享资源等。横向移动利用抓取到的口令、令牌或漏洞在主机之间横向跳跃逐步靠近核心区。域渗透定位域控通过Kerberos攻击手法或漏洞利用拿下域管权限。目标达成与报告访问到目标系统比如核心数据库、源代码服务器然后清理痕迹、整理报告。在真实项目中这个流程不是一个直线走完的。很可能你在信息收集阶段发现外网打点的那台机器只是隔离网段无法访问域控这时候需要下线重新规划路径。所以新手做内网渗透一定要养成做笔记的习惯每一步收集到的IP、账号、密码、网段都要记录清楚否则走两步就乱。1.3 线路规划为什么先侦察再动手我见过太多新手玩家拿到一台主机权限后立刻开始疯狂扫网段、跑弱口令期望快速打穿内网。结果是什么呢被安全设备告警、被管理员发现在排查、或者干脆因为扫得太猛导致业务中断项目被迫终止。这里必须强调一个原则先侦察后动手动静越小越好。侦察阶段主要回答几个问题当前主机有几个网卡分别连通了哪些网段这台主机是服务器还是个人PC开放了哪些端口当前权限是普通用户还是管理员有没有域账号本机缓存了什么凭据历史命令里有没有泄露过口令这些问题搞清楚了你才能制定一条“高性价比”的横向移动路线。比如你发现当前主机是一台Web服务器旁边网段还有数据库服务器和备份服务器那么你的下一步目标就很明确了抓数据库连接配置、翻备份文件、尝试用Web服务的服务账号去登录数据库。这比盲目扫描一个B类网段高效得多也安全得多。2. 前期侦察的三个关键动作信息收集决定成败2.1 存活主机发现如何“安静”地摸清网络地形拿到一台跳板机后第一件事就是判断当前主机可以访问哪些网段。这一步我通常先看路由表和ARP缓存而不是立刻跑扫描器。命令很简单Windows环境下用ipconfig /all查看网卡信息route print查看路由表arp -a查看本机近期通信过的主机。Linux环境对应的是ip addr、ip route、arp -a。为什么要先看这些因为ARP缓存和路由表会直接暴露“这台机器平时和谁说话”。如果一台内网服务器的ARP缓存里出现了大量IP说明它所在的网段很活跃值得优先探测。反过来如果ARP缓存只有两三条记录说明这个网段可能只有少量机器你要去的地方可能是另一个网段。接下来才轮到主动探测。常用的手段有ICMP批量Ping、TCP端口探测和基于NetBIOS/ARP的扫描。但从隐蔽性角度我强烈建议你先用ICMP Ping扫一遍C段比如for /L %i in (1,1,254) do ping -w 1 -n 1 192.168.1.%i拿到存活清单后再对存活主机做精细的端口扫描。不要一上来就对整个B段做全端口扫描那动静太大了在真实对抗环境里几乎等于告诉对方“我来了”。这里同步一个实用技巧很多系统默认禁ping但并不意味着主机不存在。所以ICMP的结果只能作为参考真正的存活判断要结合TCP端口探测。你可以用常用端口22、80、443、445、3389、5985等做一次轻量TCP扫描确认哪些主机在监听这些服务。2.2 端口与服务识别从开放端口推断主机角色拿到存活主机列表后下一步是判断每台机器是“干什么的”。端口信息是最直观的角色标签。我通常用Nmap做这件事但不是无脑全端口扫而是先做一个快速扫描nmap -sS -T4 -F target只扫100个常用端口然后对开放的端口逐个做服务版本识别。这里说一个常见的判断逻辑开放80/443大概率是Web服务器优先看Web路径、中间件版本。开放3306/5432/1433数据库服务器下一步就是尝试连接数据库、找连接配置。开放445/139Windows主机重点关注SMB相关信息、补丁情况。开放3389Windows远程桌面可以考虑是否能用已获得的账号直接登录。开放22Linux主机检查SSH配置、是否有弱口令。在真实网络中数据库服务器和Web服务器往往是分离的但运维为了省事经常会把数据库端口对Web网段开放。也就是说你拿下的Web服务器可能可以直接连接数据库服务器的3306端口。这是一个非常常见的横向移动路径。端口扫描之后别忘了做服务映射。比如445端口开放的主机可以尝试枚举共享资源net view \\ip或使用SMB枚举工具看看有没有开放的共享目录。很多时候内网共享目录里就躺着运维放的密码本、备份压缩包、配置文件这些东西的价值远超你想象。2.3 域环境探测搞清楚身份认证体系如果你是新手这一节可能是你最容易忽略也最容易踩坑的地方。内网环境到底是不是域环境决定了后续所有攻击路径的选取。判断方法不复杂Windows主机执行systeminfo如果计算机全名显示为“主机名.域名”说明已加入域。执行net config workstation看“工作站域”字段。执行whoami /all看当前用户是否有域用户属性。如果是域环境你需要进一步收集域控的IP地址。常见手段是查DNS服务器地址域控通常就是DNS服务器命令是nslookup 域名或ipconfig /all如果DNS服务器和域控在同一台机器上那么DNS服务器IP基本就是域控IP。域环境的信息收集是门细活但对新手来说至少要先掌握三个命令net group domain admins /domain查看域管理员组成员这是你的终极目标清单。net user /domain枚举域用户列表为后续口令喷洒做准备。net view /domain列出当前网络中的所有域有时候一个内网会存在多个域千万别只盯着一个。还有一个重要的点当前机器有没有域账号会话。你可以执行klistWindows查看本地缓存的Kerberos票据或者cmdkey /list查看有没有保存的凭据。如果当前已经有一个域账号在运行某个服务那么你拿到该进程的权限后可以直接使用这个域账号的身份进行横向移动这就是后文要说的令牌窃取和票据利用的基础。3. 横向移动的实用姿势不搞花哨只求高效3.1 凭据获取从内存和文件中找出“钥匙串”横向移动的本质是“拿A主机的身份敲开B主机的门”。前提是你得有身份凭据也就是账号和密码或哈希。Windows环境下有两个经典手段内存中的明文密码和哈希抓取以及系统文件中的密码痕迹。在授权测试中我常用的做法是先用内置工具或公开的凭据抓取工具尝试在已控制主机上读取LSASS进程内存提取当前登录用户的密码哈希甚至是明文密码。注意这一步对于现代Windows系统Win10及以上可能遇到权限问题需要SYSTEM权限或管理员权限。所以拿到一台主机后第一步永远是提权到管理员或SYSTEM否则很多操作没法做。除了内存系统文件中也可能藏着“钥匙串”。我的检查顺序是桌面、文档、下载目录翻有没有密码本、运维笔记。回收站不要笑真有人把键盘记录器的输出文件删到回收站里没清空。数据库配置文件web.config、application.yml、.env等文件里的数据库口令经常和运维账号口令重合。.ssh目录Linux主机被控后看一眼/root/.ssh/authorized_keys和私钥文件很多时候能直接跳到别的机器。浏览器保存的密码Chrome、Edge的Login Data数据库如果能解密那就是一筐口令。你的目标不是拿到所有账号而是找到那个“复用率最高”的账号。运维为了好记经常把域管口令和服务器本地管理员口令设成一样或者只有微小的变体。一旦你摸到这种规律整个域拿下来只是时间问题。3.2 经典横向移动手法从计划任务到远程服务有了凭据之后怎么用它去执行远程命令这里我按“稳健程度”给新手排个序从最不容易触发告警的到动静最大的第一位是计划任务。Windows环境下通过工具或自写命令创建远程计划任务让目标主机在指定时间执行你的命令。特点是执行过程不留明显的交互痕迹适合执行一些轻量命令。缺点是可能受限于目标主机的用户权限和策略。第二位是服务控制管理器。利用远程主机的服务创建权限通过创建并启动一个服务来执行命令。这个方法的稳定性很高因为服务会以SYSTEM权限运行但需要管理员权限且杀软可能对服务创建行为有告警。第三位是Windows Management Instrumentation。通过WMI的远程调用执行命令不需要在目标主机上落地文件整个操作在内存中完成隐蔽性相对好。缺点是WMI的执行结果回显比较麻烦通常需要重定向输出或者用HTTP回传。不过对于拿权限来说有没有回显其实不太重要你只要能执行命令就够了。第四位是PsExec类工具。这个方法很多人喜欢用因为方便快捷、有交互式Shell。但它需要在目标主机上创建一个服务而且会写入特殊命名管道在蓝队监控脚本面前非常显眼。我的建议是在攻防演练的初期尽量不用PsExec等拿下域控准备扩大战果时再用不迟。每个横向移动的方法都有它的适用场景新手不用贪多求全先熟练掌握计划任务和WMI两条路就够了。剩下的等你在靶场里跑过几轮自然能体会出区别。3.3 横向移动中的“检测规避”思路这里不谈攻防对抗中那些灰色细节只说合规场景下的注意事项。横向移动如果你不注意动作幅度很可能还没摸到域控就被安全团队从日志里揪出来了。我的实操心得有三条第一控制并发。不要同时对几十台机器发起远程命令。真实内网中的横向移动更像是“蛙跳”一台一台来。你可以在拿到A主机的权限后从A主机继续连接B主机而不是从你的跳板机同时连接所有主机。这样可以极大减少流量的异常特征。第二命令精简。远程执行的命令越短越好最好是一行式的命令避免创建复杂的脚本文件。你的目的是确认回连状态、收集下一步需要的凭据而不是在每台机器上跑一套完整的渗透工具包。第三时间窗口。尽量选择业务低峰期操作比如凌晨或周末。这样即使你在目标主机上创建了计划任务管理员也不太可能第一时间发现异常。真实项目中很多成功的横向移动路径都是在“对方已经下班”的时间段完成的。4. 域渗透的核心攻击路径从普通域用户到域管4.1 Kerberos协议与三个高频攻击手法域环境里最核心的认证协议是Kerberos它本身的机制设计在二十多年前是非常先进的但在现代内网中它的一些固有特性成了攻击者和红队测试人员最爱的突破口。新手理解Kerberos不需要死磕RFC文档只需要记住它的核心逻辑票据就是通行证。域内一台主机要访问另一台主机的服务需要向域控申请一张“服务票据”而域控颁发票据的前提是验证你的“身份票据”是否有效。攻击手法主要围绕“伪造票据”和“滥用票据”展开。三个高频手法按新手的理解难度排序第一个是Kerberoasting。任何域用户都可以向域控申请某个服务账号的服务票据而这张票据是用服务账号的密码哈希加密的。你可以把票据拿到本地进行离线爆破因为服务账号的密码往往比普通用户复杂不到哪去。爆破成功你就拿到了一个可以登录整个域内该服务的账号。第二个是Pass-the-Hash哈希传递。域内很多协议支持用密码哈希直接认证而不需要明文密码。你只要在内存中抓到了一个域管理员的NTLM哈希就可以用它去访问任何允许该账号访问的主机。这个手法非常实用因为它绕过了“密码不可逆”的限制。第三个是黄金票据。如果你拿到了域控的KRBTGT账户哈希就可以伪造任意用户的身份票据包括域管理员甚至可以指定票据的有效期长达十年。拿到了KRBTGT哈希就意味着整个域已经在你手心里了但新手要注意黄金票据的伪造需要非常小心它可能影响域内正常认证在授权测试中必须取得客户同意后才能使用。4.2 查找域控与定位核心资产域控在哪里这是域渗透的关键一步。我从不会一上来就扫全网的445端口去找域控。更高效的方式是利用DNS查询因为域控必然注册了DNS记录。你可以通过以下方式快速定位执行nslookup -typeSRV _ldap._tcp.dc._msdcs.域名直接查询域控的SRV记录。使用域内主机的net time或netdom query fsmo如果有相应工具获取域控主机名和IP。查看当前主机网络连接的DNS服务器地址通常就是域控IP。找到域控之后不要急着发起攻击。先确认域控的操作系统版本、补丁情况、开放的端口。Windows Server 2012、2016、2019、2022甚至2025的默认安全策略差异很大比如某些老版本域控默认开放匿名访问的共享而新版本默认不允许。这个信息决定了你后续是走漏洞利用路线还是社会工程学针对域管路线。定位核心资产也一样。不要瞎找先看DNS记录里的“有意义的主机名”比如带admin、oa、erp、db、backup字样的主机十有八九是核心系统。再看域管组成员经常登录哪些主机登录痕迹可以通过事件日志、会话枚举等方式获取。那些域管日常维护的服务器就是你最终要拿下的目标。4.3 域管权限获取后的“动作边界”当你真正拿到域管权限那一刻可能会很兴奋但接下来做的事情才体现专业素养。在授权评估项目中拿到域管权限通常意味着测试目标已经达成此时应该克制停止扩大攻击面开始整理报告和清理痕迹。这里有一条我自己坚持的原则域管权限是一把双刃剑宁可少做不要多做。不要在域控上执行无关命令不要浏览域控上的敏感文件更不要修改任何域策略或账号配置。你需要的是证明“我可以控制整个域”而不是真的把域搞乱。清理痕迹这块主要关注三件事删除在目标主机上创建的计划任务、服务和无用账号。清理Windows事件日志中与你的操作相关的成功登录日志尤其是远程登录日志。删除上传到目标主机的工具文件恢复被修改过的配置。但有个现实情况要提醒你有些日志是清不干净的比如域控上的安全日志已经被备份到日志服务器。所以在真实项目中更好的思路不是“事后清理”而是“事前降低存在感”——能用内存操作就不用文件落地能用系统自带工具就不用第三方工具这样你的攻击行为在日志里看起来和正常运维没太大区别。5. 实战问题排查我在内网测试中踩过的坑5.1 工具选型与免杀问题很多新手收藏了一堆内网渗透工具但实战中翻车的往往不是工具不够强而是工具没选对。内网渗透对工具的要求和公网完全不同公网打点看的是利用成功率和绕过能力内网渗透看的是跨平台兼容性、部署简便性和抗查杀能力。以代理工具为例。公网常用的商业远控或开源代理工具在进入内网后经常面临杀软查杀的问题。我的经验是在授权测试中尽量优先使用目标环境中已有的合法工具比如Windows自带的PowerShell、Certutil、BITSAdmin等。它们不是攻击工具难以被安全设备标记为恶意功能也足够完成文件传输、命令执行、下载执行等操作。但如果确实需要使用第三方工具比如内网扫描器、凭据获取工具请务必先确认两件事第一该工具的流量特征是否容易被IDS抓到第二该工具是否需要管理员权限才能运行如果当前权限不够要先把权限提上去。还有一点不要过度依赖图形化工具。在内网测试中图形化工具比如某些商业远控的GUI、可视化拓扑工具虽然方便但通常会引入额外的流量特征和文件痕迹。我建议新手尽早习惯命令行操作不仅效率更高而且更贴近脚本化、自动化的实战需求。5.2 网络不通、权限不够、账号错误内网环境远比你想的复杂失败是常态。这里把几个最容易让人卡住的场景梳理一遍第一个是“主机明明存活但横向移动命令执行失败”。大概率原因是端口不通。很多内网主机只在特定网段开放特定端口比如运维管理网段才能访问3389你的跳板机不在这个网段里自然连不上。解决思路是换一条路径先横向移动到一台位于管理网段的主机再执行后续操作。第二个是“拿到了域账号但登录失败”。可能原因有三个账号被锁定、密码过期、或者目标主机不在该账号的允许登录列表里。域账号默认允许登录所有工作站但不允许登录域控这是安全基线常见配置。如果你拿的是普通域账号直接尝试登录域控会失败需要先通过其他手段提权或者找到更高权限的账号。第三个是“提权失败”。拿到一台主机后发现当前用户不是管理员很多操作没法做。提权失败最常见的原因为系统补丁打得太新、或者目标机器没有可用的漏洞。这时候不要死磕提权换个思路检查本机有没有保存的管理员凭据、有没有可读的脚本或配置文件里有密码、有没有其他用户可以切换。很多时候“横着走”比“往上提”更容易。5.3 时间管理与报告撰写最后一个坑不在技术层面而在项目管理层面。内网渗透非常容易让人陷进去你以为再走两步就能打到域控结果走了一天还在网段边界打转。我的经验是给整个测试周期设定一个时间盒信息收集阶段不超过总预算的30%。横向移动路径尝试不超过总预算的40%。域渗透和最终目标达成控制在30%以内。如果在一个目标上连续碰壁超过两小时果断换路径。不要跟一台机器死磕内网渗透的精髓是“寻找最优路径”不是“技术炫技”。评估项目最终交的是报告不是破纪录。报告这块也有个实用建议从项目一开始就把所有发现按照“漏洞名称、影响资产、风险等级、复现步骤、修复建议”五个要素记录在案。我见过太多人在测试阶段不记笔记最后写报告时靠回忆结果漏洞细节缺失、复现步骤不完整、客户不认可。好记性不如烂笔头这个原则在渗透测试领域放之四海而皆准。6. 给新手的靶场练习路线从搭建到通关6.1 如何低成本搭建一套练手环境纸上谈兵永远学不会内网渗透实践才是唯一的真理。新手的第一个任务是搭建一套练手靶场。不需要昂贵的服务器只要一台性能还过得去的电脑建议16GB内存加虚拟机软件即可。我的建议拓扑是三台虚拟机一台kali Linux作为攻击机安装常用的渗透工具。一台Windows Server 2019作为域控配置DNS和AD域服务。一台Windows 10或Windows 11作为域内普通主机加入域并部署一些模拟业务系统比如装一个存在已知漏洞的Web应用。网络模式全部设为仅主机模式保证和外网隔离。再在这三台虚拟机之外准备一台模拟“边界防火墙”的配置项通过限制端口访问来模拟真实内网的分段管理。这样的环境虽然简单但足以还原内网渗透的完整链路从入口主机到横向移动再到域渗透。还有一条建议在靶场里故意在一两台机器上留下一些“低级错误”——比如把运维口令写在桌面的文本文件里、把数据库密码放在Web配置文件中。这不是为了作弊而是为了让新手体验“信息收集的甜头”。真实内网中的路径往往就是从这些不起眼的杂讯中展开的。6.2 练习顺序先单机、再横向、后域渗透靶场搭好之后练习不能乱来。我自己带人时有一套固定的顺序第一步先在单台Windows主机上练习权限提升和凭据获取。目标是把一台普通用户权限的主机打到SYSTEM权限并成功提取到一个域账号的哈希。这一步能让你熟悉Windows主机内部的权限模型和安全机制。第二步在域内两台主机之间练习横向移动。用一台主机的管理员哈希去连接另一台主机执行命令。重点体会“凭据”在横向移动中的作用以及各种远程执行手法的差异。第三步练习从普通域用户到域管的路径。先枚举域环境定位域控然后通过Kerberoasting或哈希传递等手段获取域管权限。这一步是整个内网渗透的核心难点需要反复练习、理解原理。建议每周至少留出两小时做“全链路复盘”从头开始把一次完整的攻击链路在靶场里跑一遍记录每一步用到的命令、观察到的结果、以及可能留下的日志痕迹。这样练上两个月你再回头看真实内网环境会有一种“降维打击”的感觉。最后多说一句心得体会内网渗透的核心不在于你手里有多少工具而在于你对网络协议、认证机制和操作系统底层逻辑的理解深度。工具会过时、漏洞会被修复但底层的“信息收集—提权—横向—控制”这套方法论在内网攻防中已经稳定运行了十几年现在学的东西三年后依然管用。希望这篇内容能帮你把这条链路完整走通后续遇到问题欢迎回来一起探讨。