长话短说
浏览器隔离是一种安全技术,通过在安全环境(如云服务器或虚拟机)中运行浏览器,然后将视觉内容流式传输到用户设备,将网页浏览活动与用户本地设备分离。
组织通常使用浏览器隔离来对抗钓鱼威胁,保护设备免受浏览器传递的攻击,并遏制攻击者常用的命令与控制(C2或C&C)策略。
在这篇博客文章中,Mandiant展示了一种可以绕过当前所有三种浏览器隔离类型(远程、本地部署和本地)的新技术,目的是通过C2控制恶意植入程序。Mandiant展示了攻击者如何使用机器可读的二维码从攻击者控制的服务器向受害设备发送命令。
浏览器隔离背景
SpecterOps早些年发布了一篇关于浏览器隔离的博客文章https://posts.specterops.io/calling-home-get-your-callbacks-through-rbi-50633a233999
,讨论渗透测试人员和红队操作员如何在浏览器隔离场景中绕过限制。简而言之,浏览器隔离通过在安全环境中对Web浏览器进行沙盒化,并将视觉内容流式传输回用户的本地浏览器,从而保护用户免受基于Web的攻击。根据大多数文档https://www.proofpoint.com/au/threat-reference/browser-isolation
,存在三种类型的浏览器隔离:
远程浏览器隔离(RBI),最安全且最常见的变体,在基于云的环境中对浏览器进行沙盒化。
本地部署浏览器隔离与RBI类似,但在本地运行沙盒化浏览器。这种方法的优势是可以访问本地Web应用程序,无需复杂的云到本地连接。
本地浏览器隔离,或客户端浏览器隔离,在本地容器化或虚拟机环境中运行沙盒化浏览器。
远程浏览器处理从页面渲染到执行JavaScript的所有操作。只有Web页面的视觉外观会被发送回用户的本地浏览器(像素流)。本地浏览器中的按键和点击会被转发到远程浏览器,使用户能够与Web应用程序交互。组织通常使用代理确保所有Web流量通过浏览器隔离技术,从而限制出站网络流量并限制攻击者绕过浏览器隔离的能力。
SpecterOps详细介绍了攻击性安全专业人员在浏览器隔离环境中面临的一些挑战。他们记录了通过滥用错误配置来绕过浏览器隔离的可能方法,例如使用HTTP头、Cookie或身份验证参数。
浏览器隔离阻止典型的命令与控制
命令与控制(C2或C&C)指攻击者通过恶意植入程序远程控制受感染系统的能力。发送命令到受害设备和从受害设备发送命令的最常见通道是通过HTTP请求:
植入程序通过HTTP请求向攻击者控制的C2服务器请求命令。 C2服务器在HTTP响应中返回要执行的命令。 植入程序解码HTTP响应并执行命令。 植入程序通过另一个HTTP请求将命令输出提交回C2服务器。 植入程序"休眠"一段时间,然后重复周期。
然而,当使用浏览器隔离时,这种方法会遇到挑战——通过浏览器隔离系统发出HTTP请求时,返回到本地浏览器的HTTP响应只包含用于渲染远程浏览器视觉页面内容的流引擎。原始HTTP响应(来自Web服务器)仅在远程浏览器中可用。HTTP响应在远程浏览器中呈现,只有像素流被发送到本地浏览器以直观地渲染网页。这阻止了典型的基于HTTP的C2,因为本地设备无法解码HTTP响应。
在这篇博客文章中,我们将探索在浏览器隔离环境中与受感染系统建立C2的不同方法,完全在浏览器隔离上下文中工作。
通过像素发送C2数据
Mandiant的红队开发了一种新颖的解决方案。不是在HTTP请求头或正文中返回C2数据,而是C2服务器返回一个显示二维码的有效网页。然后,植入程序使用本地无头浏览器渲染页面,获取屏幕截图,并读取二维码以检索嵌入的数据。通过利用机器可读的二维码,即使在远程浏览器中渲染网页,攻击者也可以从攻击者控制的服务器向恶意植入程序发送数据。
与其解码命令执行的HTTP响应,不如让植入程序通过浏览器隔离的像素流引擎可视化渲染网页,并从页面上显示的二维码中解码命令。新的C2循环如下:
植入程序通过DevTools协议控制本地无头浏览器。 植入程序通过无头浏览器从C2服务器检索网页。 C2服务器返回一个包含二维码形式命令数据的有效HTML网页。 远程浏览器将像素流引擎返回到本地浏览器。 植入程序等待页面完全渲染,然后截取本地浏览器的屏幕截图。 植入程序使用嵌入的二维码扫描库从屏幕截图读取二维码数据。 植入程序在受感染设备上执行命令。 植入程序导航到包含编码在URL参数中的命令输出的新URL。 植入程序"休眠"一段时间,然后重复周期。
Mandiant开发了一个使用Puppeteer和Google Chrome无头模式的概念验证(PoC)植入程序。他们甚至进一步将植入程序与Cobalt Strike的External C2功能集成,允许在使用HTTP请求和二维码响应的同时使用Cobalt Strike的BEACON植入程序。
由于这种技术依赖于网页的可视内容,它适用于所有三种浏览器隔离类型。
尽管PoC证明了这种技术的可行性,但仍有一些需要考虑的缺点:
在Mandiant的测试中,使用最大数据大小的二维码(2,953字节)是不可行的,因为本地浏览器中渲染的网页视觉流质量不足以可靠地读取二维码内容。 由于使用Chrome无头模式的开销,每个请求大约需要5秒来可靠地显示和扫描二维码。 这篇博客文章没有考虑浏览器隔离的其他安全功能。
结论和建议
Mandiant建议浏览器隔离仍然是防御其他类型攻击的强大保护措施,但组织不应solely依赖浏览器隔离。他们推荐采用"纵深防御"策略,并建立全面的网络防御态势。具体建议包括:
监控异常网络流量 监控自动化模式下的浏览器
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...