HacKerQWQ的博客空间

badusb制作上线cs

Word count: 1.4kReading time: 5 min
2021/12/29 Share

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

image-20211229220157302

成品badusb

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.31842e8dmgBj6y&id=633521707304&_u=t2j5ngtg0d94

image-20211229220240587

找的挺久的badusb,这个最便宜

Arduino IDE

Arduino IDE用来烧录usb开发板和badusb

https://www.arduino.cc/en/software

官网介绍:

开源 Arduino 软件 (IDE) 可以轻松编写代码并将其上传到开发板。该软件可用于任何 Arduino 板。

image-20211229220359586

然后需要下载驱动

https://github.com/digistump/DigistumpArduino/releases/tag/1.6.7

下载Digistump.Drivers.zip

image-20211229233047336

运行Install Drivers.exe安装驱动

ATTINY85入门

打开Arduino IDE,文件-首选项,在开发管理器网址中输入

1
http://digistump.com/package_digistump_index.json

image-20211229233307508

然后点击工具-开发板-开发板管理器,这里需要挂代理加载刚刚添加的json索引文件,然后搜索安装Digistump AVR Boards

image-20211229233553975

这时候环境就配好了,准备写入代码进开发板

1
2
3
4
5
6
7
8
9
DELAY 3000
GUI r
DELAY 500
STRING notepad
DELAY 500
ENTER
DELAY 750
STRING Happy Hacking !!!
ENTER

这是一段digiduck代码,需要在下面这个网站将它转换成digispark代码

https://nixu-corp.github.io/

对应项目地址,可以安装到本地,选择digispark然后进行转换

image-20211229234034053

将转换后的代码复制到Arduino IDE,选择开发板为Digispark(Default - 16.5mhz)

image-20211229234239584

点击开始上传,此时再插入ATTINY85

image-20211229234432617

可以看到上传成功,重新插入开发板触发notepad显示字符串

Duckyscript(大黄鸭代码)

这里的Duckyscript就是上文提到的大黄鸭代码,官网在下面

https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Duckyscript

制作cs马的话主要用到下面几个

1
2
3
4
5
6
7
8
9
10
//STRING输入字符串
STRING cmd
//DELAY延时(ms)
DELAY 500
//ENTER对应键盘ENTER
ENTER
//GUI对应win键
GUI r
//CTRL对应CTRL
CTRL SPACE

利用ANTTINY85上线cs

生成web delivery payload

image-20211230004438789

将url copy下来写成duckscript代码转为digispark代码

image-20211230004355532

按照上面的方法上传代码

image-20211230004549387

插入开发板到虚拟机,自动打开win+r,输入payload之后上线cs

image-20211230004748987

Leonardo bad usb上线cs

对比ANTTINY85,只需要把代码转换为Arduino,开发板选择为Arduino Leonardo

转换代码

image-20211230012326768

插入badusb,选择开发板为Arduino Leonardo,选择com口,点击开始上传,即可上传成功

image-20211230012508536

这种方法同样也能上线,缺点是比第一种方法贵,可以考虑给开发板3D打印一个外壳。

防御badusb

大家可能发现,我(主要是穷)所使用BadUSB的只适合win10,只有win10能运行。WIN7都是提示安装驱动,针对性的参考国外大牛文章,主要是为了(主要是为了增加文章字数篇幅)学习一下如何针对BadUsb进行防御。How to Fix the Critical BadUSB Security Flaw in Less than 10 Minutes

创建黑名单

1、“ 开始” - > “运行”,然后键入gpedit.msc 以访问“ 本地组策略编辑器”。

2、访问以下内容:计算机配置 > 管理模板 > 系统 > 设备安装 > 设备安装限制image.png

3、双击 使用与这些设备设置类匹配的驱动程序阻止设备安装,然后选择启用。image.png

4、在同一位置,单击“ 显示”以通过其GUID创建USB设备的黑名单。image.png下列表格为常见的几个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、访问以下内容:计算机配置 > 管理模板 > 系统 > 设备安装 > 设备安装限制image.png

  1. 双击“ 禁止安装可移动设备”并启用它。

image.png

  1. 双击“ 允许管理员覆盖设备安装限制”策略 并启用它。

image.png

禁用非活动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

https://www.freebuf.com/articles/terminal/207356.html

CATALOG
  1. 1. badusb介绍
  2. 2. Arduino IDE
  3. 3. ATTINY85入门
  4. 4. Duckyscript(大黄鸭代码)
  5. 5. 利用ANTTINY85上线cs
  6. 6. Leonardo bad usb上线cs
  7. 7. 防御badusb
    1. 7.1. 创建黑名单
    2. 7.2. 避免自动USB安装
    3. 7.3. 禁用非活动USB端口
  8. 8. 参考链接