1. 项目概述一次典型的内网RDP凭证获取实战复盘深夜某单位运维人员突然收到告警核心业务服务器出现异常行为。管理员紧急封存现场请根据运维人员。注意flag提交方式webshell密码:黑客进行rdp登录的 ip 地址示例123456:1.1.1.1将上述字符串整体计算 md5 后提交。这段描述对于很多从事安全运维或渗透测试的朋友来说是不是感觉非常熟悉它描绘了一个典型的内网安全事件场景攻击者通过某种方式获取了远程桌面RDP的访问权限成功登录了内网服务器。而“获取RDP密码凭证”正是这类攻击链中至关重要的一环。今天我们不谈攻击而是从防御和深度认知的角度彻底拆解在内网环境中RDP凭证可能被获取的多种技术原理、攻击路径以及作为防御方我们该如何层层设防构建有效的检测与响应机制。这不仅仅是一个技术话题更是每一位系统管理员、安全工程师必须掌握的实战技能。RDPRemote Desktop Protocol作为Windows系统最核心的远程管理协议其安全性直接关系到内网命脉。攻击者一旦获取了高权限账户的RDP凭证就相当于拿到了通往服务器乃至整个域环境的“万能钥匙”。本文将深入探讨凭证获取的常见手法如内存转储、凭据窃取、中间人攻击等并详细解析其背后的Windows安全子系统如LSASS、CredSSP工作原理。同时我们会分享一系列加固措施和监控策略帮助你在自己的环境中提前发现并堵住这些漏洞。无论你是想提升内网安全水位还是进行授权范围内的安全评估这篇文章都将提供极具价值的参考。2. RDP协议安全机制与凭证存储深度解析要理解凭证如何被获取首先必须清楚RDP协议的身份认证流程以及Windows系统是如何管理这些敏感信息的。RDP不仅仅是画个屏幕那么简单它背后是一套复杂的身份验证与会话管理机制。2.1 RDP连接的身份认证流程一个标准的RDP连接建立过程远比我们点击“连接”然后输入密码要复杂。当客户端发起连接时服务器端的TermService会启动一个监听线程。客户端与服务器之间的认证主要依赖于CredSSPCredential Security Support Provider协议。简单来说CredSSP的作用是将用户的明文凭证在经过NTLM或Kerberos哈希处理后从客户端安全地传递到服务器端进行验证。这个过程旨在实现“单点登录”SSO体验但同时也引入了风险凭证信息会在客户端和服务器端的内存中短暂存在。更关键的是为了支持“受限管理模式”Restricted Admin Mode或后续的凭据重用Windows系统可能会在内存中缓存这些凭证的哈希值甚至可逆的加密形式。这就是攻击者主要的突破口之一——内存。攻击者不需要破解你的密码他们只需要从内存中“捡到”这些已经处理过的、可用于横向移动的凭据信息。2.2 Windows系统中的凭证存储位置凭证在Windows系统中并非只存在于一个地方了解这些位置是防御的第一步。LSASS进程内存这是皇冠上的明珠。LSASSLocal Security Authority Subsystem Service进程负责管理本地安全策略、认证和登录会话。用户登录后其凭证的多种形式如NTLM哈希、Kerberos票证会驻留在LSASS进程的内存空间中。这也是Mimikatz等工具的主要目标。RDP登录产生的凭证同样会经过这里。Windows凭据管理器这是一个用户级的存储保存了包括RDP连接在内的各种网络凭据。它通常使用用户登录密码衍生的密钥进行加密存储。攻击者在获取用户权限后可以尝试从中提取已保存的RDP连接密码。RDP连接配置文件.rdp文件当用户选择“保存密码”时密码会被加密后存储在.rdp文件或注册表中。加密密钥与当前用户和机器绑定但已有公开技术可以在特定条件下解密。注册表中的相关键值例如HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations下的配置虽然不直接存储密码但包含了RDP服务的配置信息攻击者可用于修改设置以辅助攻击如启用NLA绕过。注意从Windows 10 1809和Windows Server 2019开始微软引入了“受保护的进程”Protected Process Light对LSASS进行加固并默认启用“凭据保护”Credential Guard这极大地增加了从LSASS直接提取明文密码或哈希的难度。但这并非绝对安全攻击技术也在不断演进。2.3 攻击者视角RDP凭证的价值链对于潜入内网的攻击者而言获取到的RDP凭证价值有明确的等级明文密码最高价值可直接用于任何支持该认证方式的服务。NTLM哈希高价值可用于哈希传递攻击在域内进行横向移动无需破解明文。Kerberos票证高价值特别是黄金票证和白银票证可以伪造身份访问域内资源。保存的RDP连接密码中等价值可能直接用于连接特定服务器但通常受限于加密和用户上下文。会话令牌中等价值可用于会话劫持但时效性较强。理解这个价值链有助于我们优先保护最高价值的资产并针对性地部署检测措施。3. 内网中获取RDP凭证的常见技术手段剖析攻击者在内网中获取RDP凭证的手法多样以下将从技术原理层面进行拆解并附上防御者应关注的痕迹。3.1 内存转储与凭据提取LSASS攻击这是最经典、最直接的方法。攻击者在获取目标系统一定权限通常是Administrator或SYSTEM后会尝试转储LSASS进程的内存。原理利用Windows API如MiniDumpWriteDump或直接读取进程内存将LSASS进程的整个内存空间保存到一个.dmp文件中。然后在攻击者自己的机器上使用Mimikatz、Pypykatz等工具离线分析这个转储文件提取其中的哈希、明文密码如果系统未打补丁或禁用相关保护、票证等。常用工具与命令# 使用任务管理器创建转储文件GUI # 1. 打开任务管理器 - 详细信息 - 找到lsass.exe - 右键“创建转储文件” # 2. 使用ProcdumpSysinternals工具 procdump.exe -accepteula -ma lsass.exe lsass.dmp # 3. 使用Mimikatz直接在线读取需高权限 mimikatz # sekurlsa::logonpasswords防御与检测启用Credential Guard这是最有效的防御措施它利用基于虚拟化的安全技术将凭证隔离到安全内核中使常规内存转储无效。启用LSA保护通过设置注册表RunAsPPL将LSASS设置为受保护进程阻止非受信任的进程读取其内存。监控进程创建监控procdump.exe、dump.exe等可疑转储工具的执行特别是针对lsass.exe进程的操作。监控Mimikatz相关行为监控对lsass.exe进程的OpenProcess调用特别是PROCESS_VM_READ权限以及加载sekurlsa等Mimikatz模块的行为。3.2 窃取已保存的RDP连接凭据许多用户和管理员为了便利会在RDP客户端中保存密码。这些密码被加密存储但并非牢不可破。原理RDP密码通常使用Windows Data Protection API (DPAPI)进行加密加密密钥与用户登录密码和机器SID相关。攻击者在获取用户上下文例如通过令牌窃取或RDP会话劫持后可以利用DPAPI机制解密这些存储的凭据。具体位置与提取.rdp文件位于%USERPROFILE%\Documents或用户自定义位置。密码以加密形式存储在password 51:b:...字段中。注册表HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\server_name下的UsernameHint和PasswordHint加密。提取工具可以使用Mimikatz的dpapi::rdp模块或者专门的工具如RDPassSpy在目标用户的上下文中运行以解密密码。mimikatz # dpapi::rdp /in:C:\Users\Admin\Desktop\connection.rdp防御与检测制定强制策略通过组策略禁止在RDP客户端中保存密码计算机配置 - 管理模板 - Windows组件 - 远程桌面服务 - 远程桌面连接客户端 - 不允许保存密码。安全意识培训反复告诫管理员和用户不要保存密码尤其是高权限账户。文件与注册表监控监控对默认.rdp文件路径和上述注册表路径的非授权访问或修改。3.3 中间人攻击与流量劫持在内网中如果缺乏网络分段或加密验证攻击者可以通过ARP欺骗、LLMNR/NBT-NS投毒等手段将自己置于客户端与RDP服务器之间。原理攻击者扮演“中间人”截获客户端的认证请求。在CredSSP协商过程中如果服务器身份验证不够严格例如客户端不验证服务器证书攻击者可能能够降级加密强度或直接窃取到认证材料如NetNTLMv2哈希。更高级的攻击如“RDP中间人”使用工具如Seth可以完全代理连接在用户无感知的情况下记录其击键包括密码。攻击场景常见于内部网络尤其是开发、测试等安全要求相对宽松的环境。攻击者可能已经控制了网络中的一台主机。防御与检测强制使用网络级身份验证启用NLA要求用户在建立RDP会话前就先进行身份验证这能有效防范部分中间人攻击。部署服务器身份验证证书为所有RDP服务器部署受信任的证书并强制客户端验证服务器身份。这能防止攻击者伪造服务器。启用SSL/TLS加密确保RDP连接使用强加密。网络分段与隔离将管理网络、服务器网络与用户网络进行物理或逻辑隔离减少中间人攻击面。监控网络异常监控ARP表异常变化、异常的LLMNR/NBT-NS响应等。3.4 键盘记录与屏幕捕获这是一种相对“原始”但有效的方法特别是在攻击者已经通过其他方式如钓鱼、漏洞在目标机器上获得了执行代码的能力。原理在目标系统上植入键盘记录器记录所有击键自然包括RDP登录时输入的密码。或者通过Hook GDI函数等方式定期捕获屏幕从而获取密码输入框的图像。实施方式通常通过恶意软件、后门程序实现。在RDP会话内部如果攻击者权限足够也可以安装会话内的键盘记录器。防御与检测部署终端检测与响应EDR/AV软件应能检测和阻止常见的键盘记录API调用如SetWindowsHookEx和屏幕捕获行为。最小权限原则确保用户和管理员账户仅拥有完成工作所必需的最小权限降低恶意软件安装的可能性。使用双因素认证即使密码被记录2FA也能提供第二层保护。定期扫描与清点定期对系统进行恶意软件扫描和进程/服务清点发现可疑项。4. 实战模拟从入侵到获取RDP凭证的典型路径让我们结合开头的场景模拟一条可能的攻击路径并分析在每个环节防御者可以做什么。攻击路径假设初始入侵攻击者通过一个面向公网的Web应用漏洞如SQL注入、文件上传在Web服务器上获得了webshell权限对应场景中的“webshell密码”。权限提升在Web服务器上攻击者利用系统配置漏洞或内核漏洞将权限从Web用户提升至本地管理员或SYSTEM。信息收集攻击者使用whoami /all、net user、net localgroup administrators、ipconfig /all、netstat -ano等命令收集系统信息、用户列表、网络拓扑和开放端口。凭证获取尝试尝试一内存转储运行tasklist | findstr lsass确认LSASS进程尝试使用procdump或内置的comsvcs.dll进行转储。如果系统启用了Credential Guard/LSA保护这一步可能会失败或只能获取到部分信息。尝试二查找保存的RDP遍历用户目录下的.rdp文件检查注册表中保存的服务器信息。使用Mimikatz的dpapi::rdp模块尝试解密。尝试三嗅探或中间人如果Web服务器与目标管理服务器在同一网段攻击者可能部署ARP欺骗工具尝试捕获到目标服务器假设IP为10.0.0.100的RDP认证流量。横向移动假设攻击者通过方法二成功解密出一个域管理员的RDP保存密码或者从内存中获取了NTLM哈希。他们便可以使用xfreerdp或rdesktop等工具尝试用这些凭证登录内网中其他重要的服务器如数据库服务器、域控制器。xfreerdp /v:10.0.0.100 /u:DomainAdmin /pth:NTLM_HASH /cert-ignore达成目标成功登录核心业务服务器执行恶意操作触发安全告警。防御方视角的检测与响应点阶段12Web应用防火墙的异常请求日志、服务器上的异常进程创建webshell、EDR告警权限提升利用。阶段3大量执行net、ipconfig等命令的行为可能被列为可疑操作。阶段4这是黄金检测期。必须监控lsass.exe进程的转储操作4688事件包含procdump、rundll32调用comsvcs.dll等。Mimikatz相关进程名、命令行或模块加载。对%USERPROFILE%\*.rdp文件的异常读取访问。网络中出现异常的ARP广播或LLMNR响应。阶段5监控来自非管理终端如Web服务器向管理服务器如域控制器发起的RDP连接尝试特别是使用NTLM认证的日志Windows安全日志事件4624登录类型为10且包含NTLM信息。5. 构建纵深防御体系预防、检测与响应单一的技术手段无法应对所有威胁必须构建一个覆盖预防、检测、响应的纵深防御体系。5.1 预防性加固措施强化身份认证禁用本地管理员账户的RDP为每个管理员创建独立的、非“Administrator”命名的管理账户。实施最小权限原则严格遵循确保RDP用户仅拥有必要权限。强制使用强密码策略并定期更换。部署双因素/多因素认证这是防止凭证泄露后直接被利用的最有效手段之一。可以结合智能卡或Windows Hello for Business。加固RDP服务本身启用网络级身份验证这是底线。限制RDP访问源IP通过Windows防火墙或网络设备只允许来自管理堡垒机或特定IP段的RDP连接。修改默认端口将RDP默认的3389/TCP端口修改为其他端口可以阻挡大量自动化扫描。但这不是安全措施只是增加攻击成本。启用SSL/TLS并配置可信证书杜绝未加密通信和服务器身份伪造。配置账户锁定策略防止暴力破解。系统级防护在所有支持的系统上启用Credential Guard。启用LSA保护。及时安装安全更新修补可能导致权限提升或RDP漏洞如BlueKeep的补丁。部署下一代防病毒/终端检测与响应并确保其行为检测模块开启。5.2 高价值检测策略部署预防并非万能必须假设 breach 已经发生因此检测至关重要。集中化日志收集与分析确保所有服务器的安全日志特别是事件ID 4688、4624、4625、4672、Sysmon日志如果部署被集中收集到SIEM平台。编写精准的检测规则LSASS内存访问检测在SIEM或EDR中创建规则检测对lsass.exe进程的PROCESS_VM_READ或PROCESS_QUERY_INFORMATION访问请求特别是来自非系统核心进程的请求。可疑进程创建检测检测procdump、rundll32与comsvcs.dll结合、mimikatz、sekurlsa等关键词的进程创建或命令行参数。横向移动检测检测从非管理区域如DMZ、用户网段向核心服务器区域如域控、数据库发起的RDP连接成功事件事件ID 4624登录类型10。异常时间登录检测检测在非工作时间如下班后、凌晨发生的管理员RDP登录成功事件。部署诱饵账户与蜜罐在域内设置几个高权限的“诱饵”账户并监控其任何使用情况。部署RDP蜜罐服务器吸引攻击者连接并记录其所有行为。5.3 事件响应与取证要点当检测到疑似RDP凭证窃取或滥用事件时应启动应急响应流程。初步遏制立即重置疑似泄露账户的密码。将受影响服务器从网络中断开或进行隔离。封锁攻击源IP如果已知。证据收集内存取证如果条件允许第一时间对受影响服务器进行内存镜像使用WinPMEM、Belkasoft RAM Capturer等工具。这是获取攻击者活动痕迹的宝贵资料。磁盘镜像对系统盘进行完整镜像以备深入分析。日志导出导出系统安全日志、RDP连接日志Windows\System32\winevt\Logs\Microsoft-Windows-TerminalServices-RemoteConnectionManager%4Operational.evtx等、防火墙日志。痕迹分析分析内存镜像寻找可疑进程、注入的代码、残留的凭据。分析安全日志梳理攻击时间线从初始入侵点到横向移动点。检查系统上的计划任务、服务、启动项、最近修改的文件寻找持久化后门。根除与恢复根据分析结果彻底清除攻击者留下的所有后门、恶意文件、账户。修复导致初始入侵的漏洞如Web应用漏洞。评估并实施前文提到的加固措施防止同类事件再次发生。复盘与改进撰写详细的事件报告。审视现有的检测规则是否漏报是否需要优化或增加新的规则。对相关人员进行安全意识再培训。6. 高级威胁与未来挑战随着防御技术的提升攻击者的技术也在进化。无文件攻击与内存操作攻击者更多地使用反射式DLL注入、进程镂空等技术将恶意代码直接加载到内存中执行避免在磁盘上留下文件绕过传统杀软。提取凭证的工具也以“无文件”形式出现。绕过Credential Guard虽然困难但并非不可能。研究人员已发现一些利用硬件漏洞或特定驱动程序的攻击方法。防御方需要保持系统更新并监控内核层面的异常。滥用合法工具与“Living off the Land”攻击者大量使用PsExec、WMI、PowerShell、RDP本身等系统自带的管理工具进行横向移动这使得检测变得异常困难因为需要从海量的正常管理行为中识别出恶意意图。这要求检测规则必须非常精细结合上下文如源主机、目标主机、执行时间、命令参数序列进行异常行为分析。回到开头的那个场景“webshell密码:黑客进行rdp登录的 ip 地址”这个flag提交格式恰恰模拟了一次攻击溯源你需要找到攻击者实施RDP横向移动的源头IP。在实际工作中这要求我们具备完整的日志链条能够从Web服务器上的webshell访问日志关联到该服务器上发起的异常外连或RDP客户端连接日志最终定位到攻击者的跳板IP。这个过程就是安全运营中心日常工作的缩影。