博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个U盘黑掉你:TEENSY实战
阅读量:4965 次
发布时间:2019-06-12

本文共 1952 字,大约阅读时间需要 6 分钟。

从传统意义讲,当你在电脑中插入一张CD/DVD光盘,或者插入一个USB设备时,可以通过自动播放来运行一个包含恶意的文件,不过自动播放功能被关闭时,autorun.inf文件就无法自动执行你的文件了。然而通过TEENSY,你可以模拟出一个键盘和鼠标,当你插入这个定制的USB设备时,电脑会识别为一个键盘,利用设备中的微处理器,与存储空间,和编程进去的攻击代码,就可以向主机发送控制命令,从而完全控制主机,无论自动播放是否开启,都可以成功。

HID攻击介绍

HIDHuman Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。不过HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。一般来讲针对HID的攻击主要集中在键盘鼠标上,因为只要控制了用户键盘,基本上就等于控制了用户的电脑。攻击者会把攻击隐藏在一个正常的鼠标键盘中,当用户将含有攻击向量的鼠标或键盘,插入电脑时,恶意代码会被加载并执行。

TEENSY介绍

攻击者在定制攻击设备时,会向USB设备中置入一个攻击芯片,此攻击芯片是一个非常小巧且功能完整的单片机开发系统,它的名字叫Teensy,它能够实现多种类型的项目开发和设计。Teensy为开源项目,任何有能力有技术的厂商都可以生产定制,其中PJRC是最优秀或者说商业化最好的生产商。

Teensy主要特点如下

AVR处理器,16 MHz

单个按键编程

易于使用的Teensy Loader应用程序

免费软件开发工具

兼容Mac OS XLinuxWindows

小尺寸,多项目的完美支持

开发环境的搭建

Teensy芯片进行开发,可以在Arduino中进行,不用担心枯燥的汇编与机器代码,因为Arduino IDE具有使用类似JavaC语言的Processing/Wiring开发环境。环境安装与搭建也非常便捷,可以从http://www.arduino.cc下载安装包,进行安装。

安装完Arduino IDE之后,还需要Teensy芯片的SDK支持库,支持库可以从如下地址获取http://www.pjrc.com/teensy/td_download.html。安装时需要选择Arduino IDE的安装路径,安装完成以后,还需要选择相应的开发板,我们这里应该选择Teensy2.0如图4所示,至此整体开发环境就搭建完成了。

4

BackTrack提取攻击代码

BackTrack中提供了Teensy的完整攻击实例,针对一般情况的测试与使用,是足够的,下面介绍一下攻击代码的提取方法。进入BackTrack5后进入到/pentest/exploits/set目录,如图5所示。

5

进入目录后执行./set会弹出一个新的菜单,请选择第一项Social-Engineering Attacks如图6所示。

6

在新的选择项中,选择Arduino-Based-Attack Vector选项(Arduino基础攻击向量)如图7所示。

7

选择Arduino基础攻击向量后,在新的选择中选择Wscript Http Get Msf Payload如图8所示。

8

在新的选项中输入一个恶意程序的下载地址,此代码功能为自动去指定的位置下载程序并自动执行。如图9所示。

9

最后所有的步骤执行完成后,会在reports目录中成一个名为teensy.pde的文件,如图10所示,此文件可以直接导入到Arduino中进行编译。

10

攻击代码实现

如上代码从setup开始执行,执行后自动键入tftp下载命令,并执行,最后运行下载的exe文件,omg函数是在开始运行中键入代码执行。关于每个API函数的详细介绍可以参考teensy提供的API手册,这里不再赘述。

攻击效果

代码编译后通过Arduino上传到Teensy芯片,把Teensy插入到电脑USB接口后,会自动打开,运行对话框,键入相应的命令并运行,其效果如图11所示。、

11

结束语

HID攻击对于大众来说还属于冷门,大众甚至不知道它的存在,防范更是无从谈起,但它的危害却是非常大的,USB设备的普及更是放大了它的邪恶,本文针对HID攻击的方法、原理、实现做了较为详细的描述,希望本文的介绍能让读者对HID攻击有一个更为清晰明了的认识。

[via@天融信阿尔法实验室冷风]

 

淘宝teensy简介文档下载

 

http://pan.baidu.com/share/link?shareid=480301&uk=925400948

转载于:https://www.cnblogs.com/h4ck0ne/p/5154640.html

你可能感兴趣的文章
Py 可能是最全面的 python 字符串拼接总结(带注释版)
查看>>
如何从亿量级中判断一个数是否存在?
查看>>
客户数据(类的调用)
查看>>
cookie session 和登录验证
查看>>
[译] 微前端
查看>>
iOS直播技术学习笔记 YUV颜色空间(六)
查看>>
移植Linux到ZYNQ
查看>>
记录--linux下mysql数据库问题
查看>>
转载--Java中的PO、DO、DTO、 VO的概念
查看>>
记录--js中出现的数组排序问题
查看>>
学习--Spring IOC源码精读
查看>>
记录--mac下终端内的环境变量问题
查看>>
nginx实现高性能负载均衡的Tomcat集群
查看>>
Rxjs中Notification介绍(一)
查看>>
merge和concat区别
查看>>
Rxjs中Notification 介绍
查看>>
2个数组对象合并,去重,并且标志出数据来自哪个数组
查看>>
【转载】CentOS7下使用LVM给系统硬盘扩容
查看>>
1-18-1 LVM管理和ssm存储管理器使用&磁盘配额(一)
查看>>
1-3 RHEL7操作系统的安装
查看>>