在接触网络安全之初就有想法造个badusb玩玩,奈何之前对免杀木马单片机都没多少了解便搁置了
badusb and 键盘模拟
作为HID 攻击的一种,badusb可以说是声名远洋本质是伪装成输入设备在被害者电脑上快速完成威胁操作,理论上来说只要能进行hid交互就能完成攻击,也有很多公司出相关产品例如O.MG 的伪装成数据线的O.MG Cable,不过这不是我们今天的目标,至于badusb的介绍网络上有很多了便不再追述,这次主要讲以最廉价的价格实现一个badusb
pico? pico_mini!
再找相关单片机的时候我发现了pr2040就是那个当初实现switch破解的同款才指甲盖大小,而且价格极便宜,如果无需后续改装直接用数据线连接只需要十块钱pdd就能买到
硬件选择完就是固件,毋庸使用的肯定是CircuitPython
CircuitPython
与MicroPython不同CircuitPython能做到即插即用配合上Adafruit_CircuitPython_HID项目可以做到模拟hid,且是python逻辑编写也简单,以下是一个小的简单实现
import time
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
# 创建一个键盘对象
keyboard = Keyboard(usb_hid.devices)
# 字符到 Keycode 的映射
key_map = {
'WINDOWS': Keycode.WINDOWS, 'GUI': Keycode.GUI,
'APP': Keycode.APPLICATION, 'MENU': Keycode.APPLICATION, 'SHIFT': Keycode.SHIFT,
'ALT': Keycode.ALT, 'CONTROL': Keycode.CONTROL, 'CTRL': Keycode.CONTROL,
'DOWNARROW': Keycode.DOWN_ARROW, 'DOWN': Keycode.DOWN_ARROW, 'LEFTARROW': Keycode.LEFT_ARROW,
'LEFT': Keycode.LEFT_ARROW, 'RIGHTARROW': Keycode.RIGHT_ARROW, 'RIGHT': Keycode.RIGHT_ARROW,
'UPARROW': Keycode.UP_ARROW, 'UP': Keycode.UP_ARROW, 'BREAK': Keycode.PAUSE,
'PAUSE': Keycode.PAUSE, 'CAPSLOCK': Keycode.CAPS_LOCK, 'DELETE': Keycode.DELETE,
'END': Keycode.END, 'ESC': Keycode.ESCAPE, 'ESCAPE': Keycode.ESCAPE, 'HOME': Keycode.HOME,
'INSERT': Keycode.INSERT, 'NUMLOCK': Keycode.KEYPAD_NUMLOCK, 'PAGEUP': Keycode.PAGE_UP,
'PAGEDOWN': Keycode.PAGE_DOWN, 'PRINTSCREEN': Keycode.PRINT_SCREEN, 'ENTER': Keycode.ENTER,
'SCROLLLOCK': Keycode.SCROLL_LOCK, 'SPACE': Keycode.SPACE, 'TAB': Keycode.TAB,
'BACKSPACE': Keycode.BACKSPACE,
'a': Keycode.A, 'b': Keycode.B, 'c': Keycode.C, 'd': Keycode.D, 'e': Keycode.E,
'f': Keycode.F, 'g