君子藏器于身待时而动,安全不露圭角覆盂之安。
——AnonySec
攻击者利用 Windows RDP协议接管以前断开的会话,并以合法用户身份出现以获得系统访问与控制。
RDP 劫持简要
在目标系统上获得了本地管理员访问权限,可以在不知道其他用户登录凭据的情况下,攻击者就有可能劫持另一个用户的 RDP 会话。
默认使用 tscon
或任务管理器中进行切换用户,会被要求输入密码。在没有凭据的情况下,无法进行切换会话。
利用过程-服务
query user
、quser
、qwinsta
查看会话ID。
- 创建一个使用系统级权限执行tscon的服务,将劫持ID为2的会话。
1 | //在注册表和"服务控制管理器"中为服务创建子项和项目。 |
- 当服务启动时,可以在不知道密码的情况下使用”adminx”用户的会话,达到RDP会话劫持。
1 | sc start rdp |
利用过程-工具
- SharpRDPHijack,C#开发的远程桌面协议(RDP)会话劫持工具,用于连接断开的用户会话。
防止 RDP 劫持
- 强制执行组策略:通过组策略控制远程主机空闲时间自动断开并注销。
运行 > gpedit.msc > 本地计算机 策略 > 计算机配置 > 管理模板 > Windows 组件 > 远程桌面服务 > 远程桌面会话主机 > 会话时间限制
- 启动进程监控 tscon.exe 的使用,并监控在其参数中使用
cmd.exe /k
或cmd.exe /c
的服务创建,以防止 RDP 会话劫持。