渗透技巧——利用 tscon 实现未授权登录远程桌面

发布于 2024-10-15 08:07:18 字数 5439 浏览 23 评论 0

0x00 前言

Windows 系统下,tscon 可被用来切换远程桌面的会话。正常情况下,切换会话时需要提供登录密码,但通过特殊的利用方法能够绕过验证,不输入密码实现未授权登录。

这会造成什么影响呢?这个方法能用在哪种条件下呢?结合利用方法又该如何防御呢?本文将要一一介绍

注:本文使用 tscon 未授权登录的思路借鉴于如下链接:https://medium.com/@networksecurity/rdp-hijacking-how-to-hijack-rds-and-remoteapp-sessions-transparently-to-move-through-an-da2a1e73a5f6

0x01 简介

本文将要介绍以下内容:

  • tscon 的正常用法
  • 利用 tscon 实现未授权登录远程桌面的方法
  • 应用实例
  • 防御建议

0x02 tscon 的正常用法

对于开启远程桌面服务的 Windows 系统,当有多个用户登录该系统时,会产生多个会话,如下图

Alt text

测试系统: Server2012 R2

  • 用户 Administrator 为本地登录
  • 用户 b 为通过远程桌面服务(RDP) 连接 3389 端口远程登录

接下来,如果用户 Administrator 想要切换至用户 b 的远程桌面,可通过 右键 - Connect 进行连接,接着输入密码即可

如下图

Alt text

Alt text

tscon 是命令行下使用的工具,可实现相同的功能

首先获取用户对应的 sessionid,执行如下命令:

query user

输出如下图

Alt text

用户 b 对应的 sessionid 为 2

通过 tscon 切换至用户 b 的桌面,命令如下:

tscon 2 /PASSWORD:test123!

0x03 利用 tscon 实现未授权登录远程桌面的方法

在 System 权限执行同样的命令,就能够绕过输入密码的过程,直接切换

从 Admin 权限切换到 System 权限的方法在之前的文章 《渗透技巧——从 Admin 权限切换到 System 权限》 有过详细介绍,常用方法有如下三种:

  • 通过创建服务获得 System 权限
  • 利用 MSIExec 获得 System 权限
  • 利用 token 复制获得 System 权限

选取其中的一种,获得 system 权限,接着输入如下命令:

tscon 2

成功登录

0x04 应用实例一

对于 Server2012 R2 系统,默认情况下,通过 mimikatz 无法导出明文口令,测试环境下,通过某些方法获得了服务器的一个用户名密码,可以通过远程桌面进行登录

登录后发现后台存在另一用户

由于未导出明文口令,通过常规方法无法切换至另一用户的桌面

这里就可以借助上文提到的方法,先提权至 System 权限,再切换过去

特别的地方:

当用户通过远程桌面登录后,直接点击关闭断开连接,如下图

Alt text

此时该会话并没有结束,后台显示 Disconnected ,如下图

Alt text

此时,仍能在 system 权限下通过 tscon 实现未授权连接

0x05 应用实例二

利用辅助工具管理器后门(放大镜后门原理相同,进程为 sethc.exe) 绕过系统登录界面

进程: utilman.exe

登录界面可通过点击图标对其调用,如下图

Alt text

调用辅助工具管理器的快捷键: Win+U

通过注册表劫持实现后门,修改注册表的命令如下:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\utilman.exe" /t REG_SZ /v Debugger /d "C:\windows\system32\cmd.exe" /f

在登录界面启动辅助工具管理器,弹出 cmd.exe,权限为 system,如下图

Alt text

通过 tscon 可直接切换至目标用户的桌面

补充:

在登录界面状态下,降权方法受限,SelectMyParent 和 Invoke-TokenManipulation.ps1 均报错

使用 incognito 能够成功降权,但是操作仍受限,如下图

Alt text

注:

SelectMyParent、Invoke-TokenManipulation.ps1 和 incognito 的使用说明可参考文章 《渗透技巧-Token 窃取与利用》

无法对目标用户桌面进行截屏,截屏的 powershell 代码可参考:https://gallery.technet.microsoft.com/scriptcenter/eeff544a-f690-4f6b-a586-11eea6fc5eb8

受限的原因:

登录界面下,虽然是 system 权限,但是此时的进程均是 winlogon 的子进程

如下图

Alt text

绕过思路:

利用 WMI 做中转,通过 WMI 启动进程,默认父进程为 svchost.exe -> WmiPrvSE.exe

命令如下:

wmic process call create commandline = "powershell -ep bypass -f c:\test\system4.ps1"

system4.ps1 的内容来自于 Invoke-TokenManipulation.ps1 ,以用户 win-eq8jfsr081d\b 的权限执行脚本,具体参数为:

Invoke-TokenManipulation -CreateProcess "c:\test\task.bat" -Username "in-eq8jfsr081d\b"

task.bat 的功能为输出环境变量到 task.txt 中,具体参数为:

set >>c:\test\task.txt

执行如下图

Alt text

查看 task.txt 的内容,判断环境变量,成功降权,如下图

Alt text

通过这种方式,可以分别降权至 High 和 Medium 权限,如下图

Alt text

0x06 防御建议

建议用户使用注销用户的方式断开远程桌面,注销后,无法通过 tscon 获得桌面会话,监控系统用户的登录日志,攻击者需要先远程登录系统后才能做进一步利用:未授权切换桌面会话

对于 Windows 系统,需要注意攻击者如果获得了系统的访问权限,能够利用放大镜和辅助工具管理器后门实现未授权登录

0x07 小结

本文介绍了利用 tscon 实现未授权登录远程桌面的方法,站在攻击者的角度,分析利用思路,最后站在防御的角度,结合攻击方法,给出防御建议。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

悟红尘

暂无简介

文章
评论
770 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文