利用蓝牙从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光扫描是最合适不过了。扫描到的结构图如下所示:

我们可以看到,主芯片是一个微型控制器、一个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

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-04-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏ChaMd5安全团队

RFIDHacKing频射硬件入门

RFIDHacKing频射硬件入门 From ChaMd5安全团队核心成员 MAX丶 鉴于硬件安全对于大多数新人是较少接触的,而这方面又非常吸...

3869
来自专栏FreeBuf

从安全漏洞看印度国家银行APP为何“技术落后10年”

2007年的时候,我在印度最大的国有银行中的一家注册了一个账号,这个国家的银行(政府或者民营)普遍所使用的技术与当前水平相比至少落后了10年。 2015年末,我...

2097
来自专栏数据和云

DBA生存警示:主备环境误操作案例及防范建议

编辑手记:对于资深的老DBA们,他们在漫长的职业生涯中养成了很多稀奇古怪的守则,以在复杂多变的环境中“幸存”,这源于无数血泪的教训,我曾经在《数据安全警示录》...

3557
来自专栏林德熙的博客

win10 uwp ping

有时需要进行 ping ,但是ms没有给一个类可以进行 ping 本文:如何使用 ping

921
来自专栏FreeBuf

安全从业人员常用工具指引

简介 一直以来嫌麻烦没注册freebuf,总是以游客的身份在看一些东西,今天特此注册了一下,首先要表扬一下freebuf,安全验证比较给力,其次感谢平台收集并整...

5307
来自专栏魏艾斯博客www.vpsss.net

Siteground注册购买图文教程

Siteground是美国有名的主机商家,经过魏艾斯博客和朋友们几个月的使用,感觉Siteground在稳定性、速度、操作上比较的方便易用,所以写下本文把这个好...

4002
来自专栏魏艾斯博客www.vpsss.net

Vultr 注册购买图文教程

1.8K3
来自专栏云计算D1net

如何使用PaaS作为安全控制的试验平台

美国商务部国家标准与技术研究所(NIST)在2014年12月发布了特别出版物800-53A修订版4,概述了高级信息系统安全官(ISSO)和信息系统所有者(ISO...

3336
来自专栏FreeBuf

技术讨论 | 一次尚未完成的薅羊毛行动

一、背景 XX眼镜,免费领取日抛5日装隐形眼镜活动,发现接收到的手机验证码为4位数字,看到4位验证码时就觉得有搞头。 顺便祝我伦生日快乐,等你下课~ 二、技术手...

2239
来自专栏bboysoul

使用esp8266制作wifi干扰器

这个东西,说真的对现在的无线网络环境影响其实不是很大了,首先它只能玩2.4ghz的无线,其次这个模块不是特别的可靠,运行的时候温度会很高,买来玩玩还是可以的

1403

扫码关注云+社区

领取腾讯云代金券