RDP劫持 – 如何透明地劫持RDS和RemoteApp会话以在组织中移动

如何使用远程桌面服务轻松地通过网络获得横向移动,而无需使用外部软件 - 以及如何防范。

Alexander Korznikov演示了使用Sticky Keys和tscon访问管理员RDP会话 - 甚至不需要登录到服务器。

有关RDP会话连接的简要背景

如果您以前使用过远程桌面服务,或者终端服务(如果您和我一样年纪),则会知道有一个功能可以连接到另一个用户的会话 -  如果您知道密码。你知道你也可以劫持没有用户密码的会话吗?阅读。
您可以右键单击任务管理器中的用户,使用tsadmin.msc或使用命令tscon.exe。它会要求输入密码,如果你不能以用户身份进行验证,将会弹出一个炸弹:

一些技巧允许无证书会话劫持

这是交易。正如2011年由Benjamin Delpy(Mimikatz)和周五Alexander Korznikov透露的那样,如果以SYSTEM用户身份运行tscon.exe,则可以连接到没有密码的任何会话。它不提示,它只是连接到用户的桌面。我相信这是由于会话投影在Microsoft Windows中实现的方式所致,并且像这样一直运行多年。

现在,你可能会说“如果你是系统,你已经是root了,你已经可以做任何事了”。
是。是的你可以。例如,您可以转储出服务器内存并获取用户密码。与只使用会话号码运行tscon.exe相比,这是一个漫长的过程,并立即得到所述用户的桌面 - 没有明显的痕迹或外部工具。这不是关于系统 - 这是关于你可以用它很快,安静地做的事情。攻击者对玩游戏并不感兴趣,他们对使用技术可以做什么感兴趣。这是一个非常有效的技术。
所以,你有一个完整的RDP会话劫持,只需一个命令。

一些参数有关这个达到多远

  • 您可以连接到断开连接的会话。所以如果有人3天前注销,你可以直接连接到他们的会话,并开始使用它。

  • 它解锁锁定的会话。因此,如果用户离开办公桌,则会窃取他们的会话,并且不需要任何凭证即可解锁“工作站”。

  • 它适用于物理控制台。所以你可以远程劫持屏幕。它也解锁了物理控制台。

  • 您可以连接到任何会话 - 例如,如果它是帮助台,您可以连接到它没有任何身份验证。如果它是一个域管理员,你是在。由于上述点(你可以连接到断开的会话),这使得它横向移动通过一个非常简单的方式通过网络。

  • 您可以使用win32k SYSTEM漏洞  - 有很多 - 获得SYSTEM权限,然后使用此功能。即使作为标准用户,如果补丁没有正确应用,也可以使用它。显然,到SYSTEM的任何路线都是有效的 - 例如任何到达本地管理员的方法(有几个!)。

  • 没有外部工具。没有什么可以通过应用程序白名单。没有可执行文件写入磁盘。

  • 除非你知道要监控什么(稍后会有更多),否则你不会知道这一切正在发生。

  • 它远程工作。即使您没有登录到该服务器,您也可以在远程计算机上接管会话。

获得tscon.exe的系统

如果您是管理员,则可以像Alexander一样使用服务:

从本质上来说,这非常简单,只需使用quser命令获取要劫持的会话ID以及您自己的SESSIONNAME即可。然后用劫持的会话ID和你自己的SESSIONNAME运行tscon。你自己的会话将被劫持的会话取代。该服务将默认以系统身份运行 - 您正在使用。

只要记得在事后删除服务,如果你是邪恶的。

以下是在Windows Server 2012 R2服务器上实践的一个示例:
https://www.youtube.com/watch?v=OgsoIoWmhWw

其他方法:

  • 您可以使用计划任务来获取SYSTEM并运行该命令。只要安排命令以具有交互特权的SYSTEM立即运行。

  • 使用可以使用粘滞键等各种方法获取SYSTEM,甚至不需要登录(将来)。见下文。

  • 漏洞等(见上文)。

侧向运动

大多数组织通过其内部网络允许远程桌面,因为它是2017年,这就是Windows管理的工作原理。另外,RemoteApp使用RDP。正因为如此,移动组织的网络是一个很好的方式 - 忘记密码,只是四处乱逛,滥用其他人的访问。您以该用户的身份出现在组织日志中,而不是您自己。

如何后门无证的劫持

远程桌面暴力破解是一个主要问题。最近设置蜜罐的任何人都会在几秒钟内知道你将会遇到失败的RDP登录。首先他们可以端口扫描,然后数千个登录尝试到达。

情况变得更糟 - 我运行RDP蜜罐,我经常看到它们 - 当它们被使用下面的技术重新进行攻击时。
从研究中,超过200个在线扫描的远程桌面服务器已经使用这些方法进行后台管理。这意味着您可以立即与他们进行会话劫持,甚至不需要尝试登录或以任何方式进行身份验证。那很糟。考虑Shodan显示现在有数以百万计的RDP服务器在线,而且这个数量随着云服务等不断增长,这将会产生...问题。

RDP后门方法一 - 粘滞键

这里的概念非常简单 - Windows支持一种称为粘滞键的功能,它是内置于操作系统和可用的预登录(在登录屏幕上,通过物理控制台或通过远程桌面)的辅助功能。它作为SYSTEM运行。

如果您将Sethc.exe(粘滞键)设置为产生cmd.exe,那么您可以使用一个后门,如果您被锁定在盒子外面 - 您有系统访问权限,所以即使没有帐户,也可以执行任何操作。您可以通过使用cmd.exe替换sethc.exe来实现此目的 - 这需要重新启动,并物理访问该框 - 或者使用下面的命令设置注册表项。

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

当当!这个盒子现在被永久性的重新做了。只要远程桌面在登录屏幕上,多次点击F5。

方法二 - Utilman

这和以前完全一样,只是trojan utilman.exe而已。在登录屏幕上,按Windows键+ U,然后以SYSTEM的身份得到一个cmd.exe窗口。

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

扫描后门的RDP服务器
这里有一个预建的工具,它可以创造奇迹 - 只要把它旋转起来,找到已经暴露了系统级后门的服务器:

https://github.com/ztgrace/sticky_keys_hunter

从在线扫描来看,大量的在线开放RDP服务器已经被备份。

Mimikatz模块

现在有一个Mimikatz模块很容易做到这一点:

https://github.com/gentilkiwi/mimikatz/releases

gentilkiwi摇摆它

缓解措施

OS- I在这里有一个关于Window Server 2016的部分,但经过进一步的调查,似乎也受到影响。经过测试,这适用于Windows 2000以后的所有操作系统,包括Windows 10和2016。

组策略  - 我强烈建议您在用户断开连接后立即或不久之后使用组策略来注销断开连接的会话。这在IT环境中不会流行 - 但现在风险已经完全真实,他们可以非常容易地 - 在一个命令中 - 在现实
世界中或多或少地被盗用。我也会注销空闲会话。

不要将RDS / RDP暴露给互联网  - 如果你这样做,我强烈建议你实施多因素认证。您可以使用诸如Microsoft RD Gateway或Azure Multi-Factor Authentication Server之类的软件来获得非常低成本的多重身份验证。如果您将RDP直接暴露给互联网,并且有人创建了本地用户,或者您的域名用户易于猜测或重复使用凭据,则事情将会快速下滑。相信我 - 我已经看到医院和其他人被RDS服务器勒索软件。

监控

记录会话劫持令人惊讶地非常困难 - 有一个记录会话连接的事件日志(Microsoft-Windows-TerminalServices-LocalSessionManager / Operational) - 但它似乎没有区分正常用户连接和正在使用的tscon.exe - 我已经经历了其他所有事件日志,并且看不到任何暗示正在发生的事情。这实际上是一个重大问题,我游说微软尽快添加一些事件日志 - 这是一个真正的差距。

我的建议是警惕其他相关的行为使用事件日志和工具,如Microsoft OMS,Windows事件转发,Splunk等您正在寻找系统被滥用。

例如,异常服务创建和异常计划任务创建应集中记录,并记录下来。此外,你可以寻找Mimikatz相关的活动。


文章转载请注明出处:https://www.freearoot.com/index.php/rdp%e5%8a%ab%e6%8c%81-%e5%a6%82%e4%bd%95%e9%80%8f%e6%98%8e%e5%9c%b0%e5%8a%ab%e6%8c%81rds%e5%92%8cremoteapp%e4%bc%9a%e8%af%9d%e4%bb%a5%e5%9c%a8%e7%bb%84%e7%bb%87%e4%b8%ad%e7%a7%bb%e5%8a%a8.html

文章来源:https://medium.com/@networksecurity/rdp-hijacking-how-to-hijack-rds-and-remoteapp-sessions-transparently-to-move-through-an-da2a1e73a5f6