☰
企业渗透测试实战:从外网突破到内网横向完整链路解析
2026/9/26 5:29:46 网站建设 项目流程

一辆企业授权渗透测试项目里,真正拉开差距的往往不是某个漏洞的利用技巧,而是从外网突破到内网横向这一整条链路是否清晰、稳定、可复现。很多新手拿到目标就急着甩工具,结果要么卡在某个资产上无计可施,要么拿下一台机器后完全不知道下一步该干什么。这篇文章我会按企业红队评估的真实节奏,把整套流程从头到尾拆开讲,覆盖攻击面梳理、外网打点、边界突破、内网信息收集、横向移动、权限维持到报告交付,适合正在做渗透测试学习路线规划的朋友,也适合刚接触企业渗透测试实战的工程师照着做一遍,真正理解每个环节的价值和取舍。

1. 项目起步:一条完整的攻击链路到底是什么

1.1 三种测试方式的选型逻辑

在正式聊链路之前,先讲一个很容易被忽略的问题:企业渗透测试项目通常不是纯黑盒,而是按需求选测试方式。很多团队在项目启动时只盯着“从外网打进来”这一个方向,忽略了测试方式会直接影响后面所有环节的深度。

黑盒测试最接近真实攻击者,测试人员不掌握任何内部信息,完全依赖公开信源和主动探测来发现攻击面。白盒测试则提供架构图、源码、服务器清单,效率高但场景偏向代码审计。灰盒是两者折中,通常先给一部分低敏信息,比如子域名清单或账号权限,让测试团队把精力集中在更有价值的方向上。

我经手的大多数企业项目都采用“黑盒外网突破 + 灰盒内网深度”的组合。外网部分用来验证真实暴露面,内网部分一旦突破边界就切换到灰盒视角,获得授权范围内的账号或网络拓扑,把横向移动的深度做透。这个组合的好处是既有真实性,又有可控性,不会让一个授权测试项目因为时间成本而草草收场。

1.2 从侦察到报告的标准阶段划分

企业渗透测试流程如果从方法论层面拆解,可以分成侦察、扫描、利用、后渗透、报告五个标准阶段。对应到标题里面的“外网突破”和“内网横向”,可以理解为前三个阶段解决外网拿权限,后渗透和一部分利用阶段解决内网走多远。

侦察阶段关注的是目标资产有哪些,域名、IP段、开放端口、暴露系统、技术栈以及员工信息。扫描阶段则是把侦察结果转成可操作的信息,比如端口对应什么服务、中间件有没有已知漏洞、登录入口是否存在弱口令。利用阶段开始触碰漏洞本身,验证能不能拿到代码执行权限。

后渗透阶段才真正进入内网横向的范畴,包括权限维持、本机信息收集、网络拓扑绘制、域内关系分析、跨主机移动和关键数据定位。报告阶段则把所有过程和证据整理成可读文档,这个阶段的好坏直接决定企业安全团队能不能照着复现和修复。

1.3 工具箱选择与阶段对应关系

市面上有很多集成渗透工具箱,我接触过的天狐渗透测试工具箱就是把常用工具打包成统一环境,做信息收集、扫描探测和漏洞利用都很方便。这种工具箱的优势在于省去大量环境配置时间,特别适合做快速验证或比赛演练。

但在真实企业项目里,我建议把工具箱当成“初始装备”,不要完全依赖它。每个阶段最好有两三套备选工具交叉验证,避免单一工具的误报和漏报。比如子域名收集会用 subfinder + amass + 手工验证,端口扫描会用 nmap + masscan 配合,漏洞利用阶段会用 sqlmap 做注入验证,后渗透阶段会用 Metasploit / Cobalt Strike 做会话管理,内网域分析用 BloodHound。

还有一项容易被忽视的准备是确认所有工具都在授权范围内,包括扫描流量出网、对外发送探测请求这类动作,正规企业项目都会在合同中写明边界和允许范围。没有授权的扫描和利用,无论出发点多好,都不属于渗透测试,这一点必须刻在每个从业者的骨子里。

2. 外网突破:先把攻击面摸清楚再动手

2.1 资产收集的深度决定攻击面大小

外网突破的第一步不是扫描端口,而是搞清目标企业在互联网上到底暴露了多少资产。理解一个企业的资产边界,要从域名、IP、证书、移动端、第三方接口多个维度同时下手。

域名资产收集可以从 ICP 备案信息入手,查到主体名称下关联的企业域名,然后做子域名枚举。子域名爆破推荐 subfinder 和 amass,向公共字典里加上目标企业的命名习惯,比如用城市拼音、品牌词、年份组合提高命中率。证书透明度日志也是个好思路,用 crt.sh 把目标主域拉一遍历史证书,很多老系统和新测试环境都是在这里暴露的。

移动端也要考虑进去。拿到企业官方 App 后先做静态分析,解包提取后端 API 地址,这些接口往往绕过了 WAF 和统一入口,是外网突破的高频路径。GitHub 泄露也不能放过,搜目标域名、代码片段里的内部 IP、数据库连接字符串,偶尔会有意外收获。用 FOFA、Hunter 这类空间测绘平台查“app=目标系统名”或“cert=目标主域”,能快速发现不在域名解析记录里的独立系统。

2.2 端口服务与指纹识别

资产清单出来后,再进入Nmap扫描阶段。企业项目里我一般先用 masscan 快速扫全部端口,再用 nmap 对开放端口做服务和版本识别。初始扫描不建议开全端口的漏洞脚本,流量大且容易被安全设备盯上。优先识别 22、443、8443、3389、7001、8080、9200 这类高频端口就够用了。

指纹识别是整个外网突破里容易被低估的一步。用 WhatWeb 或者浏览器打开页面看响应头、cookie 和 JS 特征,判断目标用的什么中间件、什么富客户端框架、什么单点登录系统。识别到 Spring Boot 会去翻 Actuator 未授权接口,识别到 Shiro 就尝试反序列化利用,识别到致远或泛微可以直接看对应的历史漏洞。指纹的准确性直接决定后续漏洞利用的成功率,宁可多花时间做手工确认,也不要扫到几个特征就盲目打。

2.3 常见 GetShell 路径与利用链路

外网打点拿到 shell 的路径没有想象中复杂,大部分企业最脆弱的地方是三类:入口系统弱口令、组件反序列化、后台命令执行点。

弱口令是最典型的外网突破口。在登录框尝试工号加初始密码、统一账号加季节年份组合,成功率往往不低。很多企业把 OA、邮件系统、客服后台、RA 系统放在外网,如果弱口令存在,等于直接把远程入口送给攻击者。另一个高发点是未授权访问,Spring Boot Actuator 未授权、Nacos 控制台未授权、MinIO 或 Elasticsearch 无认证访问,这类问题在互联网资产里出现频率非常高。

组件漏洞方面,Shiro 反序列化、Fastjson 反序列化、Log4j 这类问题依然存在,虽然老的资产大多修复了,但测试发现新的边缘系统仍然跑旧版本的情况并不少见。利用时要先确认版本和利用链,不要一上来就执行系统命令,先在内存态执行一个无害的读取操作,确认执行点后再切换命令输出。

我参与过一个比较典型的链路:外网一个独立部署的报表系统存在 SQL 注入,用 sqlmap 直接拖出后台账号密码哈希,登录后台后发现系统插件中心能上传压缩包,压缩包解析逻辑存在路径穿越,写入一个 JSP 马后直接拿到服务器权限。整条链路里没有一个“高危 0day”,全是常见弱点组成的长线利用,但对企业造成的实际危害一点也不低。

2.4 边界设备的绕过思路

外网突破还会遇到很多防护层,常见的包括云 WAF、主机安全 Agent、态势感知流量探针。拿到 shell 后先观察网络连通性和操作环境,确认是否在容器里、是否在 DMZ 区、是否有出网白名单。

遇到 WAF 拦截时,绕过思路要分场景:SQL 注入可以尝试编码绕过、分块传输、参数污染;命令执行可以尝试混淆拼接;文件上传可以从扩展名、内容类型、解析特性入手。但不建议把所有时间都花在绕 WAF 上,很多企业边界设备的部署存在盲区,比如某些接口走内部域名,某些老系统不接入 WAF,找到这类影子资产往往比绕防护更省力。

3. 边界突破后:先稳脚跟再做内网探索

3.1 拿到第一台机器后的规范动作

外网拿下的第一台机器通常是边界入口,也可能是经过跳板中转的落地机器。进入后第一步不是急着横向,而是先做环境确认和执行“收口袋”操作。

环境确认包括当前用户上下文、操作系统版本、主机名、网络配置、所在域和工作组。用 whoami /all 看用户所在组,用 ipconfig /all 看 DNS、网关、IP 段,用 systeminfo 看系统补丁和虚拟化平台,用 route print 看路由表。另一件重要的事情是确认当前用户本身就是管理员还是普通用户,判断后续是否需要提权。

文件系统也要快速浏览一遍,常见的配置备份、运维脚本、Web 目录、数据库连接文件都可能直接泄露账号或敏感数据。特别是运维喜欢把密码写在文本文件里这个习惯,在实战里出现的概率高到离谱。

3.2 本机凭据收集与提权路径

授权测试中拿到权限后通常要证明能拿到什么级别的数据,本机凭据收集是这个环节的核心。通过 SAM 文件、Mimikatz 读取内存凭据、浏览器保存的密码、快速密码、历史记录和数据库客户端,往往能直接拿到管理员或域账号。

这里要特别注意,Mimikatz 类操作在许多安全软件眼里是高危动作,正规授权项目也会触发企业终端防护告警。实操中我倾向于先做静默收集,能读 SAM 就不动内存,能读配置文件就不跑工具。只有在验证权限粒度和获取域凭据确实必要时,才在客户允许的范围内执行内存凭据读取。

提权方面,优先检查当前版本是否有公开的本地提权漏洞,同时检查计划任务、服务、DLL 劫持、注册表启动项这些业务侧的错误配置。很多企业服务器装了数据库中间件,用 DBA 权限通过存储过程或 UDF 提权也是经典路径。

3.3 网络连通性判断与内网入口定位

本机稳住后,要做的第一件信息收集是弄清楚边界机器和内网之间的网络关系。这个阶段的输出质量直接影响横向移动方案。

检查 ARP 缓存和路由表能发现本机访问过哪些内网主机,DNS 设置的域后缀可以推断当前环境属于哪个域名体系。再用几条常见的 ping 或 TCP 连接测试判断从当前主机到内网段的连通性。不需要扫描全网段,先从本机所在 IP 段向网关方向、向 DNS 服务器方向、向业务服务端口方向做小范围探测,确认横向移动的信道是通的。

在这个阶段我习惯画一张简易拓扑:当前主机、本机网段、DNS、网关、已知域控 IP、文件服务器 IP、数据库服务器 IP 先标出来。后续所有横向动作都基于这张图扩展,不会像无头苍蝇一样到处乱打。

4. 内网横向移动:从点到面的关键战役

4.1 域环境分析与攻击路径规划

进入内网阶段,域环境分析是整个横向移动的定海神针。如果企业在 Windows 域环境下,先确认当前机器是否已加入域,当前会话是否持有域账号。用 BloodHound 搭配 SharpHound 采集器收集域内对象关系,再分析从当前节点到域管或关键目标对象的最短攻击路径。

BloodHound 能非常直观地展示当前用户能访问哪些主机、哪些组包含当前用户、哪些机器有高权限、哪些账号配置了委派权限等。很多深入研究时会发现,某些看起来普通的域用户因为被加入了本地管理员组、拥有 DCOM/WinRM 远程权限、或者配置了约束性委派,可以一步步移动到域控。

Kerberoasting 也是域环境里的高价值测试点。找到注册了服务主体名的账号,请求加密票据离线爆破破解,如果服务账号口令强度不够,就能直接获得域内特定服务的明文凭据。这套方法安静、不触发大规模扫描告警,但后续使用账号时还是需要控制频率,避免登录失败锁定账号。

4.2 横向移动技术矩阵与适用场景

横向移动的手段很多,但不代表每个都用一遍就好。企业项目里要结合目标环境、告警敏感度和云平台类型选择路径。

IPC 连接和计划任务是 Windows 内网横向最基础的组合,用 net use 建立连接后,通过 at 或 schtasks 在远端主机创建任务执行命令。这种方法的优点是利用系统原生功能,不引入额外的二进制文件,缺点是容易被安全日志记录。WMI 和 PowerShell 远程会话也是类似逻辑,适合快速执行单条命令验证权限。

PsExec 这类工具横向时更稳定,它把服务二进制推到目标主机创建服务来执行,但在部署了终端管控系统的主机上动作太明显。在授权测试中我更倾向优先测试弱共享、本地凭据复用、计划任务、SSH 密钥复用这类不易被频繁拦截的方式,一旦确认路径就走通,不要反复尝试多种手段触发告警。

针对 Linux 环境横向,优先检查 SSH 配置里的密钥复用、跳板机上的登录历史记录、数据库工具保存的连接信息。很多企业内网的 Linux 服务器管理员用同一把私钥批量登录运维堡垒,拿下一台就等于拿下一片。

4.3 内网横向渗透的告警信息如何反哺防御

提到横向移动,就绕不开“内网横向渗透的告警信息”这个话题。红队视角里告警是障碍,但从企业安全的立场上看,这些告警才是横向移动能不能被及时阻断的关键。做渗透测试不仅要验证攻击链,更要帮客户验证告警有没有真的生效。

横向移动过程里最容易被安全设备抓住的告警点包括:异常登录行为(来源 IP 和账号的访问习惯偏离)、主机主动发起的大规模端口扫描、计划任务或服务被创建、高权限进程链异常、文件共享连接异常增多、域控上出现可疑的 DCSync 请求。这些监测点如果完全没有触发任何告警,说明企业的横向检测能力需要补强。

我在实际项目里会把横向移动每个步骤截图并留好时间戳,如果企业有态势感知平台或 EDR,会在复盘中把测试行为和时间线与告警记录做对比。哪些动作被拦截、哪些动作没被发现、哪些日志丢失,这些信息比单纯提交漏洞列表有价值得多。客户要的不是“我打进去了”这种结果,而是“你在哪一步没拦住我”。

4.4 域控获取与关键目标达成

内网横向的最终目标通常是域控权限或核心业务数据。从当前主机出发,走 BloodHound 分析出来的最短路径,往往比到处扫描直捣域控更可靠。

常见路径包括从域内服务器找到域管进程,读取到域管账号口令后通过合法域管身份访问域控;利用 DCSync 远程读取域控哈希;利用域控后台运维系统弱口令接入;或者从备份服务器、虚拟化管理平台找到虚拟机快照提取域控文件。这些路径每一类都有对应的时间成本和风险,需要根据场景权衡。

拿到域控权限后,整个“从外网突破到内网横向”的攻击链才算闭环。很多团队到了这一步会非常兴奋,但千万不要忽略几件收尾动作:把当前域管会话的凭证保留方式约定清楚、把关键数据样本路径记录准确、检查是否存在加密流量出口限制,以及确认授权范围内的操作边界,避免一个重要项目因为最后一个环节处理不当留下合规隐患。

5. 权限维持与对抗痕迹:攻防视角的双重审视

5.1 持久化手段的攻防清单

权限维持是后渗透阶段的关键动作,但从测试价值上说,做持久化的目的是验证企业能否发现并阻止“攻击者留下后门后的再次进入”,而不是教读者如何在企业系统里藏身。正规测试中持久化实验要在明确授权和限定范围内进行。

常见的持久化手段有计划任务、注册表 Run 键启动项、服务自启动、WMI 事件订阅、启动文件夹、以及 Linux 下的 cron 任务和 SSH 公钥注入。这些手法在防御者眼里都有清晰的检测特征,比如计划任务创建事件、注册表变更监控、服务创建日志。在项目里验证持久化时,我一般只保留一个最小化且可逆的方式,并明确告知客户测试结束后的清理方案。

域控层级的持久化属于更高阶的内容,比如黄金票据、白银票据的原理,本质上是对 Kerberos 认证流程的滥用。这些内容在演练和应急响应课程中属于必修题,但对于不熟悉域环境的读者,我这里不展开具体利用细节,只强调一点:域控上的权限维持检测远比单机复杂,企业安全团队要重点监控域控上的异常访问请求和票据请求行为。

5.2 痕迹清理的合规边界与操作底线

关于痕迹清理,有一个非常重要的理念要讲清楚:授权渗透测试中做痕迹清理的意图不是教人破坏审计记录,而是验证目标企业的日志留存和溯源能力是否达标。测试团队通常会清理掉自己做的一些工具落盘、临时文件、以及有用的 WebShell,但事件日志是否要清理完全取决于合同条款。

真实项目里我建议痕迹管理以最小必要为原则:关闭历史命令记录、不用明文保存工具密钥、执行命令后单独清理生成的文件。删除系统日志这类操作一定要和客户提前沟通,因为很多监管要求企业必须留存审计日志,测试团队把日志清掉反而会给客户带来麻烦。

另外一个容易被忽略的痕迹是浏览器缓存、下载记录、剪贴板历史和远程桌面连接记录,这些信息在事后的溯源演练里经常成为完整还原攻击链的关键拼图。

5.3 工具运行时形态:内存加载与防落地

现代企业的安全防护对文件落盘的检测能力越来越强,渗透测试过程中尽量用无落地的方式运行工具已成为主流做法。这种方式同时也和攻击者实际采用的手法一致,测试出来才更接近真实威胁。

实际操作上,Cobalt Strike 的 Beacon 可以作为反射型 DLL 加载到进程内存,PowerShell 脚本通过远程加载执行,Mimikatz 也可以通过内存方式运行避免把实体文件留在磁盘。这套做法对防御方的启发更大:检测内存中的可疑模块要比检测磁盘文件复杂得多,资产基线、进程白名单、异常调用链分析都是必须持续维护的功课。

6. 报告输出与复测验证:让项目闭环收口

6.1 渗透测试报告怎样写才算可用

很多技术团队把精力全放在打点上,报告写得稀烂,最后客户根本没法用。一份合格的企业渗透测试报告至少包含几个部分:项目概述和授权范围、目标环境描述、测试时间线、漏洞描述、漏洞危害和影响范围、复现步骤、修复建议、风险等级汇总。

漏洞分级建议参照 CVSS 标准并结合业务实际影响做调整。比如一个内网低危信息泄露,如果泄露内容是数据库账号密码,实际危害就按高危甚至严重来定。复现步骤不能只写工具命令,要写清楚前置条件和验证结果,越详细越有助于客户自己复现和确认修复效果。

等级分布用表格呈现最清晰,我一般会按严重、高危、中危、低危四档汇总漏洞数量及相关资产。补充风险趋势分析,比如同类漏洞在不同业务线中的分布,提醒客户从全局水位解决问题,而不是只修单个点。

6.2 修复验证与复测节奏

交付报告不意味着项目结束,复测是闭环里的另一个关键动作。通常建议客户在漏洞修复完成后发起复测,测试团队对之前发现的问题项逐条回归。这个阶段最怕的是客户只修了报告里明确写出的点,导致相同类型问题在新的资产上仍然存在。

复测一般不建议再做大范围扫描,而是聚焦验证:确认原路径是否失效、补丁是否生效、安全配置是否调整到位。复测结果也要写进项目总结,标记每个问题的状态为已修复、部分修复、未修复,方便客户后续推进。

6.3 渗透测试结果到安全水位提升的转化

最后一个环节是把单次渗透测试变成企业安全建设的一部分。我给客户汇报时经常做一个动作:把渗透测试的攻击链重新走一遍,标记每一步对应的检测盲区和管理缺口。这套映射关系正是企业后续做安全运营优化的优先级指南。

比如外网阶段弱口令检测失败,对应的问题就是账号体系和口令策略不合规;内网横向过程中放开计划任务创建,对应的是终端管控和横向策略不严。我还会把测试中的工具泪点和监控漏报点整理成清单,给安全运营团队作参考,这也是渗透测试价值最大化的一种方式,经过几轮这样反复,企业的防线会明显扎实下来。

做了这么多年渗透测试,我个人最大的体会是:一次成功的外网突破到内网横向项目,拼的不是某一步有多炫技,而是整个过程有没有清晰的节奏和分寸感。合理选型、规范授权、完整记录、严谨交付,这是行业里真正拉开工程师层次的地方。下次你们做企业评估,可以先不用急着把每个工具轮一遍,试着先把这条链路在脑子里完整走通,再一步步去验证,你会发现整个过程会更可控,也更有效率。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询