Blueborne - 攻击场景说明

信息安全 开发 开发开发 蓝本
2021-08-27 13:58:39

基于技术白皮书

http://go.armis.com/hubfs/BlueBorne%20Technical%20White%20Paper-1.pdf?t=1505319664351

看完后我的理解如下(第13页,下)

因此要利用(Linux 内核 RCE 漏洞 - CVE-2017-1000251),有两个攻击者攻击者和受害者

1) 攻击者发送带有 EFS 元素的配置请求,其中 stype 设置为 L2CAP_SERV_NOTRAFIC

2) 攻击者发送结果字段设置为 L2CAP_CONF_PENDING 的配置响应和可能重复的参数,例如许多 MTU 值,以触发堆栈溢出

我很困惑,因为我认为受害者应该根据攻击者的配置请求发送配置响应,但在论文中它是如上所述的。

这个对吗?我看错了吗?有人可以解释/纠正我吗?

谢谢,

更新1:

当它帮助某人时,这里是一个 Conf Request Wireshark 跟踪。

有这 2 个适配器

客户端 - 00:1A:7D:DA:71:13

服务器 - 34:F3:9A:10:52:C9

在这里,我与客户一起将 MTU 设置为 2000

./l2cap-client 00:1A:7D:DA:71:13
mtu: ok

./l2cap-server 
accepted connection from 34:F3:9A:10:52:C9

在此处输入图像描述

有人可以解释一下吗?我有 TCP/IP 背景....

localhost() 是什么意思?

为什么它从 localhost() 发送到客户端 (Conf req) 而不是从客户端发送到 localhost() (Redvd Conf Req) 而不是服务器发送到 localhost() (Recvd Conf Req) 而不是从 localhost() 发送到服务器 (Sent Conf Response)发送并在最后客户端和服务器发送到 localhost() Recv Conf Response - 成功?

更新 2:

发现这一点,基于此,每个设备都应该发送一个 Conf Request,每个请求都应该收到一个 Conf Response。

L2CAP 通道建立

为什么它看起来比我的 Wireshark 跟踪中的那么奇怪?

更新 3:

好吧,我想,我想通了......

攻击者

发送:

发送配置请求 (DCID: 0x0040)

攻击者发送带有 EFS 元素且 stype 设置为 L2CAP_SERV_NOTRAFIC 的配置请求

同时收到对方的conf请求:

Rcvd 配置请求 (DCID: 0x0040)

发送:

攻击者发送结果字段设置为 L2CAP_CONF_PENDING 的配置响应和可能重复的参数,例如许多 MTU 值,以触发堆栈溢出

更新 4:

进入下一步......制作框架,如果有人对 SO 感兴趣,这是我的下一个问题:

https://stackoverflow.com/questions/46317365/bluetooth-reply-data-frame-using-l2test

1个回答

Linux 使用 Bluz 实现蓝牙堆栈,将蓝牙集成到通用套接字通信中。因此,您可以使用传统的套接字机制与蓝牙设备进行通信。更多细节在这里:https ://people.csail.mit.edu/albert/bluez-intro/x559.html