Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/mikeryan/crackle
蓝牙安全加密/解密工具漏洞利用无线安全密码学
GitHubmikeryan/crackle

crackle

破解并解密BLE加密

查看仓库
9671355年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

crackle

crackle 破解 BLE 加密(又称蓝牙智能)。

crackle 利用 BLE 配对过程中的一个缺陷,允许攻击者猜测或非常快速地暴力破解 TK(临时密钥)。利用 TK 以及从配对过程中收集的其他数据,可以获取 STK(短期密钥),进而获取 LTK(长期密钥)。

有了 STK 和 LTK,主设备和从设备之间的所有通信都可以被解密。

在尝试使用 crackle 之前,请查阅常见问题,以确定它是否适合您的情况。

crackle 由 Mike Ryan [email protected] 编写。 更多信息请访问网站: http://lacklustre.net/projects/crackle/

构建状态

目录

  • 操作模式
    • 破解 TK
    • 使用 LTK 解密
  • 运行 crackle
  • 示例文件
  • 常见问题
  • 参见
  • 致谢

操作模式

crackle 有两种主要操作模式:破解 TK 和使用 LTK 解密。

破解 TK

这是使用 -i 提供输入文件时的默认模式。

在破解 TK 模式下,crackle 暴力破解 BLE 配对过程中使用的 TK。crackle 利用了这样一个事实:在 Just Works™ 模式和 6 位 PIN 码中,TK 是一个范围在 [0, 999999] 内的值,并填充至 128 位。

crackle 采用多种方法执行此暴力破解:如果输入文件中包含所有配对数据包,则使用非常快速的方法;如果仅包含最少的一组数据包,则使用较慢的方法。

要使用此模式,请使用包含一个或多个具有 BLE 配对会话的连接的输入 PCAP 或 PcapNG 文件启动 crackle。crackle 将分析所有连接,确定是否可以破解给定连接,并自动选择最佳策略来破解每个连接。

如果 TK 成功破解,crackle 将推导出用于加密其余连接的剩余密钥,并解密之后任何加密的数据包。如果交换了 LTK(通常在建立加密后执行的第一项操作),crackle 会将该值输出到标准输出。LTK 可用于解密两个端点之间的任何未来通信。

使用 -o 为 crackle 提供输出文件,以创建一个包含解密数据(以及已经未加密的数据)的新 PCAP 文件。

示例用法:

root@kitploit:~
$ crackle -i input.pcap -o decrypted.pcap

使用 LTK 解密

在使用 LTK 解密模式下,crackle 使用用户提供的 LTK 来解密主设备和从设备之间的通信。此模式与破解 TK 模式中的解密部分相同。

示例用法:

root@kitploit:~
$ crackle -i encrypted.pcap -o decrypted.pcap -l 81b06facd90fe7a6e9bbd9cee59736a7

运行 crackle

破解 TK 模式

在破解 TK 模式下,crackle 需要一个包含 BLE 配对事件的 PCAP 文件。生成此类文件的最佳方法是使用 Ubertooth 捕获主设备和从设备之间的配对事件。

要检查您的 PCAP 文件是否包含所有必要的数据包,请使用 -i 选项运行 crackle:

root@kitploit:~
crackle -i <file.pcap>

crackle 将分析输入文件中的每个连接,并将分析结果输出到标准输出。如果您拥有配对会话的所有组成部分,输出将如下所示:

root@kitploit:~
分析连接 0:
  xx:xx:xx:xx:xx:xx(公共地址)-> yy:yy:yy:yy:yy:yy(公共地址)
  找到 13 个加密数据包

  使用策略 0 破解,20 位熵

  !!!
  TK 发现:412741
  !!!

  解密了 12 个数据包
  LTK 发现:81b06facd90fe7a6e9bbd9cee59736a7

请使用 -o 指定输出文件以解密数据包!

要解密所有数据包,请添加 -o 选项:

root@kitploit:~
crackle -i <file.pcap> -o <output.pcap>

输出文件将包含原始 PCAP 中所有加密数据包的解密版本,以及所有未加密的数据包。请注意,CRC 不会重新计算,因此解密数据包的 CRC 将不正确。

使用 LTK 解密

在使用 LTK 解密模式下,crackle 需要一个至少包含 LL_ENC_REQ 和 LL_ENC_RSP 数据包以及用于加密通信的 LTK 的 PCAP 文件。

LTK 的格式是一个 128 位的十六进制数,没有空格或分隔符,从最高有效八位组到最低有效八位组。示例:

root@kitploit:~
-l 81b06facd90fe7a6e9bbd9cee59736a7

要检查您的 PCAP 文件是否包含所有必要的数据包,请使用 -i 和 -l 运行 crackle:

root@kitploit:~
crackle -i <file.pcap> -l <ltk>

如果您拥有这两个必需的数据包,程序应产生类似以下的输出:

root@kitploit:~
分析连接 0:
  xx:xx:xx:xx:xx:xx(公共地址)-> yy:yy:yy:yy:yy:yy(公共地址)
  找到 9 个加密数据包
  解密了 6 个数据包

请使用 -o 指定输出文件以解密数据包!

要解密所有数据包,请添加 -o 选项:

root@kitploit:~
crackle -i <file.pcap> -o <out.pcap> -l <ltk>

输出文件的生成方式与上述输出文件类似。

示例文件

tests 目录中包含的测试文件是使用 crackle 进行测试的有趣输入。请查看每个测试子目录中的 README 文件。

获取一些用于使用 crackle 进行破解的示例文件。有关更多信息,请参阅 tarball 中的 README:

https://lacklustre.net/bluetooth/crackle-sample.tgz

常见问题

我们已经整理了一份常见问题列表。

参见

  • Ubertooth:http://ubertooth.sourceforge.net/
  • libbtbb:http://libbtbb.sourceforge.net/
  • irc.freenode.net 上的 #ubertooth

致谢

衷心感谢 Ubertooth 项目的 Mike Ossmann 和 Dominic Spill。没有他们,这一切都不可能实现。

非常感谢 Kismet 的 Mike Kershaw/dragorn 在创建和处理 PCAP 文件方面的帮助。

感谢 irc.freenode.net 上 #ubertooth 频道的其他人。

下载工具