哈希传递攻击原理与RDP登录实战:绕过密码验证的横向移动技术 📅 2026/8/15 7:14:14 1. 项目概述当密码不再是唯一钥匙在传统的Windows系统运维、渗透测试或应急响应场景里远程桌面协议RDP是我们最熟悉的“大门”。通常要打开这扇门你需要一把正确的“钥匙”——也就是用户的明文密码。但现实情况往往更复杂你可能在内存中抓取到了用户的密码哈希值却无法或不便将其破解为明文或者目标系统启用了“受限管理模式”Restricted Admin Mode直接阻止了明文密码的传递。这时候“哈希传递”技术就成了一把能绕过常规锁芯的“万能钥匙”。简单来说哈希传递攻击允许攻击者仅使用用户密码的NTLM哈希值而非明文密码来完成身份验证直接登录到目标系统。当这项技术与RDP结合就衍生出了“哈希传递登录RDP”这一高级技巧。它彻底颠覆了“必须有密码才能远程桌面”的认知在红队评估中用于横向移动在蓝队防御中则是一个必须堵住的关键缺口。围绕这个核心社区里诞生了诸如RDP Wrapper、Mimikatz等工具的热议也催生了大量关于连接错误、授权问题、配置锁定的具体排查需求。本文将从一个实践者的角度彻底拆解这项技术的原理、实现方法、实战要点以及最重要的——防御与检测思路。2. 核心原理与前置条件深度解析2.1 身份验证的基石NTLM哈希与挑战/响应机制要理解哈希传递必须先理解Windows域环境或本地认证的核心——NTLM协议。当我们输入密码登录时系统并不会传输或存储你的明文密码。它会使用一个单向哈希函数如MD4、MD5等处理你的密码生成一个固定长度的字符串这就是NTLM哈希。这个哈希值才是你身份的“数字指纹”。在标准的NTLM认证流程中当客户端尝试访问服务器资源时会发生一个“挑战/响应”的过程协商客户端声明其支持的能力。挑战服务器生成一个随机数Challenge发送给客户端。响应客户端用自己的NTLM哈希加密这个随机数生成一个“响应”Response发回服务器。验证服务器用存储的用户NTLM哈希同样加密收到的随机数计算结果与客户端发来的响应进行比对。一致则认证通过。关键在于第三步生成响应只需要哈希值不需要明文密码。哈希传递攻击的精髓就在于攻击者虽然不知道明文密码但只要拥有了这个NTLM哈希就可以在挑战/响应流程中完美地扮演该用户。2.2 RDP的特殊性受限管理模式Restricted Admin Mode普通的RDP连接在发起时默认会尝试进行“网络级身份验证”这个过程中通常需要提供明文密码或智能卡凭据。系统会使用这些凭据去计算响应。如果我们只有哈希没有明文这个默认流程就走不通。Windows 8.1和Server 2012 R2引入的“受限管理模式”改变了游戏规则。该模式最初是为了应对“凭证盗窃”攻击而设计其核心思想是在远程桌面会话中用户的凭证不会缓存在目标系统的内存中。从攻击视角看这带来了一个意想不到的“副作用”为了不在远程系统内存中暴露凭证RDP客户端在Restricted Admin Mode下会直接支持使用哈希值进行身份验证而不再强制要求客户端能提供明文密码。这恰恰为哈希传递登录RDP打开了合法从协议层面看的通道。注意启用Restricted Admin Mode是一把双刃剑。它虽然能防止凭证在远程系统被窃取但也降低了哈希传递攻击的门槛。因此是否启用、如何启用需要严格评估。2.3 关键工具与热词解读Mimikatz这是执行哈希传递的“瑞士军刀”。它的sekurlsa::pthPass-The-Hash模块能够直接在内存中注入指定用户的哈希创建新的登录会话并用这个会话来启动RDP客户端。RDP Wrapper一个热门开源工具用于绕过Windows家庭版对多并发RDP会话的限制并简化RDP服务的配置。在哈希传递的上下文中它本身不直接相关但常被用于在攻击后维持访问或进行管理配置。其他热词关联“远程桌面连接出现了内部错误”这可能是RDP组件损坏、凭据管理器异常或哈希传递过程中会话建立失败的表现。“为安全考虑已锁定该用户账户”频繁的失败登录尝试包括使用错误的哈希可能触发账户锁定策略。“远程桌面协议服务器 中间弱点”可能指RDP协议本身的历史漏洞如BlueKeep与哈希传递无直接关系但都属于RDP安全范畴。3. 实操环境准备与工具配置3.1 实验环境搭建为了安全且合法地研究这项技术强烈建议在隔离的虚拟化环境中进行例如使用VMware Workstation或Hyper-V搭建一个简单的内网实验室。目标机Target建议使用Windows Server 2012 R2或更高版本的系统。因为Restricted Admin Mode在这些系统上支持得最好。你需要拥有该机器的本地管理员权限来进行配置。攻击机Attacker通常使用Windows 10或11并安装必要的工具。需要能与目标机网络互通。域环境可选但推荐搭建一个简单的Active Directory域环境一台DC一台成员服务器。哈希传递在域环境下的横向移动威力更大原理也更具代表性。3.2 目标系统关键配置哈希传递登录RDP要成功目标系统必须满足两个条件之一启用了Restricted Admin Mode。或者系统未打上某些特定的安全补丁在较老的未更新系统上可能无需开启受限模式也能利用但这属于漏洞利用范畴本文聚焦于通过合法特性实现。启用Restricted Admin Mode的方法通过修改注册表是最直接的方式。在目标机上以管理员身份打开命令提示符或PowerShell执行以下命令reg add HKLM\System\CurrentControlSet\Control\Lsa /v DisableRestrictedAdmin /t REG_DWORD /d 0 /f执行后需要重启目标机使设置生效。这条命令将DisableRestrictedAdmin的值设为0即启用Restricted Admin Mode。重要提示在真实生产环境中请通过组策略GPO来集中管理此设置。路径为计算机配置 - 管理模板 - 系统 - 凭据分配 - 限制将凭据委派给远程服务器选择“已启用”并添加目标服务器。3.3 攻击机工具获取与准备Mimikatz从其官方GitHub发布页下载最新版本。由于杀毒软件会将其视为恶意软件你需要在实验环境中临时禁用实时防护或将其添加到排除列表。RDP客户端系统自带的mstsc.exe即可。但我们后续会通过Mimikatz来调用它。4. 哈希传递登录RDP的完整实操流程假设我们已经通过某种方式例如在已攻陷的机器上使用Mimikatz的sekurlsa::logonPasswords命令获取到了目标用户比如域用户DOMAIN\AttackUser的NTLM哈希aad3b435b51404eeaad3b435b51404ee:32ed87bdb5fdc5e9cba88547376818d4LM哈希:NTLM哈希格式LM部分常为空或固定值。4.1 经典方法使用Mimikatz进行传递这是最经典、最可控的方法。在攻击机上以管理员身份运行Mimikatz。步骤一使用PTH模块注入哈希并启动RDP# 在Mimikatz命令行中执行 sekurlsa::pth /user:AttackUser /domain:DOMAIN /ntlm:32ed87bdb5fdc5e9cba88547376818d4 /run:mstsc.exe/user 指定用户名。/domain 指定域名如果是本地用户则用目标计算机名。/ntlm 指定该用户的NTLM哈希值。/run 指定注入哈希后要启动的程序这里我们直接启动远程桌面连接客户端。步骤二配置RDP连接执行上述命令后会弹出一个新的命令提示符窗口这个窗口的运行上下文已经包含了AttackUser的令牌。在这个新窗口中直接输入mstsc /v:目标服务器IP或主机名随后会弹出RDP连接窗口。关键点来了此时你不需要在图形界面的登录框中输入任何密码步骤三处理登录界面在RDP连接窗口的用户名处应已自动填充或你需要手动输入DOMAIN\AttackUser。然后你有两种选择直接点击“连接”。如果目标服务器正确启用了Restricted Admin Mode且网络策略允许你将直接进入桌面。如果系统仍要求输入密码不要输入。尝试在密码框不输入任何内容或者随意输入几个字符然后点击“确定”。在Restricted Admin Mode下RDP客户端会尝试使用你通过PTH注入的哈希进行认证图形界面的密码字段实际上被忽略。如果一切配置正确你将成功登录到目标服务器的桌面而整个过程从未使用过明文密码。4.2 替代方法使用其他命令行工具除了Mimikatz还有一些其他工具也能实现类似功能例如xfreerdpLinux/Windows跨平台和rdesktop。它们通常通过指定/pth或/ntlm-hash参数来支持哈希传递。例如使用xfreerdpxfreerdp /v:目标IP /u:DOMAIN\AttackUser /pth:32ed87bdb5fdc5e9cba88547376818d4 restricted-admin这里的restricted-admin参数至关重要它告诉客户端使用受限管理模式进行连接。4.3 实操心得与注意事项权限是关键在攻击机上运行Mimikatz进行PTH时必须具有管理员权限因为需要注入进程内存。普通用户权限会失败。防火墙与网络策略确保目标服务器的3389端口RDP默认端口对攻击机开放。此外网络策略服务器NPS或防火墙规则不能阻止来自攻击机IP的连接。用户权限你使用的哈希对应的用户如AttackUser必须在目标服务器上拥有“允许通过远程桌面服务登录”的权限通常属于“Remote Desktop Users”组或本地管理员组。会话限制注意目标服务器的RDP授权模式和会话数限制。如果使用的是未授权的Windows Server可能会遇到120天授权过期或超出并发连接数的问题。杀软对抗Mimikatz是几乎所有EDR和杀毒软件的重点监控对象。在真实对抗环境中直接使用原版Mimikatz.exe可能立即被拦截。需要对其进行混淆、内存加载或无文件落地等技术进行绕过。5. 典型问题排查与防御建议5.1 连接失败常见原因排查表问题现象可能原因排查步骤点击连接后提示“发生身份验证错误”或“不支持的函数”1. 目标未启用Restricted Admin Mode。2. 目标系统已安装相关安全补丁如KB2871997及后续更新修补了此利用方式。1. 检查目标注册表HKLM\...\DisableRestrictedAdmin值是否为0。2. 检查系统更新历史确认是否安装了CredSSP相关更新。可尝试在攻击机mstsc中降低安全层级非推荐仅作测试。弹出登录窗口并要求输入密码输入任意密码无效RDP客户端未使用受限管理模式连接。1. 确保是通过Mimikatz PTH弹出的新cmd窗口运行的mstsc。2. 尝试在mstsc命令后添加/restrictedAdmin参数某些版本支持。3. 使用xfreerdp等明确支持PTH的客户端。提示“由于账户限制您无法登录”用户账户被锁定、过期或没有远程登录权限。1. 在域控或本地计算机管理中检查用户账户状态。2. 确认用户是否属于目标机的“Remote Desktop Users”组。连接成功但立即断开网络不稳定、目标服务器资源内存、CPU不足或RDP服务异常。1. 检查网络连通性和延迟。2. 查看目标服务器事件查看器中“远程桌面服务”相关日志。3. 检查是否有RDP Wrapper等工具导致的服务兼容性问题。Mimikatz执行PTH时报错1. 权限不足非管理员运行。2. 哈希格式错误。3. 杀毒软件拦截。1. 以管理员身份运行。2. 核对哈希值确保是NTLM哈希部分冒号后的32位十六进制字符串。3. 临时禁用杀软或使用免杀版本。5.2 蓝队视角如何检测与防御哈希传递攻击防御哈希传递攻击需要多层次、纵深化的策略。强化凭证保护实施强密码策略增加哈希破解难度。推广使用LAPS本地管理员密码解决方案确保每台机器的本地管理员密码不同且定期更改防止一个哈希攻陷全网。启用Credential GuardWindows 10/11, Server 2016这是一项基于虚拟化的安全功能能有效保护NTLM哈希、Kerberos票证等凭据使其无法被Mimikatz等工具从内存中读取。限制横向移动网络分段将关键服务器如域控、数据库置于独立网段严格限制从普通办公网段的RDP访问。实施Just-Enough-AdministrationJEA基于PowerShell的最小权限模型减少对高权限账户的依赖。禁用不必要的服务如果业务不需要在内网关键服务器上禁用RDP服务3389端口。审计与监控启用详细日志记录在域控和成员服务器上启用“审核登录/注销”策略尤其是“审核凭据验证”在安全日志中记录事件ID 4624成功登录和4625失败登录。特别关注登录类型为“3”网络登录即RDP、SMB等且“身份验证包”为“NTLM”的成功事件。监控异常行为使用SIEM或高级威胁检测工具建立规则报警。例如同一用户账户在短时间内从多个不同的源IP地址发起RDP登录。使用“受限管理员”模式的成功登录在日志中会有特定字段指示。来自非受信任设备或非工作时间的高权限账户登录。定期检查敏感用户组定期审查“远程桌面用户”、“管理员”等组的成员清除不必要的账户。补丁与配置管理及时安装安全更新确保所有系统都安装了最新的安全补丁特别是那些修复凭据滥用漏洞的补丁。谨慎评估Restricted Admin Mode除非有非常明确且可控的业务需求否则在关键服务器上应考虑禁用Restricted Admin Mode将DisableRestrictedAdmin设为1。这能直接关闭哈希传递登录RDP这扇“后门”。强制使用网络级身份验证NLANLA要求在建立完整的RDP会话之前就完成身份验证这增加了攻击者利用某些漏洞的难度但对于已经拥有哈希的攻击者NLA本身无法阻止哈希传递。哈希传递登录RDP是一项强大且隐蔽的技术它清晰地展示了在现代网络防御中保护凭据哈希与保护明文密码同等重要。对于攻击方理解其原理和限制能帮助更有效地进行安全评估对于防御方则必须通过层层设防、深度监控来应对这种不依赖明文的认证绕过威胁。真正的安全始于对每一个认证环节的深刻理解与严密布控。