badusb介绍
随着设备不断的升级改进,USB 能够连接到许多不同的设备,包括鼠标、键盘、相机、摄像头、无线网络设备等。但不幸的是,USB 的设计方式产生了这个 BadUSB 安全漏洞。
BadUSB 漏洞是由安全研究人员 Karsten Nohl 和 Jakob Lell 在 2014 年黑帽会议上首次发现并暴露出来的,这也就让USB安全和几乎所有和USB相关的设备(包括具有USB端口的电脑)都陷入相当危险的状态。
就狭义来说,BadUSB是指形似 U 盘的设备,内部的电路在上电之后会被系统识别为键盘,此时该设备内部的芯片开始与电脑进行键盘通讯,仿照人的输入习惯,来操作电脑,以此达到骇入电脑的目的。
就广义来说,BadUSB是指一切会被电脑识别为 HID 设备的,外观却不像键盘的电子设备。现阶段有的 badusb 是形似数据线的,有的则是手机加定制内核,以发挥 BadUSB 的作用,更有甚者,将 BadUSB 开发为模块,可以嵌入任意的带 USB 接口的设备中。
usb开发板
链接:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.31842e8dmgBj6y&id=43356139775&_u=t2j5ngtgce32
成品badusb
https://item.taobao.com/item.htm?spm=a1z09.2.0.0.31842e8dmgBj6y&id=633521707304&_u=t2j5ngtg0d94
找的挺久的badusb,这个最便宜
Arduino IDE
Arduino IDE用来烧录usb开发板和badusb
https://www.arduino.cc/en/software
官网介绍:
开源 Arduino 软件 (IDE) 可以轻松编写代码并将其上传到开发板。该软件可用于任何 Arduino 板。
然后需要下载驱动
https://github.com/digistump/DigistumpArduino/releases/tag/1.6.7
下载Digistump.Drivers.zip
运行Install Drivers.exe安装驱动
ATTINY85入门
打开Arduino IDE,文件-首选项,在开发管理器网址中输入
1 | http://digistump.com/package_digistump_index.json |
然后点击工具-开发板-开发板管理器,这里需要挂代理加载刚刚添加的json索引文件,然后搜索安装Digistump AVR Boards
这时候环境就配好了,准备写入代码进开发板
1 | DELAY 3000 |
这是一段digiduck代码,需要在下面这个网站将它转换成digispark代码
对应项目地址,可以安装到本地,选择digispark然后进行转换
将转换后的代码复制到Arduino IDE,选择开发板为Digispark(Default - 16.5mhz)
点击开始上传,此时再插入ATTINY85
可以看到上传成功,重新插入开发板触发notepad显示字符串
Duckyscript(大黄鸭代码)
这里的Duckyscript
就是上文提到的大黄鸭代码,官网在下面
https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Duckyscript
制作cs马的话主要用到下面几个
1 | //STRING输入字符串 |
利用ANTTINY85上线cs
生成web delivery payload
将url copy下来写成duckscript代码转为digispark代码
按照上面的方法上传代码
插入开发板到虚拟机,自动打开win+r,输入payload之后上线cs
Leonardo bad usb上线cs
对比ANTTINY85,只需要把代码转换为Arduino,开发板选择为Arduino Leonardo
转换代码
插入badusb,选择开发板为Arduino Leonardo,选择com口,点击开始上传,即可上传成功
这种方法同样也能上线,缺点是比第一种方法贵,可以考虑给开发板3D打印一个外壳。
防御badusb
大家可能发现,我(主要是穷)所使用BadUSB的只适合win10,只有win10能运行。WIN7都是提示安装驱动,针对性的参考国外大牛文章,主要是为了(主要是为了增加文章字数篇幅)学习一下如何针对BadUsb进行防御。How to Fix the Critical BadUSB Security Flaw in Less than 10 Minutes
创建黑名单
1、“ 开始” - > “运行”,然后键入gpedit.msc 以访问“ 本地组策略编辑器”。
2、访问以下内容:计算机配置 > 管理模板 > 系统 > 设备安装 > 设备安装限制
3、双击 使用与这些设备设置类匹配的驱动程序阻止设备安装,然后选择启用。
4、在同一位置,单击“ 显示”以通过其GUID创建USB设备的黑名单。下列表格为常见的几个GUID及对应设备:
4d36e96b-E325-11CE-BFC1-08402BE10318 | 此控制器控制USB键盘的自动安装。 |
---|---|
4D36E972-E325-11CE-BFC1-08012BE10318 | 此对应于NIC(网络接口控制器) |
e0cbf06c-cd8b-4647-bb8a-263b45f0f974 | 这个用于蓝牙。 |
如想查阅GUID号码的更多信息,请参考GUID号码快速查阅
避免自动USB安装
为保护系统免受BadUSB漏洞影响的另一个方法是禁用自动安装新USB设备,依旧同上面一样的位置。
1、“ 开始” - > “运行”,然后键入gpedit.msc 以访问“ 本地组策略编辑器”。
2、访问以下内容:计算机配置 > 管理模板 > 系统 > 设备安装 > 设备安装限制
- 双击“ 禁止安装可移动设备”并启用它。
- 双击“ 允许管理员覆盖设备安装限制”策略 并启用它。
禁用非活动USB端口
当然少不了一个比较(骚)硬的策略,那就是禁用那些不活跃的USB端口,从物理上进行隔绝,解决大部分BadUsb问题。
参考链接
https://www.heibai.org/1224.html
https://xz.aliyun.com/t/3577#toc-0
https://mp.weixin.qq.com/s/ioGrsgDcplbMDxb84OAKUA
更多payload:https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads