Bad_USB[硬件入侵技术]

描述

https://www.bilibili.com/video/BV15S4y1M7MZ

参考视频

简介 

通过硬件直接插入对方电脑,让对方电脑执行代码,达到干扰、控制主机或者窃取信息等目的。 

HID攻击 

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

usbusb

USB HID类是USB设备的一个标准设备类,包括的设备非常多。HID类设备定义它属于人机交互操作的设备,用于控制计算机操作的一些方面,如USB鼠标、USB键盘、USB游戏操纵杆等。但HID设备类不一定要有人机接口,只要符合HID类别规范的设备都是HID设备。 USB HID设备的一个好处就是操作系统自带了HID类的驱动程序,而用户无需去开发驱动程序,只要使用API系统调用即可完成通信。 我们用到的是模拟键盘这部分。  参考:https://www.cnblogs.com/vonly/p/7403823.html 

USB鼠标键盘协议介绍。 

鼠标发送给PC的数据每次4个字节:BYTE1 BYTE2 BYTE3 BYTE4。定义分别是:
BYTE1 --

      |--bit7:   1   表示 Y 坐标的变化量超出-256~255的范围,0表示没有溢出

      |--bit6:   1   表示 X 坐标的变化量超出-256~255的范围,0表示没有溢出

      |--bit5:   Y   坐标变化的符号位,1表示负数,即鼠标向下移动 
      |--bit4:   X   坐标变化的符号位,1表示负数,即鼠标向左移动 
      |--bit3:   恒为1 
      |--bit2:   1表示中键按下 
      |--bit1:   1表示右键按下

      |--bit0:   1表示左键按下

BYTE2 -- X坐标变化量,与byte的bit4组成9位符号数,负数表示向左移,正数表右移。用补码表示变化量 
BYTE3 -- Y坐标变化量,与byte的bit5组成9位符号数,负数表示向下移,正数表上移。用补码表示变化量
BYTE4 -- 滚轮变化。
由于手上没有USB鼠标,对BYTE1的4-7位没有测试,对于BYTE2 BYTE3做个测试,BYTE1的4-7全为0的时候,BYTE2 BYTE3的正负表示鼠标移动方向

备注:本人实测结果如下(win10x64):

BYTE1的高4位完全无用,

BYTE2,X坐标变化量,负数表示向左移,正数表示向右移,

BYTE3,Y坐标变化量,负数表示向上移,正数表示向下移


 键盘发送给PC的数据每次8个字节:BYTE1 BYTE2 BYTE3 BYTE4 BYTE5 BYTE6 BYTE7 BYTE8。定义分别是:
BYTE1 --
      |--bit0:   Left Control    是否按下,按下为1 
      |--bit1:   Left Shift        是否按下,按下为1 
      |--bit2:   Left Alt           是否按下,按下为1 
      |--bit3:   Left GUI         是否按下,按下为1 
      |--bit4:   Right Control  是否按下,按下为1  
      |--bit5:   Right Shift      是否按下,按下为1 
      |--bit6:   Right Alt         是否按下,按下为1 
      |--bit7:   Right GUI        是否按下,按下为1 
BYTE2 -- 暂不清楚,有的地方说是保留位
BYTE3--BYTE8 -- 这六个为普通按键

键盘经过测试。
例如:键盘发送一帧数据   02 00 0x04 0x05 00 00 00 00
表示同时按下了Left Shift + ‘a’+‘b’三个键

  审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分