第五十五课HID攻击

1什么是HID攻击

HID 全称为 Human Interface Device 直译为人类接口设备,也被称为人体学输入设备,是指与人类直接交互的计算机设备,而pc端上的”HID”一般指的是USB-HID标准,更多指微软在USB委员会上提议创建的一个人体学输入设备工作组。

2HID攻击原理

HID攻击原理是攻击者将恶意USB设备伪装成合法的人机接口设备(如键盘、鼠标),利用操作系统对这类设备的信任,无需用户授权即可自动执行预设的恶意指令,从而实现对目标系统的控制或数据窃取。

具体来说,攻击者会先将攻击脚本(如Ducky Script或Bash脚本)编写好并上传至攻击设备的存储中。当把该设备插入目标计算机后,系统会将其识别为正常的HID设备。接着,设备中的微控制芯片会按照预设脚本模拟键盘输入或鼠标操作,向目标系统发送恶意指令。例如,自动打开命令行窗口、下载并执行恶意程序、创建隐藏账户或后门、修改系统配置等。

3如何实现HID攻击

请在电脑上打开设备管理器点击人体输入设备点击USB输入设备如图1-1-2

图1-1

图1-2

1.1HID标准的概念之前,设备往往要匹配鼠标和键盘,更换新的设备时候,就需要重载所有协议和设备,极其繁琐

类似于TCP/IP协议族一样,在标准化协议发布之前,设备之间的通讯由开发商单方面的协议主导,不同品牌的设备从而因为协议不同,而无法通信。

1.2而HID标准概念之后,所有HID定义的设备驱动程序提供可包含任意数量数据类型和格式的自我描述包。计算机上的单个HID驱动程序就可以解析数据和实现数据I/O与应用程序功能的动态关联。

1.3可以说:HID标准的诞生让接口类型,功能更加丰富,多样化,同时也加快了设备的创新与发展。

二、 What Is HID attack?

HID attack 通过插入带有攻击向量的USB设备等方式,恶意代码直接就被加载执行,攻击操作也就瞬时发生。此类方式属于物理层面攻击。

相对来说,攻击者控制了用户的键盘,则就可以说控制了对方主机的权限。

攻击者可以在一个芯片中,写入编程进去的恶意代码,诱导用户,或其他方式插入主机中,即可完成整个攻击操作。

2.1那么造成HID攻击的原因到底是什么

HID设备类协议缺陷

在聊HID设备标识符之前,先说说鼠标和键盘。早期的鼠标键盘,如果网龄久一些的话,都知道,是那种PS/2的接口。如图1-3

图1-3

在今天,大部分的鼠标和键盘都用USB来代替,ps/2的接口已经非常非常少见了。

既然,USB插得有可能是移动储存设备,也有可能是类似键盘鼠标的输入设备,那么计算机是如何分辨的呢?

答案就是 HID协议中的定义的HID设备标识符。

就我们人类而言,键盘之所以是键盘,是因为能打字,

鼠标之所以能是鼠标,是因为能控制光标的移动

U盘之所以是U盘,是因为他能长得像U盘,能传入传输文件。

但是计算机不是人,他只认识0和1,Device Class Definition for Human Interface Devices是一个公开的国际标准,用于规定HID设备的类型。当任何一个HID设备在接入电脑时,操作系统就首先会读取其设备标识符,

你如果具备U盘的标识,那我就给你挂载一个盘符。

你如果具备键盘的标识符,我就接受你给我输入的信息。

原则上HID 是一出厂,就被设定好了的,出厂了就不能再更改了。

老生常谈的一句话“互联网本身是安全的,自从有了安全的人,互联网就变得不安全了。”

但是HID规范和协议是公开,通过自定义HID标识,让计算机模拟了键盘的输入。

则达到了我们所说的HID攻击。

三、 发动 HID攻击 需要什么?

按理说这种物理攻击,应该是玩物联网的兄弟们鼓捣的东西,那么就自然少不了单片机等硬件的支持。

如黑客想发动一次 HID 攻击的话,有很多种硬件的选择,

以下笔者只是简单的举三个例子

3.1digispark单片机:如图1-4-5

图1-4

图1-5

自带 8k 的闪存,除去(bootloader占用2K,用户可编程部分6K)

3.2CJMCU-Beetle

如图1-6-7

图1-6

图1-7

均价 32RMB左右,32KB 闪存(4kb bootloader 占用)

3.3.商业版定制BadUSB---小黄鸭

如图1-8

图1-8

价格不菲,40美刀如图如图1-9

图1-9

可以插入一个12MB的SD卡(相对于 淘宝9.9的内个,就储存部分就扩展了几百倍了。)长得也更像U盘啊。

对如图2-1

图2-1

四、 如何对单片机写简单的模拟键盘程序。

提醒一下各位,所有的单片机都是可以跨平台攻击的,前提是,你准备的payload是这个平台的payload的 不同平台的命令指示符的指令是不一样的。

你如果去攻击win的程序去插入了linux的服务器上,那也毫无意义。

首先去官网下载编译器

https://ww************/en/Main/Software如图2-2

图2-2

打开编译器:如图2-3

图2-3

初始化界面:如图2-4

图2-4

初始化代码部分

void setup() {

// put your setup code here, to run once:

}

void loop() {

// put your main code here, to run repeatedly:

}

Arduino 提供了以下键盘函数

#include //包含键盘模块的头文件

Keyboard.begin(); //开启键盘通信

Keyboard.press(); //按下某个键

Keyboard.release(); //释放某个键

Keyboard.println(); /*输入某些内容 和一些网上的解释不同 网上解释是输入内容并且能回车,而我测试的时候并不能回车 可能和版本有关 不要不要担心有办法回车*/

Keyboard.end(); //结束键盘通信

以下是单片机模拟打开 win+R echo helloworld如图2-5

图2-5

更高阶的操作,本文不再探究,互联网资源丰富

还请小伙伴利用自己的搜索引擎去探索吧~)

写完代码之后,进行编译如图2-6

图2-6

然后上传(如果代码写的没有问题的话)如图2-7

图2-7

注意:digispark 与其他arduino不太一样。以前DigisparkArduino在SourceForge上提供了专用版的Arduino IDE,但是很久没有更新,而且支持的板子较少,不方便。下面会介绍

如果你是DigisparArduino板子,就需要设置一下了。

然后运行Arduino,打开File菜单下的Preferences,在Additional Boards manager中输入下面网址:

http://digistump.com/package_digistump_index.json如图2-8

图2-8

去工具里面的 打开开发板管理器,安装一下 等5分钟。如图2-9

图2-9

最后你选择 工具开发板 digispark (default)

写完程序后。

你就可以去你身边小伙伴的电脑上 插插插了~

五、 一种新型的BadUSB(wifi版)

近两年的 badusb社区又有geek鼓捣出新玩意,比如说这样的:

如图3-1-2

图3-1

图3-2

将wifi模块焊上去

增加了wifi模块的badusb,可以通过wifi连接的形式,将代码烧进内存。

在实际的攻击场景则更容易按照需求对代码进行测试,也为攻击方式增加更多的可能性。

所需要的设备

ESP8266 Wi-Fi芯片

我推荐使用ESP-12。它使用广泛,价格便宜,体积小巧,拥有4MB的闪存。

但是,如果你是初学者,你应该从NodeMCU或者Wemos d1 mini等开发者板开始。

ATmega32u4

Arduino Micro和Arduino Leonardo使用ATmega32u4作为例子。您也可以购买Arduino Pro Micro或其他使用ATmega32u4的廉价Arduino克隆。我将使用ATmega32u4 CJMCU甲虫。

(一个3.3V稳压器)

我把它放在括号内,因为如果你的ATMega32u4板不提供3.3V,你只需要这个。ESP8266仅适用于3.3V,因此根据您的电路板,您可能需要一个稳压器,以便从5V获得3.3V电压。

参考接线图:如图3-3

图3-3

引脚连接图:如图3-4

图3-4

具体步骤可以参考github地址: https:/***********************ifi_ducky如图3-5

图3-5

打开 NodeMCU Flasher 写入软件

刷入bin 固件 https:/***********************ifi_ducky/releases

中文版固件:

http://files.cn*******************wo2/esp8266_wifi_duck_4mb_zh.zip

将的Wi-Fi Ducky插入并连接到新的Wi-Fi

默认网络WiFi Duck。

密码是quackquack。

输入 http://192.168.4.1 进入管理地址

如图3-6-7

图3-6

图3-7

(发挥你的想象力,就可以让板子变得更强大)。

六、最危险的U盘—USB killer

USB kill用于测试USB端口防止电源浪涌攻击。最新发布的USB Kill 3.0可以测试,设备是否有抵御这种攻击的能力。

(当然了,抵御不了这种攻击的设备,基本都会冒烟什么的)

根据其最早开发团队做的统计,约95%的设备,根据其发布在YouTube的视频,包括三星GalaxyS9+在内的手机 也均无法抵御USB 的攻击。如图3-8

图3-8

那么他的攻击方式到底是什么呢?如图3-9-4-1

图3-9

图4-1

虽然外观U盘长得差不多,但是其内部并不是真正的U盘结构,而换成了电容。它从其电容连接的元件的USB电源中收集功率,直到其达到高电压,然后再将高电压再反向放电到USB接口。

就好比,这东西就像个电荷储存器,来收集USB接口供给他的能量,等达到足够高压的时候,再反向输出给接口。

据他们团队所说,苹果是唯一一家,可以防御这种攻击方法的设备。

攻击效果如图4-2

图4-2

其他键盘攻击

热键干扰攻击:通过模拟或劫持用户常用的快捷键操作来实现恶意目的,可分为软件模拟型和硬件劫持型。软件模拟型通过驱动程序或脚本拦截键盘事件,如利用Windows的SetWindowsHookEx函数实现全局热键监听与篡改;硬件劫持型通过改装键盘电路或加装USB硬件设备,在用户触发热键时优先执行攻击者指令。

• 键盘记录器攻击:这是一种常见的攻击方式,攻击者通过在受害者计算机上安装键盘记录器软件或硬件设备,记录用户在键盘上的输入信息,然后发送到攻击者的服务器,从而获取用户的敏感信息,如密码、账号等。

• 侧信道攻击:通过监控键盘按键产生的物理信号来推断用户输入的密码或其他敏感信息,包括电磁键盘侧信道攻击、声学键盘侧信道攻击等。例如,电磁键盘侧信道攻击利用电磁传感器捕获键盘按键过程中产生的电磁辐射,声学键盘侧信道攻击则使用麦克风捕获键盘按键产生的声音信号,通过分析这些信号推断用户输入内容。

• 按键注入攻击:操纵USB设备向目标系统插入未经授权的按键,利用HID协议向目标系统注入恶意按键,绕过传统安全措施,使系统易受未经授权的操作影响。例如“USB橡胶鸭”就是一种用于按键注入的工具,它能以极快的速度键入预先编程的按键,无需用户干预即可执行命令和脚本。

(本章完)

相关推荐