BadUSB的前世今生:USB RUBBER DUCKY和Teensy USB
一、介绍
前段时间翻译了有关BadUSB的两篇文章《解密BadUSB:世界上最邪恶的USB外设》和《研究人员公布BadUSB攻击测试(exploit)代码》,大家反应强烈,很多人都在打听BadUSB的实现方法,或者从那里可以买到这样的U盘。原本打算本周写一篇分析已公开的BadUSB利用代码,兑现一下诺言,但实在是抽不出时间。在此先给大家介绍一下BadUSB的“老前辈”:USB RUBBER DUCKY和Teensy,满足一下大家的好奇心。USB RUBBER DUCKY和Teensy都可用于实施HID模拟攻击,其中USB RUBBER DUCKY入手简单,傻瓜式操作,但价格不菲啊;而Teensy USB性价比比较高,也可用来制作各种酷炫的DIY。
二、USB RUBBER DUCKY(USB 橡皮鸭)
1.介绍
USB RUBBER DUCKY(USB 橡皮鸭)是最早的按键注入工具。自2010年以来,USB橡皮鸭就一直深受黑客、渗透测试人员以及IT专家的欢迎。USB 橡皮鸭最初作为一个IT自动化的POC,通过嵌入式开发板实现的,后来它发展成为一个成熟的商业化按键注入攻击平台。USB橡皮鸭通过简单的脚本语言、强大的硬件以及出色的伪装成功地俘获了黑客的“芳心”。(谁能想到这么可爱的大黄鸭却暗藏杀机)
不管是笔记本、台式机、平板以及智能手机,几乎每个计算机都通过键盘获得输入。这就是为什么会有一个无处不在的USB标准HID(人机接口设备)。任何一个宣称是键盘HID的设备都能够被大多数操作系统自动的探测和接入。不管它是Windows、Mac或Android系统,键盘就是老大。
Freebuf小科普
HID(Human Interface Device)人机接口设备类别是Windows最早支持的USB类别。由其名称可以了解HID设备是计算机直接与人交互的设备,例如键盘、鼠标和游戏杆等。不过HID设备不一定要有人机接口,只要符合HID类别规范,就都是HID设备。
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模拟攻击,我就不贴具体内容了,详情大家可以查看一下文章:
一个U盘黑掉你:HID攻击之TEENSY实战
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
[原文作者Rabbit_Run,喜欢文章请点赞鼓励。转载请注明来自FreeBuf.COM。免责声明:以上介绍的技术仅作为测试验证目的]
BadUSB的前世今生:USB RUBBER DUCKY和Teensy USB相关推荐
- 利用USB RUBBER DUCKY(USB 橡皮鸭)在目标机器上启动Empire或Meterpreter会话
今天我将教大家如何使用Rubber Ducky在渗透中建立Empire或Meterpreter会话连接.然而对于Ducky而言,想要完成大多数现实场景中的USB攻击,往往需要花费大量的时间去实践.本文 ...
- 10行代码DIY一个类USB Rubber Ducky来遥控自己电脑
文章目录 一.前言 二.完整代码 三.制作方法 四.实验结果 五.结语 一.前言 shineblink core 开发板(简称Core)能够很方便的变成USB Slave设备,并且内部集成HID协议, ...
- Rubber Ducky简介
USB Rubber Ducky是一款模仿人工键盘输入的设备,外形和U盘一样,模拟键盘输入速度可达到1000个字符每分钟,并且适合任何操作系统,包括安卓等移动OS,它使用的是它特定的脚本语言,用记事本 ...
- python判断sqlite连接状态_python3 自动识别usb连接状态,即对usb重连的判断方法
在做自动化测试时,遇到两种情况需要判断usb是否已连接上(注,本文仅针对用adb命令来control手机) 一种是在开测时(前提是同时要测试多台), 希望等待所有设备usb全部识别后同时进行测试.对于 ...
- usb 由于计算机限制,电脑usb被限制了怎么办
方法一,BIOS设置法 重新启动计算机,在开机过程中,点击键盘上的"Delete"键,进入BIOS设置界面,选择"Integrated Peripherals" ...
- otg usb 定位_详解USB OTG工作原理及其应用
原标题:详解USB OTG工作原理及其应用 1994年,Intel,Compaq等七家软硬件全球知名企业为了突破当时PC使用串口和并口传输速度的限制,成立了通用串行 开发者论坛( Implemente ...
- 将ARM4412开发板配置成USB网卡,并且使用USB通过Ubuntu上网
注:以下配置在三星s4手机也成功测试通过,可以ping通外网ip和域名,但是浏览器不能上网. 1. 开发板4412 linux内核配置 4412需要安装USB Gadget驱动g_ether.ko(d ...
- Linux usb bus日志如何打开,从linux usb bus节点来认识usb linux usb认识
首先从linux dmesg来认识usb: <6>[ 19.610046] msm_hsic_host msm_hsic_host: Qualcomm EHCI Host Contro ...
- java usb 无驱打印_Windows Usb 无驱动打印
\?\USB#VID_8866&PID_0100#0001B0000000#{a5dcbf10-6530-11d2-901f-00c04fb951ed} USB小票打印解决办法 一.需要驱动, ...
最新文章
- 字符串数组-获取两个字符串中最大的相同子串(最大相同子串有且只有一个)
- lab2_selenium测试
- 自编码器Autoencoders
- 两个小工具,MySQL死锁分析,新技能又Get!!!
- jupyter 接受参数
- rest spring_Spring的REST服务发现性,第5部分
- idea 生成sdk_如何安装独立的Android SDK,然后将其添加到Windows上的IntelliJ IDEA?
- 楼天成 中国大学生编程第一人
- python字符串长度_在python中如何获取字符串的长度
- word2013、word2016、word2019标题序号变黑色竖线解决方法
- 基于 SPI 的增强式插件框架设计
- C语言10.10,查找英文的星期几
- 逆序整数求和C语言,c语言 数字逆序相加
- vue引入svg图片
- 【工作笔记】微信公众号页面摇一摇+触发音效
- 已有企业认证的微信公众号快速创建一个企业小程序
- 百度apistore第三方登陆
- PDF转WORD为什么这么难
- Browser 浏览器内核
- 本主题的评论还有不足之处,还望海涵
热门文章
- 2021款途锐噪音测试软件,试驾2021款大众途锐:这才是原汁原味的德国沃尔夫斯堡的味道...
- 丰田chr内外循环怎么区分_从奕泽/C-HR的这些细节 我已经看出南北丰田的差异在哪里...
- Linux添加IP黑名单
- LLVM IR 语法
- Kony 如何获取Android context
- 菜鸟的MySQL学习之旅(二)—查询语句
- k8s 中部署kafka集群
- WordPress免费正版图片插件——Pixabay Free Images
- ceph---luminous版的安装
- 【NPM】ubuntu20.04安装npm