快捷搜索:  网络  后门  CVE  渗透  木马  扫描  黑客  as

DIY一个专属HID注入设备吧

*

evilusb_logo.jpg

1、弁言

BadUSB是指一类通过摹拟键盘自动输入指令,完成信息窃取以及恶意程序执行的HID攻击要领,最早由SRLabs在2014年美国黑帽大会上提出。起初的BadUSB设备是通过更改U盘中的控制器固件完成的,支持的设备型号较少。因而RUBBER DUCKY(橡皮鸭)从原始的批操作设备逐步发铺为一个成熟的HID攻击平台,并拥有完美的攻击脚本、可靠的硬件支持以及活跃的手艺论坛。然则由于价格缘故起因,大多数研究人员首选Teensy USB开发板并基于Arduino IDE完成HID注入攻击。WHID设备在此基础上加入了无线模块,能够完成数据收发以及Shell的确立,拓宽了BadUSB的攻击场景。

然而上述攻击设备没有地下底层的逻辑代码,只开放了更新攻击脚本的接口,制约了用户自行DIY的空间。EvilUSB是我基于STM32F103C8T6自行开发的一款BadUSB攻击设备,能够同时摹拟出U盘以及键盘进行攻击脚本的存储以及执行,通过更改设置文件以适应中、英文输入环境,设备总成本不到10元。下面将详绝叙述各个功能的详细完成,源码及手册参见项目首页http://evilusb.com

二、摹拟键盘

STM32F103C8T6是意法半导体推出的ARM Cortex-M3内核MCU,包含一个全速模式USB接口,性价比高而且很容易入手,故而拔取该型号芯片进行EvilUSB开发。

电脑主机是通过设备描摹符识别USB设备类型的,并在规定的端点确立与设备的通讯关系,黑客网,因此要做的第一步是要设置好设备的描摹符。参考STM32F10X USB设备开发套件(STM32_USB-FS-Device_Lib_V4.0.0)中JoyStickMouse例程,按照lsj9383[1]的思路对设置描摹符以及讲演描摹符进行修改。

在电脑识别出HID设备的基础上,调整端点收发缓存区的调配,再设置设备的Init以及Reset函数。接着就可以用Joystick_Send函数发送按键数据,参数非零代表有键按下,全零则代表松开。键码不同于Ascii码,可参加MightyPork收拾整理的usb_hid_keys.h[2]以及我的例程Evilusb_Keycode.h[3]。由于BadUSB请求很高的攻击代码注入速率,故而可通过状态机用DMA加速传输。为了解决字符输入过快导致的错误以及脱漏问题,需要要设置描摹符中的bInterval调到一个很低的值以收缩主机的响应时间。最后一个问题是主机输入法默认的大小写及中英文环境不相符程序请求导致的注入失败,这个可以通过摹拟U盘中的设置文件进行手动切换,下一章将详绝叙述。

3、摹拟U盘

一个可以同时摹拟出多个逻辑设备的USB设备称为复合设备,复合设备具有高集成、低成本、多功能的优点。Evilusb使用内部的NandFlash空间来存放数据、摹拟一个几十Kb大小的U盘(该型芯片官方声称flash大小为64Kb,实际大小为128Kb),能够餍足攻击脚本以及设置文件的存储请求。

复合设备工程参考官方的Composite_Example例程,更改设置描摹符、端点缓存调配、设备初始化以及复位函数和各个端点的归调函数。按照zengming00[4]的教程,对mass_mal.c中的MAL_Init,MAL_GetStatus,MAL_Read,MAL_Write函数进行修改,使之解锁走访并读写内部flash数据。如许操作以后就能在电脑上显示出一个U盘,但由于没有添加内部的文件体系,格式化成FAT格式后才能正常走访。

设置文件包含了Default_Waiting_Time,Default_Reaction_Time,Default_Lang-

uage,Default_CapsLock四个参数,分别用来配置肇始时间、响应时间、中英文以及大小写环境。体系上电后会从指定的地址读取这些设置,所以设置文件的排版格式不得改动(缺少内部文件体系的弊端)。摹拟U盘的另一个重要功能就是与主机通讯,配合无线通讯模块可以完成遥程文件传输以及Shell的确立。

4、攻击流程

Evilusb插入电脑后会延迟一段时间守候体系识别完毕,然后陆续执行:

cmd.exe /T:01 /K mode CON: COLS=16 LINES=1 //关上Shell

(wmic LOGICALDISK where filesystem=”FAT” get name | findstr “:” && echo EvilUSB.bat) >%tmp%\TMP.bat //输入摹拟U盘盘符以及攻击脚本文件名到缓存脚本文件中

%tmp%\TMP.bat || exit //执行刚才的缓存脚本文件然撤退退却出

EvilUSB.bat的文件内容以下,起首检查主机用户是不是攻击对象,然后再调用攻击脚本,删除用到的缓存文件以免磁盘破损。

@echo off

rem Debug_Check : Avoid Attacking Your Own PC

rem --------------------------------------------------------

if "%username%"=="kinciad" (exit)

rem Task_Start : Add CMD Co妹妹and Here, Execute Another Script If It's Much Large!

rem --------------------------------------------------------

echo %username% > TMP

rem test.bat

rem Task_Over : Delete Cache Can Help Avoid Losing File and Disk!

rem --------------------------------------------------------

rem del /F /S /Q TMP

5、攻击测试

图片1.jpg

6、总结与铺望

本例实现了基于STM32F103C8T6摹拟键盘以及U盘完成HID注入攻击的BadUSB设备软硬件原型设计,接下来将在三个方面做出改进:一是增添SD卡卡槽扩大U盘容量,方便文件窃取;二是通过添加无线通讯模块确立遥程Shell、完成无线设置以及文件传输;第三是加入Bootloader,完成安全的U盘升级(OTG)以及无线收集升级(OTA)。

7、资源及参考文档

[1] 关于 KEIL提供的JoystickMouse例程 转化为 USB捏造键盘http://www.openedv.com/thread-10971-1-1.html(出处: OpenEdv-开源电子网)

[2] usb_hid_keys.h https://gist.github.com/MightyPork/6da26e382a7ad91b5496ee55fdc73db2

[3] Evilusb_Keycode.h http://evilusb.com#Resource

[4] U盘GPIO文件体系映照-STM32行使内置FLASH做U盘http://bbs.mydigit.cn/read.php?tid=1771843

*

您可能还会对下面的文章感兴趣: