拓冰建站拓冰建站
首页 / 资讯中心 / 正文

内网渗透核心:域横向移动攻击手法与防御实战解析

1. 从“小迪安全课堂笔记”说起为什么域横向是内网渗透的命门最近在整理一些老资料翻到了当年学习时做的“小迪安全课堂笔记”。笔记里关于“域横向”的部分被我用红笔重重地圈了出来旁边还潦草地写着几个字“突破口关键路径”。现在回头看这几个字确实点透了内网安全攻防的核心。很多刚接触内网安全的朋友拿到一个初始立足点后往往会感到迷茫权限有了机器也控了下一步该往哪走怎么走答案往往就藏在“域横向移动”这条路上。这不仅仅是技术动作的堆砌更是一场对目标网络架构、信任关系和安全策略的深度侦察与逻辑推理。简单来说域横向移动就是指攻击者在成功渗透进入内网环境通常是一台加入域的主机后以该主机为跳板利用内网中的各种信任关系、协议漏洞或配置缺陷逐步向网络内部更有价值的目标如域控制器、文件服务器、数据库服务器、高管工作站等进行渗透和权限提升的过程。它的目标非常明确从边缘突破向核心进发最终掌控整个域乃至整个内网。这个过程就像是在一座戒备森严的城堡中从一个不起眼的侧门潜入后你需要摸清卫兵的巡逻路线、找到通往宝库的密道、甚至伪装成城堡内部人员一步步向城堡的核心区域——国王的议事厅或藏宝库——靠近。为什么说它是“命门”因为在现代企业网络尤其是基于Windows Active Directory活动目录构建的网络中域是身份认证和资源管理的绝对中心。一旦攻击者通过横向移动攻陷了域控制器DC就意味着他拿到了整个域的“玉玺”可以创建任意用户、访问所有资源、部署全域策略造成的破坏是灾难性的。因此理解并防御域横向攻击是内网安全建设的重中之重。无论是作为防守方的蓝队、安全运维还是作为攻击方进行授权测试的红队深入掌握域横向的技术细节、攻击手法和防御思路都是不可或缺的核心技能。接下来我将结合多年的实战和教学经验为你拆解这条“关键路径”上的核心环节、常见手法以及背后的攻防逻辑。2. 横向移动的基石信息收集与态势感知在开始任何横向移动动作之前盲目乱撞是最低效且最易暴露的行为。真正的横向移动始于周密、低调的信息收集。这一步的目标是绘制一张尽可能详细的“内网地图”理解当前所处的网络环境、识别高价值目标、并发现可能存在的脆弱路径。我把这个阶段称为“态势感知”它决定了后续所有攻击动作的效率和隐蔽性。2.1 主机与网络信息侦察当你获得一台域内主机的权限无论是通过Web漏洞、钓鱼邮件还是其他方式首先要做的就是搞清楚“我在哪”和“周围有什么”。本地信息收集这是最基础的一步。你需要快速获取当前主机的关键信息。通过命令行可以执行一系列命令来收集情报。例如ipconfig /all可以查看详细的网络配置包括IP地址、子网掩码、默认网关、DNS服务器通常指向域控制器以及主机名。systeminfo命令能提供操作系统版本、补丁情况、安装时间等这对于判断系统可能存在的漏洞非常有帮助。netstat -ano则用于查看当前的网络连接和监听端口可以发现该主机正在与哪些内部IP通信这可能暗示着它与其他服务器如数据库、文件共享存在业务联系。域内信息收集这是横向移动的核心情报来源。你需要利用当前主机的域成员身份向域控制器查询信息。net view /domain可以列出当前网络中的所有域。确定了当前域后net view /domain:你的域名能列出该域内所有在线的主机通过网络邻居发现可能不全。更有效的方法是使用net group “domain computers” /domain来列出域内所有的计算机账户这份列表通常更完整。net user /domain和net group /domain则分别用于枚举域内的所有用户和组特别是要关注“Domain Admins”域管理员组的成员他们是最高价值目标。注意在真实环境中大量使用net命令进行枚举可能会在域控制器的安全日志如4662事件中留下明显痕迹。成熟的攻击者或测试人员会采用更隐蔽的方式例如使用LDAP查询通过PowerShell或第三方工具来获取相同信息或者利用合法的管理工具如ADExplorer的行为进行伪装。2.2 用户凭据与权限分析在域环境中权限的本质就是凭据。获取了高权限的凭据就等于拿到了通往其他系统的“万能钥匙”。因此在信息收集阶段必须竭尽全力寻找内存中、磁盘上或配置文件中残留的凭据。内存凭据提取这是当前最主流的凭据获取方式。当用户登录系统后其凭据通常是NTLM哈希或Kerberos票证会保存在LSASS本地安全机构子系统服务进程的内存中。工具如Mimikatz的sekurlsa::logonpasswords命令可以离线或在线从LSASS进程中提取这些凭据。如果提取到的是本地管理员或域用户的密码哈希就可以用于后续的“哈希传递”攻击。如果提取到的是明文密码那更是可以直接使用。防御方通常会启用Credential Guard或安装EDR/AV来保护LSASS因此攻击方也需要相应的绕过技术。磁盘与配置文件中的凭据许多应用程序和系统组件为了便利性会将凭据以各种形式保存下来。例如Windows的“凭据管理器”中可能保存了RDP、共享文件夹的登录信息。浏览器如Chrome, Edge的登录数据中可能保存了各类Web系统的账号密码。一些运维人员编写的脚本、配置文件如jenkins、tomcat配置、数据库连接字符串中也可能硬编码了密码。使用工具如LaZagne可以自动化扫描并提取这些散落的凭据。会话与令牌窃取在Windows中令牌Token是进程或线程安全上下文的对象它包含了用户的身份和权限信息。如果当前系统上有其他高权限用户如域管理员登录的会话可能是通过RDP、PSExec等方式你可以尝试窃取或复制该用户的令牌。例如使用IncognitoMeterpreter内置或Mimikatz的token::elevate/token::revert命令可以假冒该用户的身份执行操作而无需知道其密码。这种方法非常隐蔽因为你是“借用”了一个合法的会话。通过以上系统的信息收集你应该能回答以下几个关键问题当前域叫什么域控制器是谁域内有哪些服务器和工作站当前主机上有哪些用户特别是高权限用户的凭据或会话当前主机与哪些内网IP有活跃连接这些问题的答案将构成你横向移动战略的决策基础。3. 核心攻击手法剖析从哈希传递到票据攻击有了充足的情报和可能的凭据后就可以开始策划具体的横向移动动作。域横向的手法繁多但其核心思想都是利用某种形式的身份验证机制绕过或滥用。下面我重点剖析几种最经典、最高效的手法并解释其背后的原理和适用场景。3.1 哈希传递攻击这是域横向中最具代表性的攻击手法之一。它的原理基于Windows NTLM身份验证协议的一个特点服务器验证客户端时不需要客户端的明文密码只需要客户端的密码哈希值。因此如果你获取了某个域用户的NTLM哈希例如通过Mimikatz从内存中提取你就可以直接使用这个哈希值冒充该用户去访问其他也使用NTLM认证的服务如SMB共享、WMI、WinRM等而无需破解哈希得到明文密码。实战过程假设我们通过信息收集获取了域用户DOMAIN\devuser的NTLM哈希aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4。同时我们通过扫描发现内网中有一台服务器SRV01.domain.com开启了SMB服务端口445。我们可以使用Mimikatz来发起PTH攻击# 使用Mimikatz进行PTH攻击尝试访问SRV01的C$共享 mimikatz # sekurlsa::pth /user:devuser /domain:domain.com /ntlm:32ed87bdb5fdc5e9cba88547376818d4 /run:cmd.exe执行后会弹出一个新的命令提示符窗口。在这个新窗口的安全上下文中你已经“是”devuser了。此时你可以尝试访问SRV01的共享dir \\SRV01.domain.com\c$如果devuser对SRV01有足够的权限例如是本地管理员组或授权用户这条命令就会成功列出SRV01的C盘目录。之后你可以使用copy命令上传后门或者使用sc命令远程创建服务来执行命令从而完全控制SRV01。关键点PTH成功的前提是目标服务如SMB接受NTLM认证并且你拥有的哈希对应的账户在目标机器上有足够的访问权限。在如今的环境中由于PTH的威胁巨大微软推出了缓解措施如“受限管理员模式”和“Credential Guard”它们能有效防御传统的PTH。因此攻击者可能需要寻找其他突破口或结合其他技术。3.2 票据传递攻击如果说PTH是NTLM世界的“万能钥匙”那么票据传递攻击就是Kerberos世界的“伪造门票”。Kerberos是Windows域中更现代、更安全的认证协议。在Kerberos认证中用户访问服务时需要向域控制器申请一张针对该服务的“服务票据”。票据传递攻击的核心就是窃取或伪造这张“服务票据”。黄金票据这是一种极其强大的攻击。攻击者需要先获取到域控制器的krbtgt账户的NTLM哈希。krbtgt是域中一个特殊的账户它的哈希用于加密和签名所有Kerberos票据。一旦你拥有了这个哈希你就可以伪造任意用户的“票据授予票据”TGT。TGT是用户向域控制器证明自己身份的凭证。有了伪造的TGT你就可以为自己生成访问域内任何服务的服务票据从而成为域内的“隐形皇帝”。黄金票据攻击不依赖于域控制器的在线验证因此即使你之后无法连接到域控制器只要票据未过期你依然可以访问资源。白银票据与黄金票据相比白银票据的伪造不需要krbtgt哈希但针对性更强。它需要你知道目标服务例如一台文件服务器的CIFS服务的服务账户的NTLM哈希。利用这个哈希你可以直接伪造访问该特定服务的服务票据。由于白银票据的验证过程发生在客户端与服务端之间不经过域控制器所以更加隐蔽。但是白银票据只能用于访问你伪造了票据的那个特定服务无法像黄金票据那样通行无阻。票据的窃取与重用除了伪造更常见的方式是窃取。当高权限用户如域管理员在当前主机上登录或访问过某些服务时其Kerberos票据会缓存在内存中。使用Mimikatz的sekurlsa::tickets /export命令可以导出这些票据。然后你可以使用kerberos::ptt命令将窃取到的票据注入到当前会话中从而临时获得该用户的权限去访问相应的服务。这种方法在已经控下一台跳板机并且发现有管理员票据残留时非常有效。3.3 利用Windows管理规范与远程服务除了基于凭据的攻击利用系统自带的远程管理功能也是常见的横向方式。这些功能本意是方便管理员但配置不当就会成为攻击者的通道。WMIWindows管理规范是一个强大的管理框架可以远程查询和操作几乎所有的系统信息。通过WMI可以远程执行命令、创建进程、读写注册表等。攻击者可以使用wmic命令或PowerShell的Invoke-WmiMethodCmdlet在拥有目标主机凭据用户名和密码或哈希的情况下远程执行命令。例如# 使用明文密码通过WMI在远程主机上执行命令 wmic /node:SRV01 /user:DOMAIN\Administrator /password:Pssw0rd process call create cmd.exe /c whoami C:\temp\out.txtWinRMWindows远程管理是另一个基于SOAP的协议PowerShell Remoting就构建在它之上。如果目标主机开启了WinRM服务默认监听5985端口并且当前用户有权限就可以通过Enter-PSSession或Invoke-Command建立交互式会话或远程执行脚本块功能非常强大。计划任务与SC服务这是两种经典的远程执行方式。通过schtasks命令可以远程创建计划任务来执行命令或程序。通过sc命令可以远程创建、启动、停止Windows服务。这两种方式通常需要管理员权限并且会留下明显的日志计划任务日志、系统日志中的服务控制管理器事件。因此在实战中攻击者可能会结合权限维持技术创建隐蔽的计划任务或服务并仔细清理日志。选择哪种横向手法取决于你收集到的信息有哈希就用PTH有票据就用票据传递有明文密码且目标开放了管理端口就可以用WMI/WinRM如果需要更持久的控制则可以考虑创建远程服务或计划任务。在实际的内网渗透中这些手法往往是组合使用的形成一条从外到内、从低到高的攻击链。4. 横向移动中的隐蔽通道与权限维持在成功的横向移动之后如何确保对已控主机的持续访问并且行动不被防守方发现是另一个至关重要的课题。粗暴地创建管理员账户、开放远程桌面很容易触发安全警报。因此我们需要建立更隐蔽的通道和更持久的权限维持机制。4.1 创建隐蔽的后门账户直接添加一个到“Administrators”组的账户是下策。更好的方法是利用系统的一些特性创建难以被常规手段发现的账户。隐藏用户在用户名后添加$符号可以创建一个“隐藏”的管理共享账户它在“计算机管理”的本地用户和组中默认不可见但通过net user命令仍然可见。更隐蔽的方法是修改注册表将账户的F值在HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\下对应账户的键中的某个特定字节进行修改使其在管理工具中彻底“消失”但这需要极高的权限且操作风险大。影子账户这是一种更高级的技巧。其原理是克隆一个已存在的、不常使用的系统内置账户如DefaultAccount的SID安全标识符和权限信息但使用你自己设定的用户名和密码。这样在用户管理列表里看到的是正常的系统账户但实际登录时可以使用你克隆的凭据。工具如Mimikatz的misc::skeleton万能密码或一些专门的克隆工具可以实现此功能。防守方需要对比注册表中用户的RID和其所属组的SID历史才能发现异常。服务账户滥用不创建新账户而是直接窃取或篡改现有系统服务或应用程序服务的登录凭据。许多服务是以“本地系统”或“网络服务”等高权限账户运行的。如果你能修改服务的可执行文件路径或者劫持其依赖的DLL就可以在该服务的上下文通常是高权限中执行你的代码。这种方式非常隐蔽因为账户本身是合法的。4.2 建立隐蔽的C2通道命令与控制通道是攻击者与受控主机通信的生命线。使用标准的HTTP/HTTPS协议虽然常见但容易被网络层设备检测。因此需要建立更隐蔽的通道。协议伪装将C2流量伪装成合法的协议。例如使用DNS隧道技术将数据封装在DNS查询和响应包中进行传输。因为DNS协议是网络基础服务通常不会被严格过滤。还有ICMP隧道、HTTP over SSL/TLS证书可能异常、甚至伪装成云服务商如AWS、AzureAPI流量的方式。工具如DNSCat2、iodine、Cobalt Strike的Malleable C2 Profile都支持这类功能。流量加密与混淆即使协议本身被允许异常的流量模式如长时间连接、固定频率心跳、大数据包也可能被检测。因此需要对流量进行加密和混淆。例如使用AES等强加密算法加密传输内容在HTTP传输中使用自定义的Header、Cookie或POST Body格式来模拟正常的浏览器行为引入随机延迟、Jitter抖动来打乱心跳包节奏使其看起来更像人工操作。备用通道与重定向不要只依赖一条通信链路。在主C2通道之外建立一条或多条备用通道。例如主通道是HTTPS备用通道可以是基于WebSocket或甚至是通过受控的第三方社交平台、云存储服务如GitHub Gist、Dropbox进行指令下发和数据回传。这样即使主通道被阻断攻击者仍然能通过备用通道恢复控制。4.3 权限维持与日志清理获得持久访问后必须考虑如何对抗系统的安全审计和防守方的排查。计划任务与服务的伪装创建计划任务或服务时使用与系统合法任务相似的名称和描述。例如将任务命名为“Microsoft .NET Framework NGEN v4.0.30319”并将触发器设置为系统启动或特定事件触发而不是简单的每分钟执行。服务的可执行文件路径可以指向一个看起来正常的系统目录或者利用DLL劫持、COM劫持等技术将恶意代码注入到合法进程的执行流程中。注册表启动项除了常见的Run、RunOnce键还有很多隐蔽的启动位置如服务DLLAppInit_DLLs、浏览器帮助对象、LSA身份验证包、Winlogon通知包、计划任务文件夹等。利用这些位置需要更深入的系统知识但隐蔽性也更强。日志清理在Windows中主要的安全日志存储在事件查看器中特别是“安全”、“系统”、“应用程序”日志。攻击者可能会在完成关键操作如添加用户、执行横向移动命令后使用wevtutil命令清除特定事件ID的日志或者直接清除整个日志文件。更高级的做法是在攻击前就通过修改注册表或组策略禁用特定事件的日志记录或者提升权限后直接停止“Windows Event Log”服务但这本身会产生日志。在真实对抗中成熟的防守方会部署日志集中收集系统如SIEM本地清理日志意义不大因此攻击方更倾向于从源头减少日志产生如使用无文件攻击、内存执行或让行为看起来合法。横向移动和权限维持是一个“道高一尺魔高一丈”的持续对抗过程。作为攻击方需要不断研究新的系统特性、协议漏洞和隐蔽技术作为防守方则需要建立纵深防御体系加强日志审计、网络分段、最小权限原则和威胁狩猎能力。理解攻击者的思路和手法是构建有效防御的第一步。5. 防御视角如何构建对抗域横向的防线站在企业安全运维或蓝队的角度仅仅了解攻击手法是不够的关键是如何构建一套能够有效检测和阻断域横向攻击的防御体系。防御不是某个单点产品的堆砌而是一套覆盖预防、检测、响应的综合策略。下面我从几个关键层面来谈谈防御思路。5.1 强化身份与访问管理这是防御的基石目的是缩小攻击面让攻击者即使拿到初始权限也难以横向移动。实施最小权限原则这是黄金法则。确保每个用户、每台服务器、每个服务账户都只拥有完成其职责所必需的最小权限。尤其要严格限制域管理员账户的使用范围禁止域管理员账户在普通成员服务器和工作站上登录。为服务器管理、桌面支持等不同职能创建不同的管理组而非全部使用域管理员。禁用过时的、不安全的认证协议在域级别通过组策略强制禁用NTLMv1因为它非常脆弱。尽可能推广使用Kerberos认证并考虑逐步禁用NTLMv2虽然难度很大但可以限制其使用范围。对于SMB、WinRM等服务可以要求必须使用Kerberos或证书认证。启用Credential Guard和LSA保护对于Windows 10/11和Windows Server 2016及以上版本启用Credential Guard可以基于虚拟化安全技术保护LSASS进程使其难以被Mimikatz等工具提取凭据。启用LSA保护可以防止非受保护进程读取LSASS内存。这两项是防御凭据窃取最有效的缓解措施之一。定期轮换高权限账户密码特别是krbtgt账户的密码微软建议每半年至少轮换一次并且在轮换时执行两次因为票据有最长生命周期。定期轮换可以限制黄金票据攻击的有效期。同时对所有高权限账户使用长而复杂的密码并避免密码复用。5.2 网络分段与访问控制通过网络架构限制攻击者的活动范围即使一台主机失陷也能将其影响控制在最小区域。严格的网络分段不要将所有服务器和工作站放在同一个平坦的网络中。根据业务功能和安全等级将网络划分为不同的区域如DMZ区、应用服务器区、数据库区、用户终端区、管理区等。区域之间通过防火墙或路由器的ACL进行隔离只开放必要的端口和协议。部署主机防火墙与微隔离在每台主机上启用并严格配置Windows防火墙或第三方主机防火墙。遵循“默认拒绝按需开放”的原则。例如工作站之间默认不应能互相访问445SMB、135WMI、5985WinRM等管理端口。服务器之间的访问也应基于“白名单”模式只允许特定的业务IP访问特定的服务端口。微隔离技术可以更细粒度地实现这一点。监控与管理流量在网络核心位置部署IDS/IPS和全流量分析设备监控异常的横向移动流量。例如大量失败的SMB登录尝试可能是在爆破、从非管理终端发起的WMI连接、异常的Kerberos票据请求如请求大量服务的TGS等都可能是横向移动的迹象。5.3 增强监控、检测与响应能力再好的预防也可能被绕过因此必须有能力发现正在发生的攻击。集中化日志收集与分析将所有域控制器、成员服务器、重要工作站的安全事件日志、Sysmon日志、防火墙日志、应用日志等集中收集到SIEM平台中。这是进行威胁狩猎和事件调查的基础。需要重点关注的事件ID包括但不限于4624/4625登录成功/失败特别关注登录类型3-网络登录8-网络明文10-远程交互。4648使用显式凭据登录可能涉及PTH。4672分配给新登录的特殊权限管理员登录。4768/4769Kerberos TGT/TGS请求关注异常的服务名称、加密类型。4688创建新进程关注父进程、命令行参数。4697服务安装。5140网络共享访问。部署终端检测与响应EDR解决方案能提供比传统杀毒软件更深度的行为监控例如监控LSASS进程的内存读取操作、检测Mimikatz等攻击工具的执行、分析进程注入行为、记录完整的进程树等。EDR的告警是实时检测横向移动的重要来源。建立威胁狩猎流程不要只依赖自动告警。安全团队应主动进行威胁狩猎基于攻击者TTPs战术、技术和过程寻找环境中可能存在的失陷迹象。例如定期搜索是否存在隐藏用户、异常的计划任务、可疑的持久化注册表项、非常规时间的网络连接等。可以编写特定的Hunting Query在SIEM或日志平台中运行。制定并演练应急响应计划当检测到横向移动活动时必须有一套清晰的流程来快速响应。这包括隔离受影响主机、阻断恶意网络连接、重置相关用户密码、调查攻击路径和范围、清除后门、恢复系统、最后进行复盘并加固防御短板。定期进行红蓝对抗演练是检验和提升整个防御体系有效性的最佳方式。防御域横向攻击是一场持久战没有一劳永逸的银弹。它需要将严格的安全策略、合理的网络架构、先进的技术工具和持续的安全运营有机结合起来。核心思想是提高攻击者的成本增加攻击的噪音缩短攻击的窗口期并确保在攻击发生时能快速发现和响应。从“小迪安全课堂笔记”中的一个概念到如今企业安全建设的核心模块域横向攻防的演进正是整个网络安全领域攻防对抗不断升级的缩影。理解它掌握它无论是为了更有效地攻击还是为了更坚固地防御都至关重要。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门