用户
搜索
  • TA的每日心情

    3 天前
  • 签到天数: 37 天

    连续签到: 1 天

    [LV.5]常住居民I

    版主

    W3bSafeTeam

    Rank: 7Rank: 7Rank: 7

    15

    主题

    84

    帖子

    331

    魔法币
    收听
    0
    粉丝
    4
    注册时间
    2017-6-30

    i春秋认证秦楚燕魏齐赵春秋文阁春秋游侠积极活跃奖i春秋签约作者核心白帽

    发表于 2020-4-21 14:28:56 62375
    本帖最后由 ID_Angel 于 2020-7-6 16:44 编辑

    本文原创作者 Angel,本文非i春秋平台首发,未经许可禁止转载!



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

    前言:最近很多粉丝问我知不知道USBninjia?能不能让我出一篇关于USBninjia DIY的文章。其实我感觉这个难度挺大的。原因有几点:第一,我没钱买这个东西。第二,就算我有钱买了我也不能给他拆了看看里面啥样,我是学生党,万一坏了几百块钱就没了。第三,抄别人的板子这并不是一件什么很光彩的事情,丢人。秉承着这些原因,我也查了很多资料,最终决定把设计猜想分享出来。所以这篇文章只会给大家描述类似USBNinja线缆部分的电路原理与实现,并不会给出USBNinja线缆部分与遥控器部分具体的电路设计(PCB)。希望大家能够理解。

    0x01 USBninja简介

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

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

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

    GXMmDO.png

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

    GXMMUH.png

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

    GXMQ5d.md.png

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

    这就是我目前所看到的关于USBninja的特征,毕竟手上没有实物。只能暂时先给大家分析到这里了。如果有哪些不对的地方,请大家及时联系我。

    0x02 基本的设计思路

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

    PCB

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

    IC

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

    QFN

    GXMdaQ.png

    SOP

    GXMw5j.png

    无线部分

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

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

    耗材部分

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

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

    USB切换

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

    GXMzRI.png

    GXQSzt.png
    GXQZJs.png

    当给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 确实很小

    GXlf3R.md.png

    最终设计原理图(没有考虑滤波等)
    GX1zW9.md.png
    GXlruV.md.png
    GXlgN4.md.png
    GX3kdO.png

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

    0x04 结束语

    毕竟本人手里没有USBninja,这篇文章都是自己意yin出来的。如果有哪些写的不对的地方。希望各位大佬指出,笔者会加以改正的。在此我非常感谢USBNinja官方提供了开源的软件资料。

    另外打个广告:笔者今年实习,请问有没有哪家企业要啊。

    本帖被以下淘专辑推荐:

    W3bSafe Team 信息安全从未止步 官网:http://www.w3bsafe.cn
    本人业务微信:A2gel-
    发表于 2020-4-21 15:02:53
    使用道具 举报 回复
    谢谢大佬
    使用道具 举报 回复
    发表于 2020-4-27 14:00:33
    挺详细的
    使用道具 举报 回复
    发表于 2020-6-23 01:53:31
    写的真好,一直搞不懂是怎么缩的这么小的,原来是fpc的板子。
    使用道具 举报 回复
    发表于 2020-6-30 17:13:41
    PushEAX 发表于 2020-6-23 01:53
    写的真好,一直搞不懂是怎么缩的这么小的,原来是fpc的板子。

    感谢支持
    W3bSafe Team 信息安全从未止步 官网:http://www.w3bsafe.cn
    本人业务微信:A2gel-
    使用道具 举报 回复
    发表于 2020-8-4 16:41:01
    好帅
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册