[ffffffff0x] IOT安全 :HID

2021-01-05 10:19:28 浏览数 (1)

前言

随着国内网络安全制度的不断完善,网络管理人员安全意识也逐步提高,大部分公司的内部网络出网有着严格的管控限制,从外网入侵难度变得极高,因此攻击者也在不停的改变攻击手段。如今,使用USB设备进行攻击的案例也屡见不鲜。本文将介绍常见的利用USB设备进行钓鱼攻击的手段。


什么是HID攻击

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

而HID攻击就是攻击者将USB设备模拟成为键盘,让电脑识别成为键盘,再进行脚本模拟按键进行攻击。

Badusb也属于HID攻击的一种,在badusb之前还有两种HID攻击,分别是USB RUBBER DUCKY(usb橡皮鸭)和Teensy.

USB RUBBER DUCKY

USB RUBBER DUCKY简称usb橡皮鸭,是最早的按键注入工具,可根据对应要求定制硬件。价格较贵,不过目前已形成了成熟的商业模式。可在 http://www.ducktoolkit.com/Home.jsp 自助生成攻击脚本。

Teensy

Teensy是拥有芯片且功能完整的单片机开发系统,可模拟键盘和鼠标。经开发的Teensy usb设备可被电脑识别成键盘或鼠标,再执行编程进去的恶意代码。价格亲民,开源性强且可以和kali配合使用。Teensy芯片的开发,可以在Arduino中进行,不用担心枯燥的汇编与机器代码。因为Arduino IDE具有使用类似Java,C语言的Processing/Wiring开发环境。环境安装与搭建也非常便捷,可以从 http://www.arduino.cc 下载安装包,进行安装。

BadUSB

BadUSB早在2014年底的PacSec会议上便已提出,这是USB协议中的一个漏洞————USB设备可以伪装成其他任何设备,如输入设备、网卡等。

BadUSB是在“USB RUBBER DUCKY”和“Teensy”攻击方式的基础上用通用的USB设备(比如U盘)。“USB RUBBER DUCKY”、“TEENSY”、“BadUSB”三种最终都是利用了USB协议的漏洞而进行攻击的,“BadUSB”和另外两者的区别在于:BadUSB可以利用普通的USB设备,而不需要进行硬件定制,更具有普遍性。

USBkiller

USB杀手是一种外观类似于USB拇指驱动器的设备,它会向所连接的设备发送高压电涌,从而损坏硬件组件。其制造商声称,该设备旨在测试组件免受电涌和静电放电的影响。但是,已经发生了几次恶意使用的情况,并且任何大公司都不使用该设备进行设备测试。

Digispark

Digispark 是一个基于 ATTINY85 微控制器的 USB 开发板,体积小且价钱便宜,但功能方面没有 Arduino 强大。代码与 Arduino 大同小异,但使用的是 Arduino IDE 开发。

接下来,以ATTINY85开发板为演示,展示如何制作简单的Digispark

先安装 Arduino IDE

从官网按照自己的操作系统下载并安装 https://www.arduino.cc/en/main/software

安装完成后,打开 Arduino IDE 应用程序,依次选择 File -> Preferences ,并在字段名为“Additional Boards Manager URL”的输入框中,输入以下 URL。

http://digistump.com/package_digistump_index.json

安装 Digispark 的驱动(32位操作系统和64位操作系统安装程序不同)

https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip

运行 Install Drivers.exe

进入“工具”菜单,然后选择“开发板”子菜单 - 选择“开发板管理器”

然后从类型下拉菜单中选择“贡献”, 选择“Digistump AVR Boards”包,然后单击“安装”按钮

最后,打开 Tools -> Board,然后选择 Digispark (Default — 16.5mhz)并将其设置为默认值。

用无害的 payload 演示

代码语言:txt复制
#include "DigiKeyboard.h"

void setup() {

  DigiKeyboard.delay(500);
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);//win r
  DigiKeyboard.delay(100);
  DigiKeyboard.println("cmd");
  DigiKeyboard.delay(500);
  DigiKeyboard.println("shutdown -f -s -t 10");
}

void loop() {

}

将上面的代码复制到软件中,点击左上角 "验证" 按钮,等待编译完成,检测代码是否有误。当然你可以跳过这一步直接点击上传 :)

点击上传按钮。底部状态框现在会要求插入Digispark - 插入它 - 或者拔下并重新插入它。

此时,若设备无问题,即可上传成功。


总结

本文介绍了HID攻击的几种方法,以ATTINY85开发板为演示,展示了如何制作简单的Digispark的过程。受篇幅限制,BadUSB内容会在之后的文章中进行补充。HID攻击需配合社会工程学才能进行攻击,因此除了设备上的防护能力要增强,个人的安全意识也需要增强。


本文作者 r0fus0d

0 人点赞