很多刚接触渗透测试的人会误以为拿到一台 Web 服务器的 Shell渗透就差不多结束了。但真实攻防中这往往只是开始。攻击者真正想拿到的通常不是边界主机而是域控、数据库、邮件系统、核心业务服务器这类高价值资产。连接“外网入口”和“核心资产”的关键环节就是横向移动。什么是横向移动横向移动是指攻击者在获得内网某台主机的初始权限后以该主机为跳板继续在内网中访问其他系统、获取更多凭据、扩大控制范围的过程。它和垂直提权不同垂直提权在同一台主机上从普通用户提升到管理员或 SYSTEM/root。横向移动从一台主机跳到另一台主机逐步接近核心目标。两者经常交替出现先横向到一台权限更高的主机再在上面提权提权完成后又继续向下一台主机横向移动。为什么横向移动很关键因为单点突破往往不足以造成严重危害。攻击者需要找到域控制器、数据库、文件服务器等核心资产获取域管理员、数据库管理员等高权限账号扩大控制范围降低被单点阻断的风险为后续数据窃取、持久化控制创造条件。从攻击链看横向移动处于承上启下的位置flowchart TD A[初始突破] -- B[凭据获取] B -- C[横向移动] C -- D[权限提升] D -- E[目标达成] A --|Web 漏洞 / 钓鱼 / 边界服务漏洞| A1[典型技术: 漏洞利用、钓鱼邮件、弱口令爆破] B --|Mimikatz / 抓取 / 哈希传递| B1[典型技术: Mimikatz、LaZagne、Pass-the-Hash] C --|SMB / RDP / WMI / WinRM| C1[典型技术: PsExec、CrackMapExec、WMI、RDP] D --|提权 / 域管提升| D1[典型技术: 内核漏洞、服务配置错误、Kerberoast] E --|数据窃取 / 持久化| E1[典型技术: 数据打包、计划任务、后门植入]如果没有横向移动攻击者通常只能停留在被攻破的边界主机上一旦横向移动成功内网纵深防御就可能被逐步瓦解。横向移动常见技术路线横向移动的手法很多但核心思路基本一致复用已有权限、凭据、协议或配置缺陷实现跨主机访问。1. 基于凭据的移动攻击者获取到用户名密码、NTLM 哈希、Kerberos 票据等凭据后可以直接访问其他主机。常见方式包括使用 PsExec、CrackMapExec 等通过 SMB 执行远程命令通过 RDP 登录目标主机使用 WMI 远程执行命令利用 Pass-the-Hash、Pass-the-Ticket 进行身份复用。这类方式之所以常见是因为很多内网环境中存在凭据复用、本地管理员密码相同、域账号权限过大等问题。2. 基于漏洞的移动如果目标主机存在未修复漏洞攻击者也可能直接利用漏洞完成横向跳转。例如利用未打补丁的 SMB 漏洞利用 Exchange、域控相关组件漏洞利用中间件、数据库、远程服务漏洞。这种方式风险较高容易触发告警但在缺乏补丁管理和资产梳理的环境中仍然具有威胁。3. 基于隧道和代理的移动当内网存在网段隔离、防火墙限制或路由不可达时攻击者可能会建立隧道或代理穿透网络边界。常见手段包括SOCKS 代理SSH 隧道端口转发内网路由添加。这类技术不一定直接获取新主机权限但能帮助攻击者扩大探测范围为后续横向移动创造条件。攻击者如何寻找横向目标横向移动不是盲目跳转通常会先做内网信息收集查看当前主机的 IP、子网、路由表扫描内网存活主机和开放端口判断是否为域环境查找共享目录、配置文件、浏览器保存密码、数据库连接串定位域控制器、数据库服务器、文件服务器等高价值目标。很多横向移动的成功并不是因为攻击者使用了多么复杂的工具而是因为内网中已经存在可用凭据、过度信任关系和缺乏分段隔离。从防守角度看如何检测和阻断横向移动之所以难防是因为很多攻击行为看起来很像正常运维管理员也会用 RDP、WMI、PsExec、远程更新、批量部署补丁。因此检测重点不应只放在“某个工具是否出现”而要看行为是否异常。可以从三层入手1. 流量层关注内网东西向流量中异常的 SMB、RDP、WMI、WinRM、LDAP、Kerberos 行为。例如某台普通业务主机突然大量访问其他主机 445、3389、5985 端口非运维账号频繁发起远程登录同一账号短时间内登录大量主机Kerberos 票据请求、NTLM 认证出现异常模式。2. 端点层通过 EDR 或主机日志关注异常进程创建Mimikatz、LaZagne 等凭据抓取行为PowerShell 执行可疑命令计划任务、服务、注册表启动项被修改远程命令执行痕迹。3. 日志与身份层重点审计域账号登录日志特权账号使用记录账号横向访问路径异常时间、异常地点、异常主机登录本地管理员账号复用情况。阻断方面可以结合最小权限、网络分段、微隔离、RDP/WMI/SMB 访问控制、敏感主机白名单、快速账号封控等措施把攻击者限制在尽可能小的范围内。代码与命令示例以下示例仅用于理解横向移动的技术原理和检测思路必须在授权实验环境或靶场中使用不得用于非授权目标。示例 1SSH 横向登录如果内网主机开放 SSH且存在弱口令或凭据复用攻击者可能尝试远程登录ssh user192.168.10.20从防守角度看可以重点检测同一账号短时间内登录多台主机非运维账号登录生产服务器来自异常源 IP 的 SSH 登录登录失败次数突然增加。示例 2WMI 远程执行命令在 Windows 域环境中WMI 常被用于远程管理。攻击者也可能利用它执行命令wmic /node:192.168.10.20 /user:admin /password:Pass123 process call create cmd.exe /c whoami这类行为在端点和系统日志中通常会留下痕迹例如进程创建记录、远程 WMI 调用记录、异常命令行参数等。示例 3PowerShell 远程会话PowerShell Remoting 也是常见的横向移动方式之一Enter-PSSession -ComputerName 192.168.10.20 -Credential admin如果业务主机正常情况下不会建立 PowerShell 远程会话却突然出现大量远程执行行为就需要重点排查。示例 4Python 端口探测脚本横向移动前攻击者通常会探测内网存活主机和开放端口。下面是一个简化的端口探测示例import socket target 192.168.10.20 ports [22, 80, 445, 3389, 5985] for port in ports: try: s socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) result s.connect_ex((target, port)) if result 0: print(f{target}:{port} is open) s.close() except Exception: pass从检测角度可以关注内网主机是否出现大量短连接、异常扫描行为、同一源 IP 对多个目标端口进行探测等。学习建议横向移动是内网渗透中非常典型、也非常容易“只懂概念、不会落地”的知识点。建议学习时不要只背工具名而是按这个顺序梳理先理解目标攻击者为什么要横向移动想靠近哪些资产再理解前提横向移动依赖哪些凭据、协议、信任关系接着看路径从边界主机到域控/数据库可能经过哪些跳板最后看检测每一步会留下哪些日志、流量和端点痕迹为便于快速对照下表汇总了常见横向移动攻击手法在流量层、端点层、日志层的检测要点、典型告警特征及简要阻断建议。攻击手法流量层检测要点端点层检测要点日志层检测要点典型告警特征阻断建议SMB445异常大量 445 端口连接非运维主机频繁访问共享SMB 协议版本异常svchost.exe 异常加载PsExec 服务创建痕迹net use 命令执行4624 登录类型 3 异常5140 共享访问异常4776 NTLM 认证异常同一主机短时间访问大量 445 端口共享访问来源主机异常限制 SMB 访问来源关闭不必要的共享对敏感主机实施 445 白名单RDP3389异常 3389 连接非运维时段远程登录大量 RDP 爆破流量mstsc.exe 异常启动剪贴板重定向远程桌面服务异常4624 登录类型 10 异常4778/4779 会话重连记录登录源 IP 异常非运维账号远程登录同一账号多地同时登录登录失败后成功启用 NLA限制 RDP 来源 IP使用 RDP 网关对高价值主机禁用 RDPWMI135/动态端口135 端口异常连接WMI 调用流量突增动态 RPC 端口异常wmic.exe 异常执行进程创建父子关系异常远程 WMI 调用记录4624 登录类型 3 异常WMI 活动日志事件 ID 5857/5858wmic process call create 命令非运维账号发起 WMI 调用限制 WMI 远程调用禁用不必要的 WMI 命名空间对敏感主机实施访问控制WinRM5985/59865985/5986 端口异常连接WinRM 流量突增非运维主机发起 WinRMwinrs.exe 异常执行PowerShell 远程会话建立WSMan 服务异常4624 登录类型 3 异常WinRM 操作日志PowerShell 远程会话日志Enter-PSSession 命令非运维账号建立远程 PowerShell 会话限制 WinRM 访问来源对敏感主机禁用 WinRM实施 TrustedHosts 白名单SSH22异常 22 端口连接SSH 登录流量突增非运维主机发起 SSHssh.exe 异常执行密钥文件被访问SSH 隧道建立痕迹SSH 登录日志异常同一账号多主机登录登录源 IP 异常同一账号短时间登录多台主机非运维账号登录生产服务器限制 SSH 来源 IP使用密钥认证禁用 root 远程登录实施堡垒机统一入口PowerShell Remoting5985/5986 端口异常PowerShell 远程流量突增非运维主机发起远程会话powershell.exe 异常执行脚本块日志AMSI 告警远程会话建立PowerShell 操作日志4104远程会话日志4624 登录类型 3 异常Enter-PSSession/Invoke-Command 命令PowerShell 下载执行模式限制 PowerShell 远程访问启用 Constrained Language Mode对敏感主机禁用 Remoting需要说明的是上述检测要点并非孤立存在实际防守中应把流量、端点、日志三层数据联动分析才能更准确地区分正常运维与恶意横向移动。在实际落地时可以借助一些成熟的检测工具来辅助上述三层分析。下面简要说明 Zeek、Suricata、Sysmon、BloodHound 各自的适用场景。Zeek流量层Zeek 是一款面向网络流量的安全监控框架擅长解析 SMB、RDP、WMI、WinRM、LDAP、Kerberos 等协议并输出结构化日志。它适合在流量层发现异常连接模式例如某台业务主机短时间内访问大量主机的 445、3389、5985 端口或同一账号从多台主机发起远程登录。Zeek 本身不直接阻断流量更多用于持续记录和告警。Suricata流量层Suricata 是高性能的入侵检测与防御系统基于规则匹配内网东西向流量中的恶意特征例如 PsExec 服务创建、WMI 远程调用、异常 SMB 命令、RDP 爆破等。它既可以作为 IDS 旁路监听也可以作为 IPS 在线阻断。相比 ZeekSuricata 更偏重已知攻击特征的实时匹配适合在流量层快速触发告警。Sysmon端点层Sysmon 是 Windows 平台上的主机监控工具通过驱动级日志记录进程创建、网络连接、文件写入、注册表变更、DLL 加载等行为。它适合在端点层发现 Mimikatz、LaZagne 等凭据抓取行为、异常进程创建、PowerShell 可疑执行、计划任务或服务被修改等痕迹。Sysmon 日志通常需要配合 SIEM 或 EDR 平台做关联分析才能形成有效告警。BloodHound日志与身份层BloodHound 是一款面向 Active Directory 的分析工具通过采集域内对象、ACL、会话、组关系等数据可视化呈现账号之间的横向访问路径和提权路径。它适合在日志与身份层梳理账号横向访问路径、定位本地管理员复用、发现过度信任关系帮助防守方优先收敛高风险路径。需要说明的是BloodHound 本身是攻击者常用的侦察工具防守方也可以用它做红队视角的路径审计但采集数据时需在授权范围内进行。