USBninja(数据线版BadUSB)的设计方法与猜想

  • A+
所属分类:安全闲碎

USBninja(数据线版BadUSB)的设计方法与猜想

0x01 USBninja简介

这是一个由国内硬件安全圈子的前辈制作并在国外发售的一款WHID injection的硬件工具。不在国内发售的原因太多了,多半是怕抄。因为这种东西软件部分基本都是开源的。硬件就算不开源,一般人拿到硬件产品直接抄板就能做出来。一般一个电子产品研发是需要成本的,包含硬件成本以及软件成本。这种硬件其实也不例外。毕竟谁都想把自己设计出来的硬件卖个好价钱。Proxmark3这种东西就是一个比较血淋淋的例子,在国内发售没多久。就被一些不要脸的人给抄了。拉低了价格,导致正版的Proxmark3在国内的价格被迫拉低,于是Proxmark3 RDV4就不在中国发售了,大家也就玩不到了。作者也是要吃饭的,没这么干的。开发不易,请支持正版!


USBninjia翻译过来就是USB忍者。实际上就是一个具有BADUSB功能的数据线。由我目前在油管上看到的官方宣传视频以及开源的软件资料上来看。这根数据线具备以下的几个特征。


1、这一根正常的数据线,插在电脑上是可以正常的与USB设备进行数据传输的。例如手机、MP3、笔记本电脑等。


USBninja(数据线版BadUSB)的设计方法与猜想


2、在进行HID攻击的过程中,这根数据线会断开与USB设备的连接,并开始进行HID攻击。进行HID攻击后,会自动的重新链接USB设备。(最开始我的猜想是进行HID攻击的同时不会影响数据的传输。我目前看油管上的视频是这样的而且开源的软件资料论证了这个结论)


USBninja(数据线版BadUSB)的设计方法与猜想


3、是由一个小型遥控器来控制的,按一下遥控器。这根数据线才会根据程序进行hid攻击,是由蓝牙进行无线控制的。


USBninja(数据线版BadUSB)的设计方法与猜想


4、也可以直接对USBNinja线缆进行编程,让这个线缆实现普通的HID攻击。甚至可以插上线以后过段时间在进行hid攻击。(从开源软件资料得出结论)

这就是我目前所看到的关于USBninja的特征,毕竟手上没有实物。只能暂时先给大家分析到这里了。

0x02 基本的设计思路

首先,我把USBninja的硬件设计分为五个部分:PCB部分、IC部分、无线部分、耗材部分、以及USB切换部分。

PCB

这种超小的电子产品代表他的集成度非常高。他要把很多的芯片,阻容等电子元件封装在USB的塑料里面。根据官方给出的一些资料,我们可以看出。这个USBninja超小且集成度超高的秘密就在于:PCB使用了FPC技术,也就是柔性技术。这种柔性技术不仅仅可以使PCB进行任意弯曲,而且他的厚度要远远的低于普通PCB的厚度。当然,这种PCB的加工价格也很不便宜。


USBninja(数据线版BadUSB)的设计方法与猜想

USBninja(数据线版BadUSB)的设计方法与猜想

IC

根据官方给出的软件资料,以及上图中漏了一小部分的IC。我们可以推断出:主要的核心微控制器。是ATTINY85芯片,封装为QFN封装。查阅官方数据手册可得知。ATTINY85确实分为SOP封装与QFN封装的两种,QFN封装确实要比SOP封装要小很多。


USBninja(数据线版BadUSB)的设计方法与猜想


QFN

USBninja(数据线版BadUSB)的设计方法与猜想


SOP

USBninja(数据线版BadUSB)的设计方法与猜想

无线部分

想要在FPC上设计高频电路,这是一个非常难的过程。而且笔者也是才疏学浅,不懂这个。但是笔者和大家都知道。这个无线部分的主芯片肯定是一个非常小的蓝牙soc,而且支持蓝牙串口功能(USBninja的开源软件资料内有)。经笔者查阅了一些相关资料,以及在德捷电子来回的翻阅。最终找到了一个合适的蓝牙soc:DA14580-01UNA
这个SOC可就厉害了。封装是WLCSP-34封装,及其精密。


USBninja(数据线版BadUSB)的设计方法与猜想

USBninja(数据线版BadUSB)的设计方法与猜想


显而易见,好是肯定好。小是肯定小,但是焊接难度要比BGA还要难。

耗材部分

首先我要感谢命运,让我活在了中国。中国在电子产品的领域,相对于其他国家来说还是比较便宜的。比如PCB设计,美国、英国、日本的工厂制造一个PCB价格非常的贵。以至于很多美国、日本、英国的DIY玩家。不惜万里,来中国的PCB工厂打样。这样,海外的人从设计开始到收货最少也是需要一个月才能拿到板子。可能还是样板,会有很多bug,又一个月。但是中国人,从设计到收货。基本7天就到了,非常快。

耗材无非就是 TYPEC公头、塑料壳、线缆以及USB公头这几样。某宝上还是蛮便宜的。


USBninja(数据线版BadUSB)的设计方法与猜想

USBninja(数据线版BadUSB)的设计方法与猜想


USB切换

如果USB ninja 仅仅是靠遥控器来切换USB设备的话,那么只要用一个USB模拟开关芯片即可实现对应的功能。
只要是芯片小就可以了。
推荐使用德州仪器的:TS3USB221芯片


USBninja(数据线版BadUSB)的设计方法与猜想


USBninja(数据线版BadUSB)的设计方法与猜想

USBninja(数据线版BadUSB)的设计方法与猜想

当给S极高电平时,USB HOST端会跟USB PORT 1导通。当给S极低电平时,USB HOST端会跟 USB PORT2导通.

数据线连电脑的那一端会接这个芯片的USB HOST端
ATTINY85 的数据端会接这个芯片的 USB PORT 1
数据线的另一端接这个芯片的 USB PORT2

0x03 USBninja的实现

首先我们要弄懂USBninja的实现原理:当遥控器给出TINY85需要进行HID攻击时。TINY85会先将开关芯片的S极拉高。使开关芯片把USBHOST切到TINY85上。TINY85进行HID攻击后再把开关芯片的S极拉低。让数据线恢复原有的功能。而USBnijia的升级刷写需要用一个小磁铁。其实是一个霍尔开关,这个霍尔开关用于控制USB模拟开关芯片的

蓝牙部分可以选用集成模块,我选用的是HJ580-XP 确实很小


USBninja(数据线版BadUSB)的设计方法与猜想


最终设计原理图(没有考虑滤波等)


USBninja(数据线版BadUSB)的设计方法与猜想


USBninja(数据线版BadUSB)的设计方法与猜想

USBninja(数据线版BadUSB)的设计方法与猜想

USBninja(数据线版BadUSB)的设计方法与猜想


自己DIY的话,硬件成本(算PCB+元件+数据线本身)一根大约在RMB 40-50左右。

0x04 结束语

毕竟本人手里没有USBninja。如果有哪些写的不对的地方。希望各位大佬指出,在此我非常感谢USBNinja官方提供了开源的软件资料。

USBninja(数据线版BadUSB)的设计方法与猜想

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: