BlueStacks(蓝叠)安卓模拟器中被曝多个漏洞,可导致攻击者执行远程代码、造成信息泄露并窃取虚拟机及其数据的备份。该漏洞已于5月底修复。

V4.90.0.1046 之前的 BlueStacks 中存在一个 DNS 重新绑定漏洞,可导致攻击者获取模拟器 IPC 函数的访问权限。这些函数随后可用于多种攻击中,如远程代码执行、信息泄露等。

该漏洞是由安全研究员 Nick Cano 在今年4月份发现并报告的。该漏洞已在2019年5月27日发布的BlueStacks 4.90.0.1046 版本中修复。

BlueStacks 在安全公告中指出,“攻击者可使用DNS 重定向通过恶意网页获取对 BlueStacks App Player IPC 机制的访问权限。此后即可滥用多种被暴露的 IPC 函数。”

Cano 指出,BlueStacks 并未将补丁向后兼容版本2或3,因此强烈建议用户尽快更新至最新版本4。

使用 DNS 重新绑定

Cano 表示,他只用了5分钟就通过 DNS 重新绑定创建了该漏洞的 PoC。

浏览器保护用户免受试图和其它域名或主机名通信的脚本攻击,以阻止 cookie 被盗或通过同源策略执行的其它恶意活动。由于同源策略关注的是域名而非 IP 地址,因此如果有一种方法能够导致浏览器认为脚本仍然和最初的 evil.com 地址,但实际上是和本地网络上的 IP 地址进行通信呢?

而这也是产生 DNS 重新绑定攻击的地方。

通过钓鱼、社工、XSS等,用户被诱骗至恶意网站。该站点的域名托管在受攻击者控制的 DNS 服务器上,而 TTL 相当低,只有0或1秒。这意味着从理论上来讲,浏览器每秒钟都能从 DNS 服务器中查询 IP 地址。

evil.com 上的网页运行某些 JavaScript,持续连接至如下 URL,由于它位于同源,因此可以这么做:

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

虽然evil.com 服务器上的页面请求什么都没做,但如果攻击者将 evil.com的 IP 地址更改为 127.0.0.1 后会发生什么?该命令将能够在本地主机上执行,使用的是http://127.0.0.1/ipc/delete_folder?f=data有效的 URL。

由于源还是相同的,只有 IP 地址更改,因此脚本可绕过同源策略,访问内部网络中的本地主机或机器。

如果有服务运行在本地主机的端口80上,该URL将会被请求,而且如果该明星实际上被映射到 IPC 函数删除 f= 变量引用的文件夹,则该文件夹将被删除。

虽然这是一个完全假设的案例,但它确实说明了远程攻击者如何使用 DNS 重新绑定攻击访问在机器上本地运行的服务器甚至是内网。

BlueStacks DNS 重新绑定漏洞

BlueStacks 易受DNS 重新绑定攻击,因为它在未经认证的情况下暴露了127.0.0.1上的 IPC 接口。这就使得 Cano 能够使用 DNS 重新绑定执行 BlueStacks 模拟器 IPC 服务器的远程命令,包括使用备份 IPC 命令创建 BlueStacks 虚拟机以及所有包含其中的数据备份。这些数据包括用户名称和密码、图片和存储在虚拟机中的所有内容。

Cano 还表示,可使用 IPC 命令执行远程代码,安装 APK甚至是恶意 APK,或者将恶意截屏恢复至 BlueStacks 虚拟机。该截屏之后可用于在 BlueStacks 中执行命令。

最后,Cano 表示可使用 IPC 命令来复制并替代剪贴板中的任意数据或者截屏虚拟机或者其上的 Windows 主机应用程序。

BlueStacks 已修复该漏洞,方法是创建了一个 IPC 授权密钥并将其存储在注册表中。任何由此提出的 IPC 请求必须包含该授权密钥,否则将被抛弃。

鉴于该漏洞的严重程度,如你在使用 BlueStacks,则强烈建议更新至最新版本。

原文链接

https://www.bleepingcomputer.com/news/security/bluestacks-flaw-lets-attackers-remotely-control-android-emulator/

声明:本文来自代码卫士,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。