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