BadUsb-hid攻击初探

BadUsb - hid攻击初探

原理:usb伪装成键盘,模拟键盘进行输入

一.淘宝上买个ATTINY85 Digispark kickstarter usb开发板。

二.下载Arduino IDE、Automator、hfs

1.Automator用来写键盘模拟的脚本(.ino文件),非必要,但是方便写代码

Automator很好装,https://github.com/Catboy96/Automator

2.hfs用来在配置Arduino IDE时模拟从官网下载包的操作

下载:http://www.rejetto.com/hfs/?f=dl

下了直接用

3.Arduino IDE 用来烧录

安装:

1.http://digistump.com/wiki/digispark/tutorials/connecting

2.https://www.bilibili.com/video/BV1z64y147oc/?spm_id_from=333.788.recommend_more_video.0&vd_source=4d7ceec86e24de9c1f10dcb04b1715f0

比较麻烦,两个都要看

三.

写脚本,Ducky Script脚本语言,写完生成ino文件

直接把ino文件里的代码复制到ide里面,不要打开文件

点上传,显示plug in device now的时候插u盘就行了,很快就能烧录完。

注意

1.能重复烧录,会覆盖上一次

2.烧录的时候把虚拟机关掉

测试脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "DigiKeyboard.h"

void loop() {}

void setup() {
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
DigiKeyboard.delay(200);
DigiKeyboard.print("notepad");
DigiKeyboard.delay(200);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(200);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(200);
DigiKeyboard.print("you");
DigiKeyboard.delay(200);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(200);
DigiKeyboard.print(" are");
DigiKeyboard.delay(200);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(200);
DigiKeyboard.print(" hacked");
DigiKeyboard.delay(200);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
}

delay不能太小,不然输入会错乱

payloads:https://github.com/hak5/usbrubberducky-payloads

很多工具也有powershell payload生成功能,可以直接执行,也可以放到公网再下载执行

因为能模拟键盘并获取目标机器的shell,所以利用姿势很多。

其它还有wifi ducky,蓝牙的貌似也有,连上u盘自带的wiki就能实现远程上传ducky script脚本,tb没有,jd现成的150左右一个。


BadUsb-hid攻击初探
https://lkliki.github.io/2023/03/01/badusb初探/
作者
0P1N
发布于
2023年3月1日
许可协议