BadUsb与HID攻击

BadUsb

BadUSB 是一种利用 USB 固件固有漏洞的攻击。此类攻击会对 USB 设备进行重新编程,使其充当人机接口设备;一旦经过重新设计,USB 设备就会被用来在受害者的计算机上谨慎地执行命令或运行恶意程序。

​ ——BADUSB

其是带有嵌入式固件的闪存驱动器,可用于重新编程设备并允许它充当人机界面小工具,例如键盘、鼠标或耳机。它们用于通过有效地伪装成人机接口设备 (HID) 在计算机上执行各种操作。BadUSB可以预先编程以在计算机上键入字符(无需物理操作)。插入后就可以直接开始工作,甚至执行需要同时使用两个或多个键的复杂击键。

HID攻击

HID(Human InterfaceDevice),是指计算机直接与人交互的设备,例如键盘、鼠标等。BadUsb攻击便属于其中一种。攻击者通过将USB设备模拟成为键盘,让电脑识别成为键盘,然后进行脚本模拟按键进行攻击。

pc端上的HID一般指的是USB-HID标准,大多是指微软在USB委员会上提议创建的一个人体学输入设备工作组。

Raspberry pico W

Raspberry Pi Pico 是一款搭载了 RP 2040 芯片的微处理器开发板。对于 Pico 的编程开发,官方开发了 Pico C/C++ SDKPico Python SDK 软件开发工具包,用户可以选择 C/C++ 或者 Python 对 Pico 进行开发。

其规格参数如下:

Python SDK 开发制作badusb

Python SDK 开发 Pico 的思路是,将 MicroPython(微处理器上运行的 Python 固件)拖拽到 Pico 中,然后将计算机上的 Python (3)代码传给 Pico 运行。树莓派官网提供了MicroPython固件,只需要将其烧录进去即可。已经编译好的固件:getting-started这里可以下载到

首先按住BOOTSET选项并链接USB接口到计算机上,其将显示为名为 RPI-RP2 的可移动媒体设备(但注意是识别出来容量可能有误,具体按照产品参数为准)并生成INDEX.HTM和INFO_UF2.TXT文件

下载adafruit-circuitpython-raspberry_pi_pico-en_US-8.2.10.uf2 到设备的根目录下,大约3秒后设备将会自动重启,并命名为CIRCUITPY设备并重新连接。生成以下文件:

{40AE3F73-9CBF-4337-9ACC-262E25518D0B}

下载安装包 并将lib下的这些文件(夹)放入到设备的lib目录下:

将下载文件中的下列文件移动到设备根目录下:

完成后电脑会自动打开cmd执行helloword代码。其中payload.dd装载的是执行的脚本

USB 启用/禁用模式

对于攻击或测试时,可能并不想要显示出或被是辨别成大容量储存设备

  • 进入设置模式。
  • 将您的有效负载脚本复制到 pico-ducky。
  • 断开 pico 与主机的连接。
  • GND在引脚 18 ( ) 和引脚 20 ( )之间连接跳线GPIO15。这将防止 pico-ducky 在插入目标计算机时显示为 USB 驱动器。
  • 取下跳线并重新连接到您的电脑以重新编程。

pico上同时可以储存多个有效载荷,其与引脚的关系为:

GP4 - payload.dd GP5 - payload2.dGP10 - payload3.dd GP11 - payload4.dd

pico的重置

在使用时经常会使用到重置功能来完成特定功能和解决一些问题,具体操作如下:

  • 从flash_nuke.uf2下载重置固件
  • 按住 Pico 上的 BOOTSEL 按钮,将 USB 电缆插入计算机(该步骤会删除掉设备的所有内容)。
  • 当 设备 RPI-RP2被计算机识别时,将 flash_nuke.uf2 文件复制到 设备

BadUsb—-payload.dd编辑

如果想实现自定义的脚本命令攻击,其主要更改的便是payload.dd文件

首先要理解payload.dd文件是以什么方式(语言)编写的。这里参考“官方的解释”《DuckyScript™ 快速参考》

  • REM: 命令不执行任何击键注入功能。REM它的名字来源于单词“remark”。虽然REM空行可用于在有效负载内添加垂直间距,但空行也是可接受的,并且不会被编译器处理。

  • STRING: 命令STRING击键注入(类型)一系列击键。必要时STRING按住修饰键将自动解释大写字母。SHIFTSTRING命令还将自动按 SPACE 光标键,但尾随空格将被省略。

  • STRINGLN: 命令(如STRING)将注入一系列击键,然后以回车符 ( ENTER) 终止。

  • 光标键:用于将光标导航到屏幕上的不同位置,主要有:

    1
    2
    3
    4
    5
    6
    UP DOWN LEFT RIGHT
    UPARROW DOWNARROW LEFTARROW RIGHTARROW
    PAGEUP PAGEDOWN HOME END
    INSERT DELETE DEL BACKSPACE
    TAB
    SPACE
  • 基本修饰键:与另一个键组合使用以执行特殊功能。PC 的常见键盘组合包括熟悉的CTRL c复制、CTRL x剪切和CTRL v粘贴键盘组合。注意的时windows键命令为GUI

  • DELAY: 命令指示 USB Rubber Ducky 暂时暂停有效负载的执行。当部署必须“等待”元素(例如窗口)加载的有效负载时,这非常有用。该DELAY命令接受以毫秒为单位的时间参数。注意最小延迟值为 20

  • 比较和逻辑运算:该脚本语言同样支持数学比较逻辑符号和逻辑运算符 。

  • WHILE : 支持WHILE的循环语句。:

    1
    2
    3
    4
    5
    6
    7
    VAR $FOO = 42   //$FOO自定义变量
    WHILE ( $FOO > 0 )
    STRINGLN This message will repeat 42 times.

    $FOO = ( $FOO - 1 )

    END_WHILE //结束标识

    该脚本还支持其实还有诸如自定义函数,载荷隐藏,抖动,随机化等更为复杂的命令和功能。

pico W的ap网络功能

待更新>>>>……….(提醒:实用软件:Thonny )