不久前,BlueStacks安卓模拟器出现了一个漏洞,导致攻击者可以执行远程代码、信息公开,并窃取VM及其数据的备份。而这个漏洞在5月底已经被修复。

bluestacks模拟器运行慢(Android模拟器可被远程控制)(1)

图源网络:侵删

据悉:在BlueStacks v4.90.0.1046之前的版本中,存在一个DNS重新绑定漏洞,导致攻击者能够访问到模拟器的IPC函数。这些函数可以用于从远程代码执行到信息公开的各种不同的攻击。

该漏洞由安全研究员Nick Cano于今年4月发现并报告,并在BlueStacks 4.90.0.1046中进行了修正,该版本于2019年5月27日发布,并附有一份建议。

建议里表明:“攻击者可以使用DNS重新绑定漏洞,通过恶意网页访问BlueStacks App Player IPC机制,从那以后,各种暴露的IPC功能都可能被滥用。”

根据Cano的说法,BlueStacks并不支持将此修复程序移植到版本2或3,因此强烈建议用户尽快升级到最新的版本4。

利用DNS重新绑定

在与Bleepingcomputer的对话中,Cano解释说,为这个漏洞创建PoC非常简单,使用DNS重新绑定只需要5分钟。

浏览器通过一种名为同源策略(SOP)的安全措施,保护用户免受试图与其他域或主机名通信的脚本的攻击,从而防止cookie被窃取或其他恶意活动。SOP确保站点只能将请求发送到它自己的源,在大多数情况下,它是用户在浏览器中访问的域名。

由于SOP关注的是域名而不是IP地址,如果有一种方法可以让浏览器认为脚本仍然在与原始的evil.com地址通信,而现在正在与本地网络上的IP地址通信,那会怎么样呢?

bluestacks模拟器运行慢(Android模拟器可被远程控制)(2)

图源网络:侵删

这就是DNS重新绑定攻击的切入点。通过这种攻击,用户通过网络钓鱼、社会工程、XSS等手段被引诱到恶意网站,如evil.com。该站点的域驻留在攻击者控制的DNS服务器上,TTL非常低,只有0或1秒。这意味着理论上浏览器每秒都可以从DNS服务器查询IP地址。

现在,evil.com上的这个web页面将运行一些JavaScript,这些JavaScript将不断地连接到下面的URL,因为它位于同一个源(域),所以可以这样做:

http://evil.com/ipc/delete_folder?f=data

虽然evil.com服务器上的页面请求没有执行任何操作,但是当攻击者将evil.com的IP地址更改为127.0.0.1时会发生什么?现在,该命令将在本地主机上执行,使用的URL将有效地变为http://127.0.0.1/ipc/delete_folder?

由于源保持不变,并且只更改了IP地址,因此允许脚本绕过同源策略,访问内部网络中的本地主机或机器。

bluestacks模拟器运行慢(Android模拟器可被远程控制)(3)

DNS重新绑定示例

现在,如果有一个服务在localhost的80端口上运行,就会请求这个URL,如果这个命令实际上映射到一个IPC函数,该函数用f=变量删除文件夹引用,那么这个文件夹就会被删除。

这是一个完全虚构的示例,但它确实说明了远程攻击者如何使用DNS重新绑定来访问本地运行在您的机器甚至内部网络上的服务器。

BlueStacks DNS重新绑定漏洞

BlueStacks很容易受到DNS重绑定攻击,因为它在127.0.0.1上公开了IPC接口,而没有进行任何身份验证。

这允许Cano使用DNS重新绑定来对BlueStacks模拟器的IPC服务器执行远程命令。

这包括使用backup IPC命令创建BlueStacks VM和其中包含的所有数据的备份。这些数据可以包括用户名和密码、图片以及存储在VM中的任何其他内容。

研究人员还告诉BleepingComputer,可以使用IPC命令来安装APK,甚至是恶意的APK,或者通过将恶意快照恢复到BlueStacks虚拟机来执行RCE攻击。然后可以使用此快照执行BlueStacks中的命令。

最后,Cano坦言,“你可以使用IPC命令复制和替换剪贴板中的任何数据,或者对虚拟机或可能的Windows主机应用程序截屏。你也可以窃取部分截图。有一个命令可以截屏,但是它会截屏VM之上的任何窗口。所以如果虚拟机在后台,你可以截屏它上面的任何东西。”

通过创建IPC授权密钥并将其存储在注册表中,BlueStacks可以修复此漏洞。发出的任何IPC请求都必须包含此授权密钥,否则将被拒绝。

由于该漏洞的严重性,如果您在使用BlueStacks,为保证您的使用安全,建议您最好升级到最新版本。

,