BadUSB的前世今生:USB RUBBER DUCKY和Teensy USB

一、介绍

大家反应强烈,很多人都在打听BadUSB的实现方法,或者从那里可以买到这样的U盘。原本打算本周写一篇分析已公开的BadUSB利用代码,兑现一下诺言,但实在是抽不出时间。在此先给大家介绍一下BadUSB的“老前辈”: USB RUBBER DUCKY 和 Teensy ,满足一下大家的好奇心。

二、USB RUBBER DUCKY(USB 橡皮鸭)

1.介绍

USB RUBBER DUCKY(USB 橡皮鸭)是最早的按键注入工具。自2010年以来,USB橡皮鸭就一直深受黑客、渗透测试人员以及IT专家的欢迎。USB 橡皮鸭最初作为一个IT自动化概念验证(POC),通过嵌入式开发板实现的,后来它发展成为一个完全成熟的商业化按键注入攻击平台。USB橡皮鸭通过简单的脚本语言、强大的硬件以及出色的伪装成功俘获了黑客的“芳心”。(谁能想到这么可爱的大黄鸭)

不管是笔记本、台式机、平板以及智能手机,几乎每个计算机都通过键盘获得输入。这就是为什么会有一个无处不在的USB标准HID或人机接口设备(Human Interface Device)。任何一个宣称是一个键盘HID的设备都能够被大多当前操作系统自动的探测和接入。不管它是Windows、Mac或安卓设备,键盘就是老大。

Freebuf小科普

USB橡皮鸭的名字和背后的原理都源自美国一句俗语 “ If it looks like a duck,quacks like a duck and walks like a duck,it's a duck” (意思就是如果走路和叫声都像鸭子,那就是鸭子)。人类使用键盘,而计算机相信人类,进而推论出计算机相信键盘。结合计算机对键盘的固有信任和速度超1000字/分钟的脚本模拟按键,传统的安全对策都能够被USB橡皮鸭轻易的绕过,即 HID模拟攻击

2.特点

1).简单易用的脚本语言

USB 橡皮鸭所使用的脚本语言Duckyscript简单易用,编写payload并不需要任何编程经验。而且现支持在线定制Payload: http://www.ducktoolkit.com/Home.jsp 。只需要简单三个步骤,就创建功能强大的Payload:

USB 橡皮鸭已有的Payload模块如下表所示:

2).功能强大的定制硬件

USB 橡皮鸭使用自定制的硬件设备,具有更大的处理能力和功能性多样化,硬件当然是收费的——39.99$。

硬件特点:

①快速的60MHZ 32位处理器

②便捷的Type A USB连接器

③可通过Micro SD卡扩展内存

④隐藏在不起眼的外壳中

⑤内置载荷重按钮

3).跨平台特性

不管是Windows、Linux、Mac还是Android(当然是不算触摸屏了),各个系统平台所遵守的USB标准都是一致的。所以USB RUBBER DUCKY自然而然就具有了跨平台的特点。

4).活跃的交流社区

USB RUBBER DUCKY拥有自己社区版固件、编码器以及工具箱,具有良好的交流沟通平台:

https://forums.hak5.org/index.php?/forum/56-usb-rubber-ducky/

3.攻击测试步骤

①下载网站生成的inject.bin载荷文件;

②把文件microSD卡的根目录;

③把microSD卡插入到USB橡皮鸭

④在USB橡皮鸭插入到目标系统中

⑤当看到命令提示窗口时,移除USB橡皮鸭;

三、Teensy USB

Teensy是一个完整的基于USB微控制器开发系统,在占用极少资源的情况下可以实现多种多样的项目。所有的编程都是通过USB端口进行的。不需要特殊的编程器,只需要一个标准的Mini-B USB线缆、一台带有USB口的PC机或Macintosh机。

主要特点

①可以变身为任意类型的设备

②AVR处理器,16 MHz

③单按钮编程

④易于使用的Teensy Loader应用程序

⑤免费软件开发工具

⑥兼容Mac OS X,Linux和Windows

⑦便携,许多项目的完美支持

⑧使用标签面包板

⑨非常低的成本

你可能问我Teensy能干什么?我会说,你应该问我Teensy不能干什么!,装X必备的神器之一。

关于Teensy如何实现HID模拟攻击,我就不贴具体内容了,详情大家可以查看一下文章:

  1. 一个U盘黑掉你:HID攻击之TEENSY实战
  2. Teensy HID新型攻击方式(Kautilya渗透测试套件)

四、总结

HID(Human Interface Devices) 攻击当前不流行,但是攻击方式很新颖,实用性很高,危险系数应该还是比较高的,值得研究。BadUSB公布的利用代码借鉴了以上介绍的两个项目中的一些思路,但这两个项目和BadUSB还是有比较大的区别:

①USB RUBBER DUCKY和Teensy都需要定制的硬件设备,通用性差,而BadUSB针对的是通用的USB设备;

②USB RUBBER DUCKY和Teensy不能够自动复制传播,仅实现了从USB设备->计算机的单向感染途径,缺少计算机->USB设备的感染途径,仅适用于定点攻击(Targeted attack),危害程度大大削弱;

③USB RUBBER DUCKY和Teensy都可以实现HID模拟攻击,尚未实现插入恶意代码的功能;

参考链接:

  1. USB Rubber Ducky主页: http://192.64.85.110/index.php

2.Teensy USB Development Board: http://www.pjrc.com/teensy/

3.一个U盘黑掉你:HID攻击之TEENSY实战:http://sec.chinabyte.com/410/13056910.shtml

4.Teensy HID新型攻击方式(Kautilya渗透测试套件)http://www.xocoder.com/archives/1328