原理
不同于老式的U盘病毒,它利用了USB协议中的一个漏洞,通过模拟键盘、鼠标、网卡等从而让目标电脑执行恶意代码,达到控住主机或者窃取敏感信息等目的。
利用了HID界面和相关协议,在代码层级模拟键盘或者鼠标的操作,达到恶意传播病毒或者删除关键文件的目的。
恶意代码存在于U盘的固件中,PC上的杀毒软件无法访问到U盘存放固件的区域,因此也就意味着杀毒软件和U盘格式化都无法防御BadUSB的攻击。
硬件设备(Digispark开发板)
基于ATTINY85微控制器的USB开发板,体积小且价钱便宜,功能方面则没有Arduino般强大。 代码与Arduino大同小异,更可贵的是使用Arduino IDE来开发。
攻击方式
- 物理入侵,简单点找一些未锁屏的办公电脑挨个插入。
- U盘钓鱼,通过伪装成一个普通移动U盘撒向目标范围内引起目标注意。
- 摆渡攻击,通常是攻击局域网内部系统,当再次插入互联网设备中敏感信息被传输。
购买途径
某宝上直接就能购买,我买的是Digispark开发板
制作badusb
下载Arduino IDE,安装驱动:https://github.com/digistump/DigistumpArduino/releases
(因为我的板子是Digispark开发板,Arduino IDE默认不支持该板子,需要下载对应的驱动)
选择64位,进行安装
确保所有驱动都勾选上,进行安装;安装好后,重启电脑
打开Arduino IDE,先配置代理,避免后续因为下载问题
打开偏好设置,附加开发板管理器网址:http://digistump.com/package_digistump_index.json (因为Ardunio IDE默认没有Digispark开发板,需要手动添加)
打开开发板管理器,选择安装 Digistump AVR Boards
安装好后,就可以选择Digispark板子了
选择example中的keyboard案例
利用CS生成powershell脚本来上线,并把powershell脚本托管到服务器上
需要烧制到板子上的代码
1 | #include "DigiKeyboard.h" |
修改payload脚本的地址即可,直接点击上传,提示需要60秒内插入板子
插入板子,写入成功
把badusd重新插入到电脑上,机器成功上线
总结
在 Arduino 开发环境中,使用开发板管理器可以轻松安装和管理各种硬件平台的支持,包括不同的微控制器和开发板。默认情况下,Arduino IDE 附带一些常见的开发板支持,但对于其他特定的开发板或微控制器,可能需要添加附加的开发板支持。