Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
openhaystack — 今天就打造你自己的“AirTags”🏷!通过苹果庞大的 Find My 网络追踪个人蓝牙设备的框架。 | Kitploit
工具/GitHubGitHub/seemoo-lab/openhaystack
蓝牙安全逆向工程无线安全密码学隐私保护硬件与物联网安全论文与研究学习与教育
GitHubseemoo-lab/openhaystack

openhaystack

今天就打造你自己的“AirTags”🏷!通过苹果庞大的 Find My 网络追踪个人蓝牙设备的框架。

查看仓库
13.2k668672个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

OpenHaystack 应用程序图标 OpenHaystack

OpenHaystack 是一个通过 Apple 庞大的“查找”网络追踪个人蓝牙设备的框架。你可以用它创建自己的追踪 标签,将其附加到实体物品上(钥匙扣、背包……),或将其集成到其他支持蓝牙的设备(如笔记本电脑)中。

应用程序截图

目录

  • 什么是 OpenHaystack?
    • 历史
    • 免责声明
  • 如何使用 OpenHaystack?
    • 系统要求
    • 安装
    • 使用
  • Apple 的“查找”网络如何工作?
    • 配对
    • 丢失
    • 查找
    • 搜索
  • 如何追踪其他蓝牙设备?
  • OpenHaystack 移动版
  • 作者
  • 参考文献
  • 许可证

什么是 OpenHaystack?

OpenHaystack 是一个应用程序,允许你创建由 Apple “查找”网络追踪的自定义配件。你只需要一台 Mac 和一个 BBC micro:bit 或任何其他支持蓝牙的设备。 通过使用该应用,你可以在全球任何地方追踪你的配件,即使没有蜂窝网络覆盖。附近的 iPhone 会发现你的配件,并在有网络连接时将其位置上传到 Apple 的服务器。

历史

OpenHaystack 是对 Apple “查找”网络(或称 离线查找)进行逆向工程和安全分析工作的成果。我们达姆施塔特工业大学安全移动网络实验室在 2019 年 6 月离线查找功能首次发布后便开始对其进行分析。通过这项工作,我们弄清了 Apple 设备如何被 iPhone 设备发现,即使它们处于离线状态。整个系统巧妙地结合了蓝牙广播、公钥密码学和加密位置报告的中央数据库。我们公开了离线查找中闭源部分的规范,并进行了全面的安全与隐私分析。 我们发现了两个不同的漏洞。其中最严重的一个允许恶意应用程序访问位置数据,目前已被 Apple 修复(CVE-2020-9986)。 有关安全分析的更多信息,请阅读我们的论文。 自发布以来,我们获得了相当多的媒体报道和新闻关注。

免责声明

OpenHaystack 是实验性软件。代码未经测试且不完整。例如,使用我们固件的 OpenHaystack 配件会广播固定的公钥,因此可被附近的其他设备追踪(这在未来版本中可能会改变)。OpenHaystack 与 Apple Inc. 无关联,也未获得其认可。

如何使用 OpenHaystack?

OpenHaystack 由两个组件组成。首先,我们提供了一个 macOS 应用程序,可以显示你个人蓝牙设备最后报告的位置。其次,固件镜像使蓝牙设备能够广播信标,从而被 iPhone 发现。

系统要求

OpenHaystack 需要 macOS 11(Big Sur)。

安装

OpenHaystack 应用程序需要为 Apple Mail 安装一个自定义插件。它用于通过私有 API 从 Apple 的服务器下载位置报告(技术说明:该插件继承了使用此 API 所需的 Apple Mail 权限)。 因此,安装过程略有不同,需要你临时禁用 Gatekeeper。 我们的插件不会访问任何其他私有数据(例如电子邮件)(参见源代码)。

  1. 从我们的 GitHub 页面下载预编译的二进制版本。
    备选方案: 通过 Xcode 从源代码构建应用程序。
  2. 打开 OpenHaystack。它会要求你将 Mail 插件安装到 ~/Library/Mail/Bundle。
  3. 打开终端并运行 sudo spctl --master-disable,这将禁用 Gatekeeper 并允许我们的 Apple Mail 插件运行。
  4. 打开 Apple Mail。转到 偏好设置 → 通用 → 管理插件...,并勾选 OpenHaystackMail.mailbundle 旁边的复选框。
    • 如果 管理插件... 按钮没有出现,请在终端中运行此命令 sudo defaults write "/Library/Preferences/com.apple.mail" EnableBundles 1
  5. 允许访问并重新启动 Mail。
  6. 打开终端并输入 sudo spctl --master-enable,这将重新启用 Gatekeeper。

使用方法

添加新配件。 要创建新配件,你只需为其输入一个名称,并可选地选择合适的图标和颜色。然后,应用程序会生成一个新的密钥对,用于加密和解密位置报告。私钥存储在你 Mac 的钥匙串中。

部署到设备。 通过 USB 将受支持的设备连接到你的 Mac,点击配件名称旁边的 部署 按钮并选择相应的设备。 除了使用 OpenHaystack 的集成部署功能外,你也可以复制用于广播的公钥(右键点击配件)并手动部署。

显示设备的位置。 可能需要长达 30 分钟,你才能在右侧的地图上看到第一条位置报告。地图将始终显示你所有物品的最新位置。你可以点击每个物品来查看最后一次更新是何时收到的。 点击重新加载按钮,你可以更新位置报告。

Apple 的“查找”网络是如何工作的?

我们简要说明 Apple 的离线查找系统(又称 查找我的网络)。更多细节请参阅我们的 PETS 论文和 Apple 的配件规范。我们在下面提供了示意图概览(来自我们的论文),并说明我们如何在 OpenHaystack 中整合各个步骤。

查找我的概览

配对 (1)

要使用 Apple 的查找我的网络,我们在椭圆曲线(P-224)上生成一个公私钥对。私钥保留在 Mac 上,安全地存储在钥匙串中,公钥则部署在配件上,例如连接的 micro:bit。

丢失 (2)

简而言之,配件将公钥作为蓝牙低功耗(BLE)广播发送(参见固件)。 附近的 iPhone 将无法将我们的配件与真正的 Apple 设备或认证配件区分开来。

查找 (3)

当附近的 iPhone 收到 BLE 广播时,iPhone 会通过 GPS 获取其当前位置,使用广播中的公钥对其进行加密,并将加密的报告上传到 Apple 的服务器。 iOS 13 或更高版本的所有 iPhone 默认都会这样做。OpenHaystack 不参与此步骤。

搜索 (4)

Apple 不知道哪些加密位置属于哪个 Apple 账户或设备。因此,只要知道相应的公钥,每个 Apple 用户都可以下载任意位置报告。这不是安全问题:所有报告都经过端到端加密,除非知道相应的私钥(存储在钥匙串中),否则无法解密。我们利用这一特性,从 Apple 下载为我们的 OpenHaystack 配件创建的报告。我们使用私钥解密位置报告,并在地图上显示最新的一份。

Apple 要求经过身份验证的 Apple 用户才能下载位置报告,以此保护其数据库免受任意访问。 我们使用以提升权限运行的 Apple Mail 插件来获取所需的身份验证信息。OpenHaystack 应用在下载报告时与该插件通信。这就是使用 OpenHaystack 时需要保持 Mail 打开的原因。

如何追踪其他蓝牙设备?

原则上,任何蓝牙设备都可以变成可通过 Apple 的 Find My 网络追踪的 OpenHaystack 配件。 目前,我们为少量嵌入式设备(见下表)提供了便捷的 OpenHaystack 固件部署方法。我们还通过通用 HCI 脚本支持 Linux 设备。 欢迎基于我们固件的源代码和我们论文中的规范,将 OpenHaystack 移植到其他支持低功耗蓝牙的设备上。请与我们分享你的成果!

平台测试于通过应用部署备注
Nordic nRF51BBC micro:bit v1✓目前仅支持 nRF51822(见 issue #6)。
Espressif ESP32SP32-WROOM, ESP32-WROVER✓部署最多可能需要 3 分钟。需要 Python 3。感谢 @fhessel。
Linux HCIRaspberry Pi 4 w/ Raspbian应支持任何 Linux 机器。

Setup

OpenHaystack Mobile

OpenHaystack Mobile 是 OpenHaystack macOS 应用程序面向智能手机的完整重新实现。该应用提供相同的创建和追踪配件功能,旨在提高易用性,尤其是对新用户而言。与 macOS 应用程序不同,位置报告无法直接在智能手机上获取,因此该应用需要一台托管在 Mac 硬件上的代理服务器来访问 Find My 网络。多个用户可以同时通过网络访问该代理服务器。

要连接到你的代理服务器,请在以下位置设置正确的 URL:openhaystack-mobile/lib/findMy/reports_fetcher.dart

OpenHaystack Mobile 使用跨平台的 Flutter 框架构建,目前可在 Android 和 iOS 上运行。有关该应用及使用说明的更多信息,请参见本仓库的 openhaystack-mobile 文件夹。

作者

  • Alexander Heinrich(@Sn0wfreezeDev,电子邮件)
  • Milan Stute(@schmittner,电子邮件,网站)

参考文献

  • Alexander Heinrich、Milan Stute、Tim Kornhuber、Matthias Hollick。谁能_找到我的_设备?苹果众包蓝牙位置追踪系统的安全与隐私。《隐私增强技术学报》(PoPETs),2021 年。doi:10.2478/popets-2021-0045 📄 论文 📄 预印本。
  • Alexander Heinrich、Milan Stute 和 Matthias Hollick。**演示:OpenHaystack:通过苹果庞大的“查找”网络追踪个人蓝牙设备的框架。**第 14 届 ACM 无线与移动安全与隐私会议(WiSec ’21),2021 年。
  • Tim Kornhuber。**苹果众包位置追踪系统分析。**达姆施塔特工业大学,硕士论文,2020 年。
  • Apple Inc. **“查找”网络配件规范——开发者预览版——R3 版本。**2020 年。📄 下载。

许可证

OpenHaystack 依据 GNU Affero 通用公共许可证 v3.0 授权。

下载工具