做了这么多年内网安全评估,横向移动是我每次跟客户汇报时一定会单独拆开讲的部分。很多企业觉得边界防御做得够好了,防火墙、入侵检测、杀毒软件全都上了,结果攻击者只要想办法拿下一台不起眼的跳板机,后续在内网里的移动反而比边界突破容易得多——横向移动,说的正是攻击者在一台主机上站稳脚跟之后,利用内网已有的信任关系、账号权限和协议机制,向其他主机逐台扩展控制范围的过程。这篇内容我会站在安全评估和防御加固的角度,把横向移动的原理、常见手法、检测方式和加固思路完整拆开讲一遍,适合刚接触内网安全的新手,也适合需要系统性梳理防御思路的安全工程师、运维管理员。先把话说在前面:所有技术讨论都限定在获得授权的测试环境、企业自查或红队演练场景里,不要在任何未经授权的系统上尝试。
1. 横向移动到底是怎么回事
1.1 什么是横向移动,为什么说它是内网安全的“分水岭”
很多人对网络攻击的理解停留在“打进来”这个层面,觉得攻击者突破了边界、拿到一台服务器的权限就算大功告成。但真实情况完全不是这样。国内企业的内网环境普遍存在两个特点:一是资产多、系统杂,Windows、Linux、老旧的业务系统混在一起;二是为了业务方便,管理员往往把大量机器加入同一个域,账号权限划分也相对粗放。攻击者突破边界拿到的往往只是一台边缘主机,权限不高、价值有限,真正的核心数据——数据库、财务系统、源码服务器——都在内网更深处。
横向移动,就是从这台低价值主机向高价值目标一步步移动的过程。它最能反映一个企业内网的真实安全水位:如果攻击者在一台机器上待了好几天,却始终拿不到第二台机器的权限,说明内网的安全设计是有效的;反过来,只要拿到一台机器,几个小时之内就能摸到域控或者核心数据库,那就说明内网的信任模型已经失效了。横向移动这么重要,本质原因就在这里——它是攻击者从“点”到“面”的转折点,也是防守方最应该投入资源去监测和阻断的关键环节。
从技术底层看,横向移动能成功,几乎都是因为内网“太信任”了。机器之间互相信任,账号口令在多个系统里复用,管理员习惯用同一个高权限账号做日常维护,域内默认允许各种远程调用协议——这些对业务来说很方便,对攻击者来说就是高速公路。理解了这一点,后面所有技术和防御手段都能顺理成章地串起来。
1.2 攻击者在横向移动阶段的目标清单
横向移动不是盲目地到处乱试,攻击者脑子里有一张很清晰的目标清单。排在第一位的是获取更多凭据——不管是明文密码、密码哈希,还是Kerberos票据,只要拿到新的凭据,就意味着能打开新的机器;第二位是提升权限,从普通用户提升到本地管理员,再想办法搞到域管理员的权限;第三位是寻找高价值数据,定位文件服务器、数据库、代码仓库的具体位置;最后才是把这些数据传出去或者做持久化,保证自己随时能回来。
这张目标清单决定了横向移动的行为模式:频繁的认证尝试、大量远程登录、异常的计划任务、奇怪的WMI调用、文件共享上的大规模文件访问。每一个行为单独看可能都不起眼,但组合起来就是攻击者在内网里移动的脚印。防守方要做的事情,就是让这些脚印变得非常明显、非常容易被发现,同时从架构上尽可能压缩攻击者的移动空间。
2. 横向移动的常见技术手法:攻击视角拆解
2.1 利用Windows远程管理通道:从IPC共享到计划任务
在Windows域环境里,横向移动最经典的技术路径几乎都围绕着系统自带的远程管理机制展开。攻击者拿到一台主机权限后,第一件事通常是用账号密码或哈希去尝试连接其他主机的IPC共享,也就是命名管道。IPC共享本身没有实际的文件内容,它的作用是提供进程间通信的通道,但很多远程管理工具都依赖它来建立连接。
有了IPC连接之后,最常见的就是远程创建服务。Windows系统里有“服务”这种机制,管理员可以远程在另一台机器上创建一个服务指向自己想要的程序,然后启动它。这个操作本身是Windows的合法管理功能,攻击者只是把“自己想要的程序”换成了控制命令、木马或者下载器。这类攻击手法之所以难防,是因为它完全走的是系统正常管理路径,不会触发任何漏洞利用的特征,传统杀毒软件很难判断“创建服务”这个操作到底是管理员干的还是攻击者干的。
类似的机制还有远程计划任务。攻击者可以在远程主机上注册一个计划任务,指定运行时间、运行程序和运行账号,到了时间任务就会自动执行,攻击者就拿到了那台主机的控制权。还有WMI,也就是Windows管理规范,它提供了一整套远程查询和调用接口,可以远程执行命令、查进程、查系统信息,同样是系统自带的管理能力。我在实际评估中做过统计,真正复杂的攻击手法反而少见,绝大多数横向移动都集中在这几个系统机制上。原因很简单:稳定、隐蔽、不需要额外上传工具。
2.2 凭据复用:密码哈希传递和票据传递是重灾区
如果说远程管理通道是横向移动的“门”,那凭据就是开门的“钥匙”。Windows系统里有一个长期存在的设计特点:用户在登录时输入的密码会被计算成哈希值,系统在验证身份时用的就是这串哈希,而不是密码本身。这就引出了一个非常重要的攻击思路——哈希传递。攻击者如果拿到了某个账号的密码哈希,不需要破解出明文密码,直接拿着这个哈希去访问远程主机就能通过身份验证。尤其糟糕的是,很多企业环境里管理员账号在大量机器上都是同样的密码,一旦哈希被获取,攻击者就能用它打开内网里几乎所有同密码的主机,这个场景在真实安全评估里非常普遍。
除了哈希传递,还有基于Kerberos协议的票据传递。Kerberos是Windows域环境里默认的身份认证协议,用户登录后会向域控申请一张票据,之后访问各种服务时拿票据验证就行。攻击者可以从内存中提取系统里已有的票据,也可以伪造票据——只要知道特定账号的密钥信息。这类攻击在域环境里的杀伤力非常大,因为票据代表的是整个域认证体系里的信任,而不是单台机器上的口令。
凭据在横向移动里的核心地位怎么强调都不过分。攻击者会想尽办法从内存、注册表、配置文件、临时目录、桌面文件里收集账号信息,包括明文密码、哈希、Kerberos票据、缓存的域凭据等等。所以后面讲防御的时候,凭据保护永远是放在第一位的。
2.3 利用“白名单”程序落地和远控
横向移动还有一个常见配套动作:把工具或恶意程序传到目标主机上并运行起来。这里攻击者会大量利用系统自带或被标记为可信的程序,比如PowerShell、MSHTA、Regsvr32、rundll32这些。这些程序本身就是Windows的合法组件,杀毒软件通常不会拦截,攻击者把它们当作“白名单”来用,加载执行恶意代码。
举个例子,PowerShell是Windows系统里强大的管理脚本工具,攻击者可以在远程主机上通过计划任务或者WMI调用PowerShell,让它从攻击者的服务器下载恶意脚本并直接执行,整个过程不需要在目标主机的磁盘上留下任何文件。这种“无文件”落地方式给防御带来了极大的麻烦——你没法通过查杀文件的方式来发现它,只能靠行为监测。
这里需要特别强调一个安全边界问题:攻击者之所以能利用这些白名单程序,是因为它们本身就具备强大的管理能力,企业在部署安全产品时不应该一味地封堵这些程序,而应该通过日志、行为分析和应用白名单策略来限制它们的异常使用方式。指望“把PowerShell禁掉”来保安全,在真实业务环境里几乎行不通。
3. 从检测视角看横向移动:防守方到底该盯什么
3.1 日志是第一步:Windows事件日志里的关键线索
很多安全人员一听说横向移动就头疼,觉得攻击手法这么多,怎么盯得过来。其实横向移动的每一步都会在系统里留下日志痕迹,关键是你知不知道该看哪些事件ID。这里我把最重要的几类整理出来:
| 关注点 | 关键事件ID/日志来源 | 异常信号 |
|---|---|---|
| 账号登录成功 | 4624(登录类型3为网络登录) | 一个账号短时间内从多台机器登录;非常用账号出现在敏感服务器上 |
| 账号登录失败 | 4625 | 大量不同账号的爆破尝试;同一账号尝试登录多台主机 |
| 特权账号使用 | 4672(特殊登录) | 管理员账号在非工作时间或非预期主机上登录 |
| 创建服务 | 4697 / System日志7045 | 陌生主机远程创建服务;服务名称和路径异常 |
| 创建计划任务 | 4698 / TaskScheduler日志 | 计划任务指向可疑路径;触发时间和权限异常 |
| WMI活动 | Microsoft-Windows-WMI-Activity/Operational | 大量WMI进程创建、远程命名空间连接 |
| PowerShell执行 | Microsoft-Windows-PowerShell/Operational | PowerShell脚本块记录启用;编码后的命令执行 |
| 新进程创建 | 4688 + 命令行记录 | 常见横向移动工具的特征命令行;不常见路径下的进程启动 |
这里我想重点说一个实操技巧:光看单条日志基本看不出什么问题,因为每个事件单独看都像是正常管理动作。真正有效的做法是围绕“一台上网机,横向扩展到多台服务器”的模式做关联分析。比如一个普通运维账号突然在三天内登录了二十台服务器,这本身可能正常,但如果这个账号平时主要负责的只是某一两个系统,那就值得重点关注。安全分析的核心不是单点告警,而是把散落在不同主机上的日志串成一个视图。
3.2 流量侧监测:哪些网络行为是横向移动的“异常形状”
日志之外,网络流量是检测横向移动的另一只眼睛。横向移动一定会产生主机与主机之间的通信流量,而这些流量有明显的形状特征。比如哈希传递攻击往往会产生大量SMB协议请求,攻击者在短时间内用同一组凭据去连接多台主机的445端口,这个行为在流量里表现为连接到非常多不同IP的SMB会话。
再比如远程创建服务的场景,攻击者会先和远程主机建立IPC连接,然后在远程主机上触发服务控制管理器相关的RPC调用。这些调用的频次、顺序和普通管理操作是有差异的。一些成熟的安全团队会专门在网络出口和核心交换节点做全流量镜像,把内网东西向流量记录下来,用流量分析平台去做行为建模。东西向流量——也就是内网服务器之间互访的流量——是横向移动检测的主战场,一定不能只盯着南北向的边界流量。
还有一个容易被忽略的点是时间维度。横向移动的每一步之间往往有较长的思考间隔,攻击者需要侦察、尝试、验证,整个链条可能持续几个小时甚至好几天。所以流量检测不能只看瞬时特征,要做一定时间窗口的序列分析。比如一台服务器在凌晨两点向外发起大量SMB连接,同时伴随DNS查询内网主机名,这个时序组合就非常可疑了。
3.3 建立基线和异常行为分析
检测横向移动最忌讳的是没有一个“正常基线”。每一家企业的内网流量模式都不一样:有的企业业务系统之间的调用本来就很频繁,SMB流量铺天盖地;有的企业运维完全是脚本化操作,计划任务和WMI调用多到数不清。如果直接套用外部最佳实践去做告警,结果一定是告警风暴,最后没人看,形同虚设。
比较务实的路径是先花一两周时间做内网行为基线梳理。搞清楚几个基本问题:哪些主机之间本来就经常通信?哪些账号是日常运维的核心账号,它们正常登录哪些机器?业务系统之间有哪些固定的调用关系?有了这个基线,再去做偏差检测就非常精准了。比如我们发现某个账号平时只在A网段活动,突然开始登录B网段的服务器,哪怕只是登录成功一次,都值得马上确认。
这里额外说一个我常用的检测思路——关注“欢迎登录横幅”。很多Windows服务器在远程登录时会显示欢迎语,攻击者登录时也一样能看到。虽然这个对检测没有直接帮助,但它提醒我们一点:横向移动是交互性的,账号真正登录成功的那一刻,攻防双方就开始了时间的赛跑。防守方要做的不是等攻击者把所有步骤走完,而是尽量在第一二次横向跳跃时就触发告警并及时响应。
4. 防御加固:让横向移动从“轻而易举”变成“寸步难行”
4.1 凭据保护是第一步,也是最重要的一步
横向移动的燃料是凭据,所以防御的第一原则就是“让攻击者拿不到凭据”和“让凭据就算被拿到也用不了”。这里面的重点非常明确:第一,禁止在多个系统里复用同一个密码,尤其是管理员密码,这一步会让哈希传递的攻击面急剧收缩;第二,对高权限账号启用专门的保护机制,比如把域管理员账号和普通管理员账号明确分开,日常运维不使用域管理员级别的凭据登录业务服务器;第三,在可能的情况下开启Windows Credential Guard这类基于虚拟化的凭据保护功能,它能把用于认证的密钥隔离在一个安全环境里,即使攻击者拿到系统权限,也很难直接提取出可用的凭据。
在实际加固中还有一个必须处理的痛点:本地管理员密码统一问题。很多企业为了部署方便,给所有服务器设置了相同的本地管理员密码,这在Windows域环境下可以用组策略配合LAPS——本地管理员密码解决方案来解决,它让每台机器的本地管理员密码都不一样,并且定期自动更换,存放在域控的目录里统一管理。我在不少项目里看到,加了LAPS之后,攻击者通过哈希传递横向移动的成功率直接下降了一个数量级,因为这个手法最依赖的就是“同密码机器多”这个前提。
4.2 网络分段与最小权限:让内网不再是“大平层”
如果说不控制凭据是横向移动的燃料问题,那网络架构就是横向移动的“路网问题”。很多企业内网本质上就是一个大平层:所有服务器都在同一个网段,互相之间完全互通,从任何一台机器都可以访问到核心服务器。这种架构下,攻击者只要进入内网网络,就拥有几乎和运维一样大的移动范围。解决思路是把内网按业务域和信任级别划分成小段,段与段之间通过防火墙或访问控制策略限制互访。比如办公网、研发网、生产网、核心数据区必须物理或逻辑隔离,跨区访问一定要走审批过的跳板机。
这里分享一个我评估时经常用的判断标准:一个普通员工或者一台边缘服务器的账号,能不能直接访问到域控、财务数据库或备份系统。如果能,这个内网就是“大平层”,攻击者的横向移动成本无限低。网络分段不是靠口号实现的,它要落实成具体的访问控制列表、防火墙规则和路由策略。分段之后的另一项工作是“最小权限”原则:每个账号只拥有完成自己工作所需的最小权限,每台服务器上只开放业务必需的端口和服务。
4.3 端点响应与主动狩猎:不能只靠“装杀毒软件”
防御横向移动,传统意义上“装个杀毒软件”“打个补丁”这种思路已经远远不够了。横向移动利用的是系统管理机制,攻击者往往不需要触发任何漏洞,所以端点安全的重点要从“查杀恶意文件”转向“监测恶意行为”。具体来说,要在所有关键服务器上部署行为检测能力,重点监控前面清单里提到的那些日志事件;有条件的企业可以上EDR——端点检测与响应平台,它能持续采集进程、网络连接、文件变更、注册表变化等数据,并自动做关联分析。
但工具只是工具,真正的差距在人和流程。横向移动的检测需要有人持续跟踪告警、分析日志、确认异常,这就是安全运营团队的工作。我在和一些企业交流时发现,他们买了很好的安全产品,但因为无人值守或者告警规则配置不合理,真正关键的攻击行为并没有被有效发现。主动狩猎是指安全团队在没有任何明确告警的情况下,定期用攻击者的视角去搜寻内网里的可疑痕迹,比如搜索全网的敏感账号登录事件、扫描异常的SMB连接模式。这个思路非常有效,尤其是针对那些慢速、低频率的横向移动。
4.4 管理好“服务账号”和“机器账号”:最容易忽视的角落
前面讲的都是人和账号,还有一类账号特别容易被忽视——服务账号和机器账号。很多业务系统在运行时要调用远程资源,会在服务器上配置固定的服务账号,这些账号往往有很高的权限,而且密码长期不变。攻击者一旦拿到这类账号,横向移动起来非常隐蔽,因为它们的行为模式和运维人员完全不同,走的是业务调用的固定路径。机器账号则是每台加入域的主机自身用的账号,正常情况下机器账号不会被人为使用,但攻击者如果在系统里拿到机器账号的哈希,也能用来访问域内其他资源。
对这类账号的管理思路是:定期审查服务账号的权限和使用情况,能去掉的权限坚决去掉;凡是可以通过托管服务账号或者组托管服务账号来实现自动密码轮换的场景,尽量迁移过去;对机器账号的活动保持监测,正常情况下机器账号不应该发起交互式登录。这里踩过坑的朋友应该都有体会:很多横向移动攻击之所以能一路畅通,恰恰是因为攻击者拿到的是一个被大家遗忘了三年、但权限一直保留着的老服务账号。
5. 实战心得与常见排查问题
5.1 我在横向移动评估中踩过的坑
这个领域做久了,踩过的坑确实不少。第一个坑是低估了内网资产梳理的难度。很多企业连自己内网到底有多少台机器、哪些机器属于哪个部门都说不清楚。没有资产清单,横向移动的检测和加固根本无从谈起——你不知道该保护哪台机器,也不知道攻击者可能往哪个方向移动。所以做内网安全的第一步永远是资产梳理,这一步不能省。
第二个坑是对“日志已开启”的盲目信任。Windows日志默认情况下并不会把所有的细节都记录下来,尤其是进程命令行和PowerShell详细执行内容,需要额外开启对应的策略。我在不止一个项目里发现,客户说“我们日志都开着呢”,结果一查,4624登录日志开了,但4688进程创建没开,WMI日志没开,PowerShell脚本块日志更没开——等真出了问题,根本找不到关键线索。开启这些日志本身不难,难的是运维团队不知道要开哪些、开完之后日志量会暴涨、需要投入存储和分析的资源。
第三个坑是过于追求复杂攻击手法的防御,忽略了基础问题。我和同行交流时有个共识:现在绝大多数企业遭遇的横向移动攻击,用的仍然是哈希传递、计划任务、WMI执行、永恒之蓝漏洞利用这些“老”手法。把基础漏洞补丁打全、把默认密码改掉、把管理员账号分开,就能挡住大部分攻击。地基没打好之前,花大量资源去做高精尖的检测模型,有点本末倒置了。
5.2 常见问题速查表
| 问题场景 | 可能原因 | 建议动作 |
|---|---|---|
| 内网一台机器被入侵,但迟迟看不到横向移动迹象 | 凭据保护做得较好;网络分段有效;攻击者还在潜伏侦察 | 确认当前主机账号权限和本地凭据存储情况,持续监测横向扩散行为 |
| 安全设备报了大量SMB告警,但分不清是业务还是攻击 | 业务系统存在大量共享访问;基线不清晰 | 先对业务系统和账号梳理基线,做SMB会话来源和频次分析 |
| 管理员账号被用于大量主机登录,但日志权限不足,无法关联 | 缺少统一日志平台;主机日志留存时间过短 | 建立集中日志系统,至少保留90天以上关键日志,做账号维度的登录审计 |
| 域控被攻击者拿到,但不知扩展到哪些机器 | 域控权限过大,攻击者可重置任意账号密码 | 域控严格限制登录来源;对高权限账号使用单独管理方案;审计关键账号变更 |
| 安全运营人力有限,告警太多看不过来 | 检测规则太粗放,缺少攻击行为序列关联 | 聚焦高价值资产,精简告警规则,用攻击链模型做阶段的检测,不要只盯单点事件 |
5.3 关于“收藏这篇就够了”的大实话
标题我引用了“收藏这篇就够了”,但说句实在话,横向移动这件事不存在看完一篇文章就彻底搞定的情况。它太依赖具体的环境:用的是Windows域还是对等网,有没有云上资产,有没有工控系统,运维团队成熟度如何,这些都会直接影响技术方案和防御重点。这篇文章真正能帮你的是建立起一套完整的思考框架——横向移动的本质是什么、攻击者通常会走哪些路径、每一步在系统和流量上长什么样、防御应该从哪些层面下手。框架对了,方向就不会偏。
我个人在实际项目里的体会是,横向移动的攻防就像下棋。攻击者每走一步,都会在棋盘上留下痕迹;防守方要做的不是防住每一步,而是构建一套让对手步履维艰的规则,同时练就一双能快速看清棋局的眼睛。把凭据管好,把网络切开,把关键日志留下来,把分析能力建起来——这四件事做完,你会发现大多数横向移动攻击在第一步或第二步就会被逼停。这比任何一招鲜的技巧都更有价值。