CVE-2017-0785 BlueBorne PoC
CVE-2017-0785 BlueBorne PoC 概述
Armis Labs 揭示了一种新的攻击向量,危及主要移动、桌面和物联网操作系统,包括 Android、iOS、Windows 和 Linux,以及使用这些系统的设备。该新向量被称为“BlueBorne”,因为它通过空气传播(airborne)并通过蓝牙攻击设备。Armis 还披露了八个相关的零日漏洞,其中四个被归类为严重。BlueBorne 允许攻击者控制设备、访问企业数据和网络、渗透安全的“气隙”网络,并向相邻设备横向传播恶意软件。Armis 已向相关责任方报告了这些漏洞,并与其合作,正在识别和发布补丁。
BlueBorne 简要概述
什么是 BlueBorne? BlueBorne 是一种攻击向量,黑客可以利用蓝牙连接渗透并完全控制目标设备。BlueBorne 影响普通计算机、手机以及不断扩大的物联网设备领域。该攻击不需要目标设备与攻击者的设备配对,甚至不需要设置为可发现模式。Armis Labs 迄今已识别出八个零日漏洞,这表明该攻击向量的存在和潜力。Armis 认为,在使用蓝牙的各种平台上还有许多漏洞有待发现。这些漏洞完全可操作,并且可以成功利用,正如我们的研究所证明的。BlueBorne 攻击向量可用于实施大范围的攻击,包括远程代码执行以及中间人攻击。
更多信息:下载我们关于 BlueBorne 的技术白皮书 风险是什么?
BlueBorne 攻击向量具有一些特性,当这些特性结合在一起时可能产生毁灭性影响。通过空气传播,BlueBorne 针对的是网络防御中最薄弱的环节——也是唯一没有安全措施保护的地方。通过空气在设备之间传播也使 BlueBorne 具有高度传染性。此外,由于蓝牙进程在所有操作系统上都具有高权限,利用它可以提供对设备的几乎完全控制。
不幸的是,这组能力对黑客来说极具吸引力。BlueBorne 可用于任何恶意目的,例如网络间谍、数据盗窃、勒索软件,甚至像 Mirai 僵尸网络那样利用物联网设备创建大型僵尸网络,或像最近的 WireX 僵尸网络那样利用移动设备。BlueBorne 攻击向量通过渗透与任何其他网络(包括互联网)断开的“气隙”网络,超越了大多数攻击向量的能力。 威胁范围有多大? BlueBorne 攻击向量构成的威胁
BlueBorne 攻击向量可能影响所有具备蓝牙功能的设备,估计如今超过 82 亿台。蓝牙是短距离通信中领先且最广泛的协议,被各类设备使用,从普通计算机和移动设备到物联网设备,如电视、手表、汽车,甚至医疗设备。最新发布的报告显示,活跃使用的 Android 设备超过 20 亿台,Windows 设备超过 20 亿台,Apple 设备超过 10 亿台。Gartner 报告称,目前全球有 80 亿台联网或物联网设备,其中许多具备蓝牙功能。 BlueBorne 有何新意? 一种新的空气传播攻击向量
BlueBorne 之所以引起我们关注,是因为它运作的媒介。与当今大多数依赖互联网的攻击不同,BlueBorne 攻击通过空气传播。这与 Project Zero 和 Exodus 最近在 Broadcom Wi-Fi 芯片中发现的两个范围较小的漏洞类似。Wi-Fi 芯片中的漏洞仅影响设备的外围设备,并且需要另一步骤才能控制设备。而 BlueBorne 攻击者从一开始就可以获得完全控制。此外,蓝牙提供的攻击面比 WiFi 更广,研究社区几乎未对其探索,因此包含更多漏洞。
不幸的是,空气传播攻击为攻击者提供了多种机会。首先,通过空气传播使攻击更具传染性,并且可以以最小的努力传播。其次,它允许攻击绕过当前的安全措施并保持不被发现,因为传统方法无法防御空气传播威胁。空气传播攻击还可以让黑客渗透到“气隙”安全内部网络,即与任何其他网络断开连接以进行保护的网络。这可能会危及工业系统、政府机构和关键基础设施。
最后,与传统恶意软件或攻击不同,用户无需点击链接或下载可疑文件。无需用户采取任何操作即可发动攻击。 全面且严重的威胁
BlueBorne 攻击向量不需要用户交互,兼容所有软件版本,除了蓝牙处于活动状态外,不需要任何前提条件或配置。与普遍误解不同,启用蓝牙的设备不断在寻找来自任何设备的传入连接,而不仅仅是它们已配对的设备。这意味着无需配对设备即可建立蓝牙连接。这使得 BlueBorne 成为近年来发现的最广泛的潜在攻击之一,并允许攻击者完全不被察觉地发动攻击。 下一代蓝牙漏洞
过去,大多数蓝牙漏洞和安全缺陷源于协议本身的问题,这些问题在 2007 年的 2.1 版本中得到了解决。此后发现的几乎所有漏洞严重程度都较低,并且不允许远程代码执行。这种转变发生的原因是研究社区将目光转向了别处,并没有像审视其他主要协议那样仔细检查不同平台中蓝牙协议的实现。
蓝牙是一种难以实现的协议,使其容易产生两种漏洞。一方面,供应商很可能逐字遵循协议的实现指南,这意味着当在一个平台中发现漏洞时,可能会影响其他平台。这些镜像漏洞发生在 CVE-2017-8628 和 CVE-2017-0783(Windows 和 Android MiTM)上,它们是“双胞胎”。另一方面,在某些领域,蓝牙规范留下了太多解释空间,导致各个平台的实现方法碎片化,使每个平台更可能包含自己的漏洞。
这就是为什么构成 BlueBorne 的漏洞基于蓝牙协议的各种实现,并且比近年来的漏洞更普遍、更严重。我们担心我们发现的漏洞只是冰山一角,其他平台上该协议的不同实现可能包含更多漏洞。 协调披露
Armis 联系了以下各方,以确保对已识别漏洞做出安全、可靠且协调的响应。
Google – 于 2017 年 4 月 19 日联系,随后分享了详细信息。于 2017 年 9 月 4 日发布了公开安全更新和安全公告。2017 年 9 月 12 日协调披露。
Microsoft – 于 2017 年 4 月 19 日联系,随后分享了详细信息。于 7 月 11 日进行了更新。2017 年 9 月 12 日作为协调披露的一部分进行公开披露。
Apple – 于 2017 年 8 月 9 日联系。Apple 的当前版本中没有漏洞。
Samsung – 分别在 4 月、5 月和 6 月联系了三次。未收到任何回复。
Linux – 于 2017 年 8 月 15 日和 17 日联系。2017 年 9 月 5 日,我们联系并向 Linux 内核安全团队和 Linux 发行版安全联系人列表提供了必要信息,随后进行了对话。计划在 2017 年 9 月 12 日左右发布更新以进行协调披露。
受影响设备 Armis 披露的漏洞构成的威胁
Armis 披露的漏洞影响所有运行 Android、Linux、Windows 和 iOS 10 以下版本操作系统的设备,无论使用的蓝牙版本如何。这意味着几乎所有运行这些操作系统之一的计算机、移动设备、智能电视或其他物联网设备都至少受到这八个漏洞之一的影响。这涵盖了全球所有联网设备的很大一部分。 哪些设备受影响?
Android 所有 Android 手机、平板电脑和可穿戴设备(仅使用蓝牙低功耗的设备除外)的所有版本都受到 Android 操作系统中发现的四个漏洞的影响,其中两个允许远程代码执行(CVE-2017-0781 和 CVE-2017-0782),一个导致信息泄露(CVE-2017-0785),最后一个允许攻击者执行中间人攻击(CVE-2017-0783)。
受影响设备示例:
Google Pixel
Samsung Galaxy
Samsung Galaxy Tab
LG Watch Sport
Pumpkin Car Audio System
Google 已发布安全更新补丁并通知其合作伙伴。该补丁于 2017 年 8 月 7 日提供给 Android 合作伙伴,并于 2017 年 9 月 4 日作为 9 月安全更新和公告的一部分提供。我们建议用户查看该公告以获取最新最准确的信息。Android 用户应确认其安全补丁级别为 2017 年 9 月 9 日。
Android 用户注意事项:要检查您的设备或周围设备是否面临风险,请在 Google Play 下载 Armis BlueBorne Scanner 应用程序。
Windows 自 Windows Vista 以来的所有 Windows 计算机都受到“蓝牙菠萝”漏洞的影响,该漏洞允许攻击者执行中间人攻击(CVE-2017-8628)。
Microsoft 已于 2017 年 7 月 11 日向所有受支持的 Windows 版本发布了安全补丁,并于 2017 年 9 月 12 日星期二进行了协调通知。我们建议 Windows 用户在此处查看 Microsoft 发布版本以获取最新信息。
Linux Linux 是多种设备的基础操作系统。基于 Linux 的最商业化和面向消费者的平台是 Tizen OS。
所有运行 BlueZ 的 Linux 设备都受到信息泄露漏洞(CVE-2017-1000250)的影响。 所有版本 3.3-rc1(2011 年 10 月发布)以来的 Linux 设备都受到远程代码执行漏洞(CVE-2017-1000251)的影响。
受影响设备示例:
Samsung Gear S3(智能手表) Samsung Smart TVs Samsung Family Hub(智能冰箱)
Linux 漏洞的补丁已推送到上游项目。信息泄露漏洞已在此处修补,远程代码执行漏洞已在此处修补。Linux 发行版已开始推送更新,请查找您的发行版的具体更新。
iOS 所有运行 iOS 9.3.5 及更低版本的 iPhone、iPad 和 iPod touch 设备,以及版本 7.2.2 及更低版本的 AppleTV 设备都受到远程代码执行漏洞(CVE-2017-14315)的影响。Apple 已在 iOS 10 中缓解了此漏洞,因此无需新补丁即可缓解。我们建议您升级到最新的 iOS 或 tvOS。
如果您担心您的设备可能未打补丁,我们建议禁用蓝牙,并尽量减少使用,直到您确认设备已安装补丁。 技术概述 BlueBorne 解释:攻击向量如何工作
BlueBorne 攻击向量有几个阶段。首先,攻击者定位周围的活跃蓝牙连接。即使设备未设置为“可发现”模式,也可以识别设备。接下来,攻击者获取设备的 MAC 地址,这是该设备的唯一标识符。通过探测设备,攻击者可以确定受害者使用的操作系统,并相应调整其漏洞利用程序。然后,攻击者将利用相关平台中蓝牙协议实现中的漏洞,获得其恶意目标所需的访问权限。在此阶段,攻击者可以选择创建中间人攻击并控制设备的通信,或完全控制设备并将其用于各种网络犯罪目的。
下载我们关于 BlueBorne 的技术白皮书 针对 Android 的 BlueBorne 攻击
一旦攻击者确定目标使用 Android 操作系统,他可以利用 Armis 披露的四个漏洞中的任意一个来利用该设备,或者可以使用单独的漏洞进行中间人攻击。
演示 Android
信息泄露漏洞 (CVE-2017-0785) Android 操作系统中的第一个漏洞揭示了有价值的信息,帮助攻击者利用以下描述的远程代码执行漏洞之一。该漏洞位于 SDP(服务发现协议)服务器中,该服务器使设备能够识别周围的其他蓝牙服务。该漏洞允许攻击者向服务器发送一组精心制作的请求,导致服务器在响应中泄露内存位。这些信息随后可被攻击者用来克服高级安全措施并控制设备。此漏洞还可允许攻击者从目标设备泄露加密密钥并窃听蓝牙通信,这种攻击非常类似于 Heartbleed。
远程代码执行漏洞 #1 (CVE-2017-0781) 该漏洞位于蓝牙网络封装协议(BNEP)服务中,该服务允许通过蓝牙连接共享互联网(网络共享)。由于 BNEP 服务中的缺陷,黑客可以触发精确的内存损坏,易于利用,并使其能够在设备上运行代码,从而有效获得完全控制。由于缺乏适当的授权验证,触发此漏洞不需要任何用户交互、身份验证或配对,因此目标用户完全不知道正在进行的攻击。
远程代码执行漏洞 #2 (CVE-2017-0782) 此漏洞与前一个类似,但位于 BNEP 服务的更高层——个人区域网络(PAN)配置文件——负责在两个设备之间建立基于 IP 的网络连接。在这种情况下,内存损坏更大,但仍可以被攻击者利用以获得对受感染设备的完全控制。与前一个漏洞类似,此漏洞也可以在没有任何用户交互、身份验证或配对的情况下触发。
蓝牙菠萝 – 中间人攻击 (CVE-2017-0783) 中间人(MiTM)攻击允许攻击者拦截并干预进出目标设备的所有数据。要使用 Wi-Fi 创建 MiTM 攻击,攻击者需要特殊设备,并且目标设备需要连接到开放 WiFi 网络。在蓝牙中,攻击者可以使用任何具备蓝牙功能的设备主动接触其目标。该漏洞位于蓝牙协议栈的 PAN 配置文件中,使攻击者能够在受害者设备上创建恶意网络接口,重新配置 IP 路由,并强制设备通过恶意网络接口传输所有通信。此攻击不需要任何用户交互、身份验证或配对,使其几乎不可见。 针对 Windows 的 BlueBorne 攻击
我们披露了 Windows 中的一个漏洞,允许攻击者进行中间人攻击。
演示 Windows 蓝牙菠萝 #2 – 中间人攻击 (CVE-2017-8628)
该漏洞与 Android 操作系统中发现的漏洞相同,并且影响两个系统,因为它们在实现蓝牙协议的某些部分时共享相同原则。该漏洞位于蓝牙协议栈中,使攻击者能够在受害者设备上创建恶意网络接口,重新配置 IP 路由,并强制设备通过该接口传输所有通信。此攻击不需要任何用户交互、身份验证或配对,使其也几乎不可见。 针对 Linux 的 BlueBorne 攻击
Armis 披露了 Linux 操作系统中的两个漏洞,允许攻击者完全控制受感染设备。第一个是信息泄露漏洞,可帮助攻击者确定目标设备使用的确切版本并相应调整其漏洞利用程序。第二个是堆栈溢出,可能导致完全控制设备。
演示 Linux 信息泄露漏洞 (CVE-2017-1000250)
与 Android 中的信息泄露漏洞类似,此漏洞位于 SDP 服务器中,该服务器负责识别周围使用蓝牙的其他服务。该漏洞允许攻击者向服务器发送一组精心制作的请求,导致服务器在响应中泄露内存位。攻击者可以利用此漏洞暴露蓝牙进程中的敏感数据,其中可能还包含蓝牙通信的加密密钥。攻击者可以使用这些密钥发起非常类似于 Heartbleed 的攻击。 BlueZ 中的堆栈溢出 (CVE-2017-1000251)
该漏洞位于 Linux 内核的蓝牙协议栈中,这是操作系统的核心。用于连接两个设备的 L2CAP(逻辑链路控制和适配协议)内部缺陷导致内存损坏。攻击者可以利用此内存损坏获得对设备的完全控制。 针对 iOS 的 BlueBorne 攻击
Armis 发现的此漏洞已披露给 Apple。由于它在 iOS 10 和 Apple TV 版本 7.2.2 以上版本中已得到缓解,因此未开发完整的漏洞利用程序来演示如何利用此漏洞获得对 iOS 设备的完全控制。然而,此漏洞仍对任何低于 10 版本的 iOS 设备构成巨大风险,因为它不需要用户的任何交互或目标设备上的任何配置。攻击者可以利用该漏洞在高权限上下文(蓝牙进程)中获取远程代码执行。 通过 Apple 的低功耗音频协议远程代码执行 – CVE-2017-14315
该漏洞发现于 Apple 发明的一个新协议,该协议运行在蓝牙之上,称为 LEAP(低功耗音频协议)。该协议旨在将音频流式传输到低功耗音频外设(例如低功耗耳机或 Siri Remote)。这使得仅具有蓝牙低功耗的设备能够传输音频和发送音频命令。由于 LEAP 实现中的缺陷,可以向目标设备发送大型音频命令并导致内存损坏。由于通过 LEAP 发送的音频命令未正确验证,攻击者可以利用内存损坏获得对设备的完全控制。 防御 BlueBorne
能够通过空气传播并在设备之间传播的漏洞对任何组织或个人构成巨大威胁。当前的安全措施,包括端点保护、移动数据管理、防火墙和网络安全解决方案,并非为识别这类攻击及相关漏洞和利用而设计,因为它们的主要重点是阻止可通过 IP 连接传播的攻击。需要新的解决方案来应对这种新型空中攻击向量,尤其是那些让空气隔离失效的攻击。此外,随着消费者和企业都在使用新的协议,需要更多的关注和研究。随着桌面、移动和物联网设备数量不断增加,确保这些类型的漏洞不被利用至关重要。这是Armis在这个新互联时代的主要使命。
运行前,请确保已安装pybluez和pwntools。
sudo apt-get install bluetooth libbluetooth-dev
sudo pip install pybluez
sudo pip install pwntools
视频:
关注我: