红队横向移动技巧:10 种绕过内网检测的横向渗透方法!

华盟原创文章投稿奖励计划

在红队实战中,横向移动是突破内网边界、扩大控制范围的核心环节。企业内网普遍部署的终端检测响应(EDR)、日志审计系统、网络入侵检测设备(NIDS)等安全机制,构成了横向渗透的主要障碍。真正高效的横向移动,并非依赖复杂的 0day 漏洞,而是通过对合法协议、系统特性的深度利用,实现 “隐蔽化”“合法化” 的内网扩散。

本文将结合实战场景,梳理 10 种经过验证的横向移动方法,重点解析其绕过检测的核心逻辑与实操要点。所有内容均基于授权测试场景,旨在为安全防御人员提供对抗思路,严禁用于未授权的非法攻击

一、Pass-the-Hash(PtH)优化:无明文凭证的合法横向

原理概述

Pass-the-Hash 是红队横向移动的经典技术,核心是重用 Windows 系统的 NTLM 哈希值,绕过密码明文验证环节,直接通过 SMB、WMI 等协议登录目标主机。该技术的核心优势在于无需获取用户明文密码,降低了凭证泄露的风险,且利用的是系统原生认证机制,隐蔽性极强。

实现流程

  1. 1. 通过 Mimikatz、LaZagne 等工具从已控制主机的内存或注册表中提取 NTLM 哈希(需管理员权限)。
  2. 2. 利用 Impacket 套件中的 psexec.py、wmiexec.py 等工具,携带哈希值向目标主机发起 SMB/WMI 连接。
  3. 3. 成功建立连接后,执行命令或部署后门程序,获取目标主机控制权。

绕过检测的关键技巧

  • • 避免使用默认工具:原版 Mimikatz、Impacket 工具已被多数 EDR 标记,需对工具进行免杀处理,如修改特征字符串、加壳混淆或内存注入执行。
  • • 控制操作频率:短时间内向多台主机发起哈希传递,会触发网络流量异常告警,建议采用随机时间间隔(如 30-60 秒),分批次尝试。
  • • 选择低敏感度协议:优先使用 SMB(445 端口)而非 RDP(3389 端口),RDP 登录会生成明确的交互式登录日志,而 SMB 后台执行命令的日志级别更低。

注意事项

  • • 仅适用于 NTLM 认证场景,若目标主机启用 Kerberos 认证且禁用 NTLM,该方法失效。
  • • 提取哈希时需避免触发内存保护机制(如 Credential Guard),可先通过注册表查询判断目标主机是否启用相关防护。

二、WMI 无文件横向移动:规避文件落地检测

原理概述

Windows 管理规范(WMI)是系统原生的远程管理接口,支持无文件执行命令 —— 通过网络发送 WMI 请求,目标主机在内存中解析执行,无需落地恶意文件,可有效绕过依赖文件特征检测的 EDR。

实现流程

  1. 1. 验证目标主机 135 端口(WMI 默认端口)是否开放,可通过 nmap 或 PowerShell 的 Test-NetConnection 命令探测。
  2. 2. 使用 PowerShell 的 Invoke-WmiMethod cmdlet,或 wmic.exe 命令行工具,指定目标 IP、凭证(哈希或明文)及待执行命令。
  3. 3. 执行结果通过网络回传,或写入内网共享目录,避免直接在目标主机生成日志文件。

绕过检测的关键技巧

  • • 命令混淆:将恶意命令拆分为多个字符串片段,通过拼接、编码(如 Base64)后执行,避免出现 “cmd.exe/c”“powershell.exe” 等关键字。
  • • 利用 WMI 事件订阅:若需长期控制,可创建 WMI 事件过滤器(如监听特定进程启动),触发后执行隐藏命令,替代直接执行一次性命令,降低被日志捕获的概率。
  • • 选择非交互式执行:使用 “-NoInteractive” 参数,避免生成交互式进程,减少 EDR 的行为监控触发点。

注意事项

  • • WMI 操作会生成 WMI-Activity 日志(事件 ID 5858、5861),需提前通过修改注册表或使用日志清理工具删除相关记录。
  • • 部分 EDR 会监控 WMI 的异常调用,建议搭配低权限凭证使用,避免管理员权限操作过于频繁。

三、SMB 协议隐蔽通信:利用合法端口绕过流量检测

原理概述

SMB(Server Message Block)协议是 Windows 内网文件共享、打印机共享的核心协议,几乎所有 Windows 主机都会开放 445 端口。红队可借助 SMB 协议的合法通信通道,传递命令、传输数据,规避 NIDS 对异常端口的监控。

实现流程

  1. 1. 通过已控制主机搭建 SMB 共享服务器(可使用 Python 的 smbserver.py 工具),共享目录中存放加密后的恶意脚本或工具。
  2. 2. 目标主机通过 SMB 协议访问共享目录,下载并执行恶意文件(可结合 PtH 或明文凭证认证)。
  3. 3. 执行结果通过 SMB 协议回传至共享服务器,或通过 DNS 隧道、ICMP 隧道间接传输,避免单独建立新连接。

绕过检测的关键技巧

  • • 伪装正常文件传输:将恶意脚本命名为 “backup.exe”“update.dll” 等常规文件名,搭配正常文件(如文档、图片)一起传输,降低流量特征的辨识度。
  • • 启用 SMB 加密:通过 SMB 3.0 协议的加密功能,避免传输内容被 NIDS 解密检测,命令执行时使用 “net use” 命令挂载共享,而非直接执行可执行文件。
  • • 清理共享访问日志:目标主机的事件日志(事件 ID 5140)会记录 SMB 共享访问行为,需在执行后通过 wevtutil 命令清理相关日志。

注意事项

  • • 需确认目标主机支持的 SMB 版本,老旧主机(如 Windows XP)仅支持 SMB 1.0,存在安全漏洞但可能被防火墙限制。
  • • 避免在共享目录中存放未加密的恶意文件,部分 EDR 会监控网络共享文件的执行行为。

四、凭证喷射智能规避:降低账户锁定与日志告警

原理概述

凭证喷射(Credential Spraying)是利用已知的用户名列表,搭配高频密码(如 Password123、公司名称 + 年份)进行批量尝试登录,适用于内网存在弱密码策略的场景。与暴力破解不同,凭证喷射采用低频率、广覆盖的方式,降低账户锁定和日志告警的风险。

实现流程

  1. 1. 通过信息收集获取内网用户名列表(如从域控制器的 LDAP 查询、已控制主机的本地用户列表提取)。
  2. 2. 筛选高频弱密码组合(避免使用 123456 等极端弱密码,此类密码易被防火墙直接拦截)。
  3. 3. 使用 CrackMapExec、Hydra 等工具,设置长时间间隔(如 10-15 分钟 / 次),分批次对目标主机进行登录尝试。

绕过检测的关键技巧

  • • 动态调整密码顺序:对不同主机使用不同的密码尝试顺序,避免固定模式触发异常检测规则。
  • • 针对不同主机类型差异化尝试:对域控制器、数据库服务器等核心设备减少尝试次数,优先测试普通办公主机。
  • • 利用域信任关系:若获取域用户凭证,可通过域信任关系横向到子域或信任域的主机,避免在同一域内过度尝试。

注意事项

  • • 需提前查询目标域的密码策略(如账户锁定阈值、密码复杂度要求),避免触发账户锁定机制。
  • • 部分企业会部署密码泄露检测系统,需避免使用已被公开泄露的密码组合。

五、PowerShell 混淆执行:突破脚本检测机制

原理概述

PowerShell 是 Windows 系统的原生脚本环境,支持直接调用系统 API,是横向移动的常用工具。但由于其被恶意攻击频繁利用,多数 EDR 会对 PowerShell 脚本进行关键字检测、行为监控。通过混淆技术修改脚本特征,可绕过这些检测机制。

实现流程

  1. 1. 编写基础功能脚本(如远程执行命令、获取系统信息),避免使用恶意关键字(如 “Invoke-Mimikatz”“Get-Process”+ 敏感进程名)。
  2. 2. 对脚本进行混淆处理,常见方式包括字符串 Base64 编码、变量名随机替换、代码分段拼接、反引号转义。
  3. 3. 通过 WMI、SMB 或邮件附件等方式,将混淆后的脚本传输至目标主机,通过 “powershell -ExecutionPolicy Bypass -EncodedCommand” 命令执行。

绕过检测的关键技巧

  • • 多层编码:将脚本进行 Base64 编码后,再通过 ASCII 码转换、字符串反转等方式二次处理,执行时逐步解码。
  • • 利用 PowerShell 无文件执行:通过内存加载脚本(如借助 Invoke-ReflectivePEInjection),避免脚本落地生成文件。
  • • 模仿合法脚本行为:在脚本中加入常规系统操作(如查询系统时间、列出目录文件),伪装成正常维护脚本。

注意事项

  • • 避免使用过于复杂的混淆算法,部分 EDR 会监控异常的编码解码行为。
  • • 执行后清理 PowerShell 执行日志(事件 ID 4104),可通过修改 “HKLM:\Software\Microsoft\Windows\PowerShell\1\Logging\ModuleLogging” 注册表项关闭日志记录。

六、RDP 分段渗透:利用合法远程桌面的隐蔽控制

原理概述

远程桌面协议(RDP)是企业常用的远程管理工具,3389 端口通常被允许在内网开放。红队可利用合法的 RDP 凭证,通过分段登录、会话隐藏等方式,实现横向移动,且由于是合法管理行为,不易被标记为恶意。

实现流程

  1. 1. 获取目标主机的 RDP 凭证(可通过 PtH、凭证喷射或信息收集获取)。
  2. 2. 通过 mstsc.exe 或 FreeRDP 工具登录目标主机,避免直接进行敏感操作(如创建后门、提取凭证)。
  3. 3. 登录后执行低敏感度操作(如查看系统信息、复制常规文件),后续通过已部署的隐藏后门(如注册表启动项、计划任务)维持控制。

绕过检测的关键技巧

  • • 隐藏 RDP 会话:使用 “tscon” 命令将 RDP 会话切换为控制台会话,避免在目标主机的任务管理器中显示远程会话。
  • • 控制登录时间:选择办公非高峰时段(如午休、下班前后)登录,减少被管理员发现的概率。
  • • 清理登录日志:删除 RDP 登录相关日志(事件 ID 4625、4624),可通过 wevtutil 命令或日志清理工具实现。

注意事项

  • • 部分企业会限制 RDP 登录的来源 IP,需提前通过端口扫描确认目标主机是否允许当前 IP 访问。
  • • 避免使用管理员账户进行频繁 RDP 登录,可创建低权限账户作为跳板,再通过提权获取高权限。

七、Windows 任务计划程序延迟执行:规避实时监控

原理概述

Windows 任务计划程序(Task Scheduler)是系统原生的任务调度工具,支持设置触发条件(如定时执行、开机启动)和执行权限。红队可利用任务计划程序创建延迟执行的任务,避免实时操作触发 EDR 的行为监控,实现隐蔽横向移动。

实现流程

  1. 1. 通过 SMB、WMI 等方式连接目标主机,获取系统权限(管理员或 SYSTEM 权限)。
  2. 2. 使用 schtasks.exe 命令或 PowerShell 的 New-ScheduledTask cmdlet,创建新任务,设置触发条件(如延迟 1 小时执行、每天凌晨 3 点执行)。
  3. 3. 任务执行内容为隐藏的恶意命令(如启动后门程序、回传系统信息),执行后自动删除任务记录。

绕过检测的关键技巧

  • • 伪装任务名称:将任务名称命名为 “Windows Update”“System Maintenance” 等系统常规任务名,避免使用敏感名称。
  • • 选择合理触发条件:优先使用 “空闲时间触发”“事件触发”(如系统启动完成),而非固定定时触发,降低被日志分析发现的概率。
  • • 隐藏任务执行窗口:设置任务执行时 “不显示窗口”,并选择 “以最高权限运行”,避免权限不足导致执行失败。

注意事项

  • • 任务计划程序的操作会生成事件日志(事件 ID 106、200),需在任务执行后及时清理。
  • • 部分 EDR 会监控异常的任务计划创建行为,建议搭配合法凭证使用,避免在无凭证情况下强行创建任务。

八、LLMNR/NBT-NS 投毒:获取凭证后横向移动

原理概述

LLMNR(链路本地多播名称解析)和 NBT-NS(NetBIOS 名称服务)是 Windows 系统用于本地主机名解析的协议。当主机无法通过 DNS 解析名称时,会通过 LLMNR/NBT-NS 向局域网内广播查询请求。红队可伪装成解析服务器,响应这些请求(即 “投毒”),诱导目标主机发送 NTLM 凭证哈希,获取凭证后再进行横向移动。

实现流程

  1. 1. 在已控制的内网主机上,运行 Responder 等投毒工具,监听 LLMNR/NBT-NS 广播包。
  2. 2. 当内网其他主机发起名称解析请求时,工具伪装成目标主机,响应请求并要求 NTLM 认证。
  3. 3. 捕获目标主机发送的 NTLM 哈希,通过离线破解(如使用 Hashcat)获取明文密码,或直接使用哈希进行 PtH 横向移动。

绕过检测的关键技巧

  • • 限制投毒范围:仅针对内网中活跃的主机进行投毒,避免向整个网段广播响应,减少流量异常。
  • • 过滤敏感主机:避免对域控制器、EDR 服务器等核心设备进行投毒,此类设备的防护机制更严格。
  • • 伪装合法响应:使工具的响应包符合 LLMNR/NBT-NS 协议规范,避免出现格式异常被 NIDS 检测。

注意事项

  • • 该方法依赖内网主机的名称解析失败场景,需在信息收集阶段确认内网 DNS 配置是否存在漏洞
  • • 部分企业会禁用 LLMNR/NBT-NS 协议,需提前通过 nmap 扫描或 PowerShell 查询确认协议是否启用。

九、SSH 隧道跨网段横向:突破网络分段限制

原理概述

在混合架构内网(Windows+Linux)中,SSH 协议是 Linux 主机的常用远程管理协议。红队可利用已控制的 Linux 主机作为跳板,通过 SSH 隧道转发流量,突破内网网络分段限制,实现跨网段横向移动。

实现流程

  1. 1. 获取内网 Linux 主机的 SSH 凭证(如通过弱密码破解、信息泄露获取),登录该主机。
  2. 2. 在 Linux 主机上创建 SSH 本地隧道或远程隧道,将目标网段的端口(如 Windows 主机的 445、3389 端口)转发至本地。
  3. 3. 通过隧道访问目标网段的主机,使用 PtH、RDP 等方式进行横向移动,所有流量均通过 SSH 加密传输,规避网络监控。

绕过检测的关键技巧

  • • 选择常用端口转发:将目标端口转发至本地常用端口(如 80、443),避免使用异常端口触发防火墙告警。
  • • 启用 SSH 压缩与加密:减少流量体积,同时避免传输内容被 NIDS 解密检测。
  • • 隐藏 SSH 进程:通过修改 SSH 进程名称、使用后台运行模式(nohup),避免被 Linux 主机管理员发现。

注意事项

  • • 需确认 Linux 主机是否允许 SSH 隧道转发,部分企业会在 SSH 配置文件(sshd_config)中禁用 AllowTcpForwarding 选项。
  • • 隧道传输会增加网络延迟,建议仅用于关键主机的访问,避免大规模使用。

十、第三方应用漏洞横向:利用业务系统突破边界

原理概述

企业内网中部署的第三方应用(如数据库、OA 系统、文件服务器),常存在未修复的漏洞或弱配置。红队可利用这些应用的漏洞获取访问权限,再通过应用的内置功能或服务器的系统权限,实现横向移动,此类方法因借助业务系统,隐蔽性极强。

实现流程

  1. 1. 信息收集阶段识别内网第三方应用(如通过端口扫描发现 MySQL、Oracle 数据库,或 SharePoint、Confluence 等 OA 系统)。
  2. 2. 针对应用版本查询相关漏洞(如 MySQL 的 UDF 提权、Confluence 的远程代码执行漏洞),利用漏洞获取服务器权限。
  3. 3. 从应用服务器中提取内网凭证(如数据库连接密码、应用管理员账户),或直接通过服务器的系统权限,向其他主机发起横向移动。

绕过检测的关键技巧

  • • 利用应用合法功能:优先使用应用的内置功能(如数据库的存储过程、OA 系统的文件上传功能)执行命令,而非直接使用系统漏洞。
  • • 清理应用日志:第三方应用通常有独立的访问日志和操作日志,需在执行后清理相关记录,避免被业务管理员发现。
  • • 伪装业务操作:执行命令时模仿正常业务行为(如数据库查询、文件备份),避免出现与业务无关的敏感操作。

注意事项

  • • 需提前确认应用漏洞的有效性,避免使用已被修复的漏洞导致攻击失败。
  • • 部分第三方应用运行在低权限账户下,需先通过提权获取系统高权限,再进行横向移动。

内网横向移动的防御思路

红队的横向移动依赖于 “利用合法机制、规避检测规则”,防御方需从 “识别异常行为、加固核心机制、完善审计体系” 三个维度构建防护体系:

  1. 1. 强化凭证安全:启用强密码策略,限制凭证重用,部署 Credential Guard 等内存保护机制,定期轮换管理员密码。
  2. 2. 监控关键协议与行为:重点监控 SMB、WMI、RDP 等协议的异常访问,对高频次登录尝试、跨网段远程连接等行为进行告警。
  3. 3. 完善日志审计:开启系统日志、应用日志、网络日志的全面记录,部署 SIEM 系统进行集中分析,及时发现日志清理、异常进程等恶意行为。
  4. 4. 加固第三方应用:定期更新第三方应用版本,修复已知漏洞,限制应用的执行权限,禁用不必要的功能模块。
  5. 5. 加强员工安全意识:避免使用弱密码,不随意点击可疑链接,定期开展安全培训,减少因人为失误导致的凭证泄露。

红队横向移动的核心逻辑是 “隐蔽性” 与 “合法性” 的平衡,所有高效的横向渗透方法,本质上都是对系统原生机制、业务流程的深度利用。


文章来源:HACK之道

本文来源HACK之道,经授权后由华盟君发布,观点不代表华盟网的立场,转载请联系原作者。

发表回复