前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用蓝牙从FUZE获取信用卡数据测试

利用蓝牙从FUZE获取信用卡数据测试

作者头像
FB客服
发布2018-07-30 15:05:25
1.2K0
发布2018-07-30 15:05:25
举报
文章被收录于专栏:FreeBuf

写在前面的话

这篇文章主要讨论关于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光扫描是最合适不过了。扫描到的结构图如下所示:

我们可以看到,主芯片是一个微型控制器、一个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的逆向分析结果如下:

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 ; 6. 输入设备显示的数字PIN码; 7. 断开连接:disconnect ;

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

  1. 启动gatttool:sudo gatttool -I -b ;
  2. 连接设备:connect;
  3. 订阅通知:char-write-req 1b 0100;
  4. 发送命令:char-write-req 18 ;

我们所发送的命令如下:

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

总结

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

* 参考来源:ice9,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面的话
    • FUZE卡介绍
      • X光扫描硬件结构
        • 蓝牙协议逆向分析
          • 逆向FUZE
        • 漏洞利用与PoC
          • 总结
          相关产品与服务
          物联网
          腾讯连连是腾讯云物联网全新商业品牌,它涵盖一站式物联网平台 IoT Explorer,连连官方微信小程序和配套的小程序 SDK、插件和开源 App,并整合腾讯云内优势产品能力,如大数据、音视频、AI等。同时,它打通腾讯系 C 端内容资源,如QQ音乐、微信支付、微保、微众银行、医疗健康等生态应用入口。提供覆盖“云-管-边-端”的物联网基础设施,面向“消费物联”和 “产业物联”两大赛道提供全方位的物联网产品和解决方案,助力企业高效实现数字化转型。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档