很多朋友一提到内网渗透,第一反应就是各种工具一通乱扫、拿到 shell 就觉得自己无敌了。但真正到了企业内网环境里,往往发现扫不全、连不上、提不了权,甚至一个域环境就能困住你好几天。这篇文章我不打算给你堆一份“工具清单 + 命令合集”,而是用一套完整的内网渗透学习路径,从信息收集、主机探测、漏洞利用、权限提升,讲到横向移动和域渗透,把每一步背后的原理和踩坑点都讲清楚。不管你是刚从公网渗透转内网,还是准备护网行动、企业内审,这篇文章都适合当作入门到进阶的系统性参考。
1. 内网渗透到底是什么,先搞清楚边界
1.1 内网渗透的核心目标
内网渗透的本质,是在获得一个内网入口之后,以这个入口为跳板,对内网环境进行系统性的安全评估。它的目标不是“拿到多少台机器”,而是验证内网的真实攻击面、核心数据资产是否可被访问、现有防御体系是否有效。换句话说,公网渗透关心的是“怎么进来”,内网渗透关心的是“进来之后怎么活动”。
这个区别非常关键。公网渗透通常面对的是单一目标的 Web 应用或主机,攻击链比较线性;内网渗透面对的是一个由成百上千台主机、各类网络设备、安全设备组成的复杂网络,攻击链往往是非线性的,一条路径走不通,往往需要横向跳到另一台机器再往下打。
所以,内网渗透的第一步不是你敲多少命令,而是先建立一套流程意识。我在实战中总结的完整闭环是:信息收集 -> 主机发现 -> 端口服务识别 -> 漏洞利用/弱口令 -> 权限提升 -> 凭证获取 -> 横向移动 -> 域渗透 -> 痕迹清理 -> 输出报告。每一步之间都有依赖关系,跳过任何一环,后面的操作都会变成空中楼阁。建议新手把这套流程贴在屏幕旁边,每做一步都知道自己处于什么阶段、下一步该干什么。
1.2 内网渗透与合规边界
这里必须强调一个前提:内网渗透全程必须发生在你拥有授权或合同约定的网络范围内。企业内网渗透测试、护网行动、红蓝对抗,都属于合规的安全评估场景。千万不要在没有授权的情况下对任何内网发起扫描或利用,这不仅涉及法律风险,也会直接毁掉你的职业前途。
在合规前提下,还有两个容易被新手忽略的细节。第一是测试范围确认,拿到授权书之后,一定要跟对接人确认哪些网段能打、哪些系统不能碰,有些核心生产系统哪怕在范围内,也建议避开或者提前沟通好时间窗口。第二是保密协议,内网渗透过程中会接触到大量敏感数据,包括员工凭证、数据库内容、业务系统账号,这些东西绝对不能带出测试环境。我见过有人把测试结果截图发朋友圈炫耀,直接就被客户拉黑了。做安全这一行,职业操守比技术能力重要得多。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 信息收集是内网渗透的第一生产力
2.1 网络拓扑与 IP 规划识别
进入内网之后,第一件事不是急着扫端口,而是先把网段拓扑弄清楚。很多新手一进来就拿着 Nmap 对着 C 段狂扫,结果扫出来的东西乱七八糟,甚至把安全设备都给惊动了。正确的做法是从已知入口逆向推导网络结构。
拿到一个内网 IP 后,先看本机的网络配置,包括 IP、掩码、网关、DNS 服务器,这些信息直接决定了你所在的网段范围。然后在网关设备上看路由表,如果当前机器有权限或者存在漏洞能读取路由信息,就能画出整个内网的路由拓扑。实际操作中,我更习惯先利用系统自带命令做基础信息收集,再根据已知网段展开进一步探测。
这里我整理一个内网本机信息收集的常用检查清单:
- 本机 IP 配置(ipconfig /all 或 ifconfig)
- 路由表(route print / netstat -rn)
- DNS 缓存与解析记录(ipconfig /displaydns)
- 本机用户列表与登录会话(whoami /all、query user)
- 本机进程与服务列表(tasklist /svc、net start)
- 已安装的安全软件(反病毒、EDR、终端管理等)
- 本地共享资源(net share)
- 当前网络连接状态(netstat -ano)
这套检查做完之后,你基本上就能判断出当前机器在企业内网中的角色。比如 DNS 指向域控、本机已经加入域、存在域管理员登录过的会话,这些都是后续域渗透的重要线索。
2.2 主机发现的几种实用姿势
确认网段之后,就要对目标网段做存活主机探测。这里有个常见的误区:直接用 Nmap 的 SYN 半开扫描扫全端口,结果又慢又容易被发现。内网环境里我更推荐分阶段进行,先做快速存活探测,再对存活主机做精细扫描。
存活探测的手段按优先级排列:ARP 扫描适用于本地二层网络,速度快且很难被防火墙拦截,因为 ARP 是协议栈底层的广播机制;ICMP 扫描适用于跨网段的三层网络,但很多主机会禁用 ICMP 回显;NetBIOS 扫描适用于 Windows 内网,可以通过 UDP 137 端口探测主机名和 MAC 地址。实际环境中,多手段交叉验证是最稳的,因为不同的安全设备对这些探测协议的反应不一样。
在内网渗透中,fscan 这类工具很受欢迎,核心原因就是它把主机发现、端口扫描、服务识别、常见漏洞检测集成到了同一个工具里,一条命令就能输出结构化结果,比手动组合 Nmap 加各种扫描脚本效率高很多。但要注意,这类工具被安全设备识别的特征也比较明显,使用之前先确认你所在的测试环境是否允许运行这种综合扫描器。
2.3 端口扫描与指纹识别
存活探测做完之后就是端口和服务识别。内网环境里,我重点关注的服务端口包括:SMB(139/445)、RDP(3389)、WinRM(5985/5986)、LDAP(389/636)、Kerberos(88)、数据库端口(1433/3306/5432/6379)、Web 管理端口(80/443/8080/8443)。
对于端口扫描,推荐使用 Nmap 的服务版本探测参数,它会尝试对开放端口进行协议指纹识别,输出详细的版本信息。这个版本信息在后面找漏洞的时候非常关键,比如判断操作系统是 Windows Server 2012 还是 2016、Web 服务是 IIS 还是 Apache,都会影响后续利用方式的选择。
关于扫描粒度,我个人的经验是分三层:先对全网段做常见端口快速扫描,再对存活主机做全端口 TCP 扫描,最后对关键端口做服务版本探测和漏洞指纹匹配。扫描过程中要注意调整线程数和超时时间,避免把目标网络打瘫。内网渗透讲究的是“润物细无声”,而不是一上来就火力全开,扫描动静太大只会让蓝队更快发现你。
3. 漏洞利用与初始突破口
3.1 内网常见的薄弱点
拿到端口和服务信息之后,就要开始寻找突破口。实战中,内网渗透最早的突破口往往不是什么 0day,而是以下几类非常常见的问题。
第一是弱口令,这个占比最高。内网的运维为了方便,经常会设置统一的密码规则,比如域名缩写加年份加特殊符号的组合。更严重的是,很多内网服务直接使用默认口令,比如 Redis 的默认空口令、Tomcat 的 manager 默认口令、数据库的 sa 弱密码等。所以拿到端口列表之后,不要急着找漏洞,先尝试常见弱口令,往往比想象中出效果更快。
第二是未修复的已知漏洞。内网环境由于业务连续性要求高,补丁更新往往滞后,这就是 MS17-010、CVE-2019-0708 这类漏洞在内网屡试不爽的原因。不过现在很多企业已经加强了对这类经典漏洞的排查,新手不要指望一招鲜,最好结合具体的系统版本和补丁情况做有针对性的漏洞判断。
第三是错误配置。比如匿名访问的 SMB 共享、开放的 NFS 挂载、存在目录遍历漏洞的 Web 服务、可匿名访问的 LDAP 等。这类问题不需要什么高深技巧,往往看一眼配置就能发现,但实际危害却不小,很可能直接暴露敏感文件或凭证信息。
3.2 从弱口令到系统 Shell 的完整路径
这里用一个实战案例来展示从弱口令到拿到 Shell 的完整过程,案例背景是一个典型的 Windows Server 2016 主机,开放了 445 端口的 SMB 服务和 3389 端口的 RDP 服务。
第一步,对目标主机进行 SMB 用户枚举。通过 enum4linux 或 Nmap 的 smb-enum-users 脚本,可以枚举出系统用户列表。如果对方使用的是 Windows 域环境,这些用户名很可能就是域用户名,后续可以直接复用。
第二步,利用收集到的用户名列表进行密码喷洒。密码喷洒的意思是避免对单一用户反复尝试,而是用少量常见密码配合大量用户名进行尝试,这种方式能有效规避账户锁定策略。常见的密码包括企业名称加年份、季节加年份、公司简写加时间等。
第三步,当获得合法账号密码后,优先考虑通过 RDP 直接登录图形界面。这看似简单,但要注意 RDP 登录会产生非常明显的日志记录和会话痕迹,在实战中需要评估风险。如果你只需要命令行权限,其实更推荐使用 Windows 远程管理工具,比如 WinRM 或 PsExec,这类工具产生的日志相对隐蔽,且支持批量命令执行。
第四步,拿到系统 Shell 后,第一时间检查当前进程和权限。如果你获得到的账户属于本地管理员组,那基本可以认为这台机器已经拿下了,接下来就是抓取内存中的凭证,为横向移动做准备。
3.3 权限提升的思路与技巧
权限提升分为纵向提权和横向提权两种。纵向提权是从普通用户提升到管理员或 SYSTEM,横向提权是从当前用户切换到同一台机器上的另一个更高权限用户。
在 Windows 内网中,我常用的提权检查清单包括这几个方向:内核漏洞提权,这个需要先通过 systeminfo 对比补丁情况,再去找对应的漏洞利用模块;服务配置错误,查找当前用户有写权限且以 SYSTEM 权限运行的服务,替换其可执行的程序路径;计划任务劫持,查看当前用户是否可以修改计划任务的执行程序;自启动路径写权限,检查注册表启动项和启动文件夹是否存在可写路径;令牌窃取,如果当前用户具备 SeImpersonatePrivilege 权限,可以通过土豆系列攻击模拟 SYSTEM 令牌。
在 Linux 内网环境中,提权思路则集中在 SUID 文件、sudo 配置错误、内核漏洞、计划任务、Docker 组权限、环境变量劫持等方向。核心思路永远是先自查、再查配置、最后才考虑打内核补丁的漏洞,因为漏洞利用毕竟是最后的手段,稳定性最差。
权限提升过程中有一个很重要的细节:对目标系统做任何改动之前,记录原始配置。比如你替换了一个服务的可执行文件,修改了某个文件的权限,这些操作在后续痕迹清理时必须完全还原。很多新手打完机器之后系统直接崩溃或者被业务方发现,多数就是因为在提权过程中没有保留现场记忆,导致无法还原或者残留了明显的异常文件。
4. 横向移动与域渗透
4.1 内网横向移动的常用手段
横向移动是内网渗透和公网渗透最大的区别所在。拿到第一台主机之后,你面对的是整个内网,而横向移动就是将这些主机逐一拿下的过程。
最常见的横向移动手段是哈希传递攻击,也叫 Pass The Hash。Windows 系统中,NTLM 认证使用的是密码哈希而不是明文密码,所以如果你能抓到一台机器的管理员 NTLM 哈希,就可以用这个哈希直接去访问其他使用同一管理员密码的机器,完全不需要知道明文密码。这里要说明的是,哈希传递使用的工具在实战中比较敏感,但原理层面很好理解,它就是复用了 Windows 的认证机制。
另一种常用的手段是令牌冒充或票据传递。在 Windows 域环境中,每个用户登录后系统都会为其分配一个访问令牌,令牌中包含了用户的所有权限信息。如果你能通过某种方式获取到域管理员的访问令牌,就可以直接以域管理员身份在内网中执行任何操作。Mimikatz 这类工具在这个阶段的原理就是读取 LSASS 进程内存中的凭证和令牌信息。
在内网页面中,还有一批基于系统内置功能的横向移动方式,比如 PsExec 远程执行、计划任务远程触发、WMI 远程调用、WinRM 远程管理等。这些方式利用的是 Windows 自身的远程管理功能,不需要额外上传任何客户端程序,相对而言更隐蔽,也更贴合真实内网环境的操作习惯。
4.2 凭证抓取与重放的艺术
横向移动的前提是拥有一批凭证,而凭证抓取的质量直接决定了你能不能把整个内网贯通。在内网 Windows 环境中,我最先关注的是 LSASS 进程的内存。LSASS 是 Windows 的本地安全认证子系统服务,所有用户的登录凭证都会经过这个进程。在有管理员权限的情况下,通过读取 LSASS 进程的内存,可以提取出当前机器上所有登录过的用户的 NTLM 哈希和明文密码。
除了 LSASS 内存,内网中还有很多容易被忽略的高价值凭证来源。比如浏览器保存的密码、数据库配置文件里的连接字符串、脚本中硬编码的密码、日志文件中记录的命令行参数、缓存了凭据的 Windows 凭据管理器。在这些位置收集到的凭证往往不只是本机的,还可能是整个业务系统的通用密码,这类密码一旦复用,就能让你在横向移动过程中畅通无阻。
凭证重放要特别注意的一点是,不要只盯着域管理员账号。域内普通用户的凭证也可以用来做信息收集,比如读取共享文件、查询域内 DNS、枚举域内用户等。在很多实战场景中,信息收集的价值甚至比直接拿管理员权限更大,因为信息收集能让你画出整个域的完整关系图,而管理员权限往往只在特定的几台关键节点上才有意义。
4.3 Windows 域渗透的关键技术点
域渗透是内网渗透的天花板。一个典型的 Windows 域环境,核心架构包括域控服务器、DNS 服务器、成员服务器和大量的工作站。域控服务器是整个域的核心,保存着域内所有用户的账号信息和策略配置,拿下域控就等于拿下了整个域。
拿到域控权限的路径有两条,一条是利用域内用户的权限进行跨主机攻击,另一条是利用域内特定的认证协议漏洞。Kerberoasting 就是后者非常典型的一种,它的利用思路是:域内所有注册了服务主体名称的账户都会有一个对应的服务票据,这个票据是由票据授予服务加密的。如果你能请求到某个高权限服务账户的服务票据,并通过离线暴力破解还原出该账户的明文密码,那么你就获得了服务账户的凭证,可以尝试通过该账户访问更多资源。
另一个关键技术点是权限委派滥用。在真实的中大型域环境中,为了满足业务需求,管理员常常会配置大量的权限委派关系,比如让某个应用服务器能够委派某个域用户的认证。如果这些委派配置过于宽松,攻击者就可以利用这些关系进行恶意委派,获取任意用户的访问令牌,进而模拟域管理员。
在做域渗透时,我强烈推荐使用 BloodHound 这类工具进行域关系的可视化分析。它能将域内用户、组、计算机之间的权限关系导入到图形化数据库中,以可视化的方式展示攻击路径。BloodHound 的价值不在于拿权限,而在于让你在完全不了解域结构的情况下,快速定位出一条最优的权限提升路径。
5. 痕迹清理与报告输出
5.1 日志处理与现场还原
写完大量的操作之后,最后一定要面对的问题就是痕迹清理。你需要在拿到的机器上进行的所有操作,都会在操作系统日志、应用程序日志、安全日志中留下记录。如果你只在测试结束后简单地删除一下日志,反倒更容易引起管理员的警觉,因为日志文件的突然缺失本身就是异常。
我个人的建议是,痕迹清理的核心不是“删除一切”,而是“恢复原状”。比如你创建了一个新用户,那就必须删除;你修改了管理员密码,那就必须改回来;你向某个目录上传了工具,那就必须移除。对于日志本身,比较稳妥的做法是只清理和你操作相关的部分,而不是整个日志文件全部清零。
真正的专业操作,是在整个渗透测试开始之前就做好记录日志。这个听起来可能有点反直觉,但实际意义非常重大。分段记录你每一条命令的执行时间点、影响范围,可在后续痕迹清理时提供准确的“行动地图”,这样清理的时候才能做到精准,而不是盲目乱删。
5.2 渗透测试报告怎么写才实用
如果说渗透测试是一个项目,那么报告就是项目的最终交付物。很多新手花了大半个月辛辛苦苦打完整个内网,最后写报告的时候却只有一页 A4 纸,画了拓扑图、贴了几张截图就交差了。这种报告客户看不懂、运维不能用、领导不满意,等于前期工作全部白费了。
一份实用的内网渗透报告,至少需要包含以下几个部分。首先是渗透测试范围和时间窗口,明确说明允许测试的网段和系统,以及实际测试的起止时间。其次是整体安全态势评估,用威胁等级对发现的问题进行排序,让领导一眼就能看出最重要的风险。第三是每个漏洞的详细说明,包括漏洞原理、影响范围、影响主机、利用过程、修复建议,这部分要有截图和完整的操作步骤,确保运维人员可以复现问题并验证修复效果。最后是整改建议,按优先级给出可落地的整改措施。
写报告的时候还有一个细节:操作痕迹截图和命令记录一定要保存原始稿。很多新手在测试的时候没有保存命令执行的输出结果,等到写报告的时候才发现截图和记录对不上。我自己的习惯是给每个测试主机建立一个专门的工作目录,下面按阶段建立信息收集、漏洞利用、权限提升、后渗透等子目录,所有输出都重定向到文件保存。这样无论是写报告还是之后复盘,都有完整的一手资料。
6. 常见问题与排坑实录
6.1 扫不到主机、连不上服务,问题出在哪
内网渗透过程中,最让人崩溃的就是扫了半天什么都没有。这里要排查的情况很多,我这里整理一个排查清单。
首先确认双绞线和网络层连通性。直接 ping 网关,如果网关都不通,说明你所在的位置和目标网段之间有路由问题,或者当前主机被交换机隔离。其次确认 ARP 表,如果在本地二层网络上连 ARP 请求都没有回应,那目标很可能根本不在当前 VLAN 内。第三检查防火墙策略,Windows 默认防火墙会拦截 ping 和很多端口的连接,但这不代表机器不存在,可以尝试用 TCP 半开扫描或者通过其他主机跳板进行确认。
另外一个常见问题是 DNS 配置错误。你明明扫描到了很多主机,但解析不了主机名,这会严重影响后续的域信息收集。在 Windows 内网中,DNS 就是网络基础设施的基石,如果我们的 DNS 指向配的是外部 DNS 而不是内网 DNS,那就无法解析内网主机名,很多域查询操作都会失败。进入内网后要做的第一件事之一,就是确认本机 DNS 指向是否正确。
6.2 杀软和 EDR 设备的干扰
现在的内网环境,几乎每台 Windows 主机都会预装杀毒软件,很多大型企业还部署了 EDR 终端检测响应平台。这些安全软件的实时监控和主动防御能力,会让渗透测试工具一上传就被查杀,甚至还没执行就被拦截。
面对杀软和 EDR,新手最常见的错误就是老老实实地去做免杀,折腾各种加壳混淆。但内网渗透的核心追求其实是“尽量少用第三方工具”,能用的系统内置命令就优先用系统内置命令。比如用 PowerShell 执行命令、用 WMIC 远程管理、用系统计划任务实现持久化,这些操作在执行层面和正常的运维操作没有本质区别,安全产品的检测难度要大得多。
如果确实需要上传工具,也要避免一股脑全部丢上去。上传一个工具,运行完测试功能,如果短时间内没有用到,就应该立刻删除。安全产品对文件落盘的检测敏感度远高于对内存操作的检测,所以减少落盘的次数和时间窗口,本身就是一种无形的防护。
6.3 学习环境搭建与实战建议
最后来说说新手怎么搭建一套属于自己的内网渗透实验环境。很多人一上来就想在真实企业内网里练手,这个思路非常危险,而且容易把路走死。更合理的路径是用虚拟化配合本地建一套内网靶场环境。
虚拟化平台推荐使用 VMware 或 VirtualBox,在一台物理机上虚拟出多个虚拟网络,搭建出域控加成员主机加工作站的典型结构。Windows 镜像可以使用评估版,系统版本建议以 Windows Server 2016 和 Windows 10 的组合为主,这是当前实际内网环境中最常见的配置组合。在靶场中按流程把自己的渗透路径完整演练三到五遍,直到不看教程也能独立完成整个流程为止。
如果觉得本地搭建太麻烦,还有另一种选择,是使用在线靶场平台和开源的内网靶场项目。这类平台一般会内置好一套完整的内网环境,你只需要专注于攻击过程。不过要注意的是,在线靶场平台通常有流量限制和时间限制,适合临时测试某个特定的漏洞分析,不太适合做长时间的系统性练习。系统性练习还是建议用本地方案,因为只有本地环境你才能随心所欲地搭网络拓扑、配域策略、抓取并分析攻击过程。
写在最后
做内网渗透这几年,我最大的体会是:这个领域拼的早就不是某个具体的漏洞利用技巧,而是对整个网络体系的理解深度。同样的一个网络拓扑,高手能看到最短的攻击路径,新手可能只会对着端口发愣,差别就在于对协议机制、认证流程、系统配置的掌握程度是否内化成了直觉。
如果你刚入行,不要急于追求“一击必杀”的骚操作,耐下心把 Windows 认证机制、Kerberos 协议流程、常见网络服务的工作原理吃透,你会发现所谓的高阶技巧都只是这些基础知识的组合应用而已。而等你真的把一套内网从入口打到域控,再回头看这篇文章,你会觉得那些概念都不再是孤立的知识点,而是一条条你亲自走过一遍的路。
最后送大家一句话,做安全这行,技术是舟,合规是水。水能载舟,亦能覆舟。无论到什么时候,守住合规这条底线,技术这条路才能走得远。
