HID Attack是最近几年流行的一类攻击方式。HID是Human Interface Device的缩写,意思是人机接口设备。它是对鼠标、键盘、游戏手柄这一类可以操控电脑设备的统称。

由于电脑对这类设备缺少严格的检测措施,只是简单的识别设备类型,就允许设备对电脑进行各项操作。所以,通过修改篡改设备反馈信息,就可以很轻松的让电脑将其他设备误认为HID设备,从而获取控制权限。尤其是USB和蓝牙这类即插即用接口出现,导致HID Attack成为重要方式。例如,Bad USB就是USB类攻击的典型代表。

近日,研究人员Luca Bongiorni(高级攻防安全专家,主要研究领域包括无线电网络、逆向工程、硬件攻击、物联网和物理安全等)正在利用一种廉价的专用硬件,可以进行远程控制(即通过WiFi或BLE),这就是WHID的诞生原理。

自从HID攻击(即PHUKD、Kautilya、Rubberducky)首次公开露面以来,已经出现了许多令人敬畏的研究和结论,例如Iron HID、鼠标劫持以及最酷的USaBUSe等。

自从我开始研究Teensy系列开发板的设备开始,就一直面临着如何在恰当的时候提供某种有效载荷的问题。刚开始,我通过使用Irongeek的光敏电阻和DIP开关技巧来实现其中的部分载荷。

不过,我很快就意识到,通过无线电频道可以完整的实现全部的载荷。几年前,我正在考虑使用一些廉价的433 MHz TRX模块连接到Teensy Board …可悲的是由于缺乏时间和其他很酷的项目…这个想法被放入了他的待办事项列表中。

什么是WHID Injector(注射器)?

这部分我们将介绍WHID Injector背后的原理及其功能有哪些。

WHID代表基于WiFi的HID注射器,即对HID攻击进行无线化攻击时的一种注入工具。它是一个便宜但是非常可靠的硬件,旨在满足Red-Teamers&Pentesters在HID攻击过程中的相关需求。

WiFi HID注射器的核心主要是Atmega 32u4(通常用于许多Arduino板卡)和ESP-12(提供WiFi功能,通常用于物联网项目中):

WHID的软件

当我开始考虑一个远程控制的HID注入器,需要将ESP芯片组添加到Arduino样板中时,我很快就意识到已经存在一些能够满足我需求的硬件:AprBrother的Cactus Micro Rev2(位于EOL L)。

接着,我开始阅读ESP规范,并考虑如何创建一个简单的PoC方案,让我能够通过WiFi AP远程上传恶意的有效载荷。接下来,我开始对手中的EOL Cactus Micro rev2 硬件进行改进(考虑到也与USaBUSe兼容)。

总体来说,我最后实现的简单GUI如下所示(虽然它看起来很糟,但是确实起作用了):

支持第三方软件

1. USaBUSe

USaBUSe是在2016年第24届Defcon黑客大会上SensePost的Rogan Dawes发布的一个项目。针对“橡皮鸭”进行改进,更加贴近实战。它不仅仅是一个简单的远程HID注入器,还允许绕过当前空间的环境,并通过WHID的ESP wifi进行侧向通道C&C通信。

项目地址:https://github.com/sensepost/USaBUSe

相关链接:

Defcon 24大会视频:https://www.youtube.com/watch?v=HTrQHZtNyBw

Defcon 24大会幻灯片https://media.defcon.org/DEFCON 24/DEF CON 24presentations/DEFCON-24-Rogan-Dawes-Dominic-White-Universal-Serial-aBUSe-Remote-Attacks.pdf

https://sensepost.com/blog/2016/universal-serial-abuse/

USaBUSe PoC视频:https://www.youtube.com/watch?v=5gMvtUq30fA

Cyberkryption教程:https://cyberkryption.wordpress.com/2016/11/27/building-a-usabuse-part-1

2. WiFi Ducky

WiFi Ducky是spacehuhn开发的一个项目,它可以添加诸如实时注入、ESP fw OTA更新等酷炫的功能,进一步简化了WHID软件的攻击效果。

项目地址:https://github.com/spacehuhn/wifi_ducky

3. WiDucky

WiDucky是一款历史较久且非常实用的工具,它具有使用ESP的WiFi作为C&C通信渠道的功能。它还拥有自己的Android应用程序来进行远程控制。

项目地址:https://github.com/basic4/WiDucky

相关的一些视频教程

这里是一些有关WHID注入器的安装过程和功能实现的教程。

模拟WHID攻击Windows 10

Wifi Ducky WHID设备(WINDOWS)

如何在WINDOWS上安装WHID

如何在OSX上安装WHID注入器软件

可能实现的攻击场景

1.典型场景:远程通过WiFi注入

在受害者机器上部署WHID,并通过访问其WiFi AP SSID进行远程控制。(最后,你还可以设置WHID连接到现有的WiFi网络。)

2.社会工程场景:在启用USB的小工具时部署WHID

其背后的主要思想是测试你的目标组织中的社会工程弱点(例如DLP策略违规),并绕过对受害者PC的物理访问限制。

通常,我会创建一个附有武器化USB小工具的小册子(社会工程攻击方法实力模版链接如下:https://github.com/whid-injector/WHID/tree/master/tools/Social_Engineering_Lures),然后使用一个通用的传输载体(例如USB等离子球、DHL、FedEx等)。

结论

正如你在上述的第三方软件部分看到的一样,WHID具有很大的潜力,不仅可以发挥HID注入器的常用功能,还可以绕过气隙(Air-Gapped)环境。

如果你对这种工具有兴趣,可以去AprBrother预订。

地址:https://blog.aprbrother.com/product/cactus-whid

最后总结一些相关链接:

http://www.irongeek.com/i.php?page=security/programmable-hid-usb-keystroke-dongle

https://github.com/whid-injector/WHID/tree/master/sketches/cactus_micro_rev2

https://github.com/sensepost

Wi-Fi Ducky效果演示

材料

1.CJMCU-Beetle Leonardo USB ATMEGA32U4

2.3.3V电源模块

3.WiFi模块 ESP8266 ESP-12F

下面是网友“g0ttl”的演示

可以直接用duck脚本来写hid代码,不用麻烦的烧录,还可以实时写代码进行发送。

附上图片,焊工太烂哈

WHID Injector:将HID攻击带入新境界的更多相关文章

  1. 制作Wi-Fi Ducky远程HID攻击设备

    1.介绍WIFI DUCKY 它是一个Wi-Fi控制的BadUSB设备来远程执行Ducky Scripts. 使用充当键盘的USB设备来注入攻击,Hak5 的 USB Rubber Ducky 是这种 ...

  2. 将 Sidecar 容器带入新的阶段

    作者 | 徐迪.张晓宇 导读:本文根据徐迪和张晓宇在 KubeCon NA 2019 大会分享整理.分享将会从以下几个方面进行切入:首先会简单介绍一下什么是 Sidecar 容器:其次,会分享几个阿里 ...

  3. FinFET简介

    什么是FET? FET 的全名是“场效电晶体(Field Effect Transistor,FET)”,先从大家较耳熟能详的“MOS”来说明.MOS 的全名是“金属-氧化物-半导体场效电晶体(Met ...

  4. 基于Wi-Fi的HID注射器,利用WHID攻击实验

    WHID代表基于 Wi-Fi 的 HID 注射器,即对 HID 攻击进行无线化攻击的一种注入工具. 实验攻击原理如下图: 攻击者使用ESP8266作为AP,在自己的电脑创建客户端连接AP.在客户端键入 ...

  5. HID高级攻击姿势:利用PowerShell脚本进行文件窃取

    0×01 引言 又到了期中考试了,我又要去偷答案了,一直发现远程下载运行exe的方式不太好,容易报毒所以这里打算用ps脚本. 0×02 关于HID HID是Human Interface Device ...

  6. 利用Arduino快速制作Teensy BadUSB, 攻击计算机

    BadUsb介绍 BadUSB是计算机安全领域的热门话题之一,该漏洞由Karsten Nohl和Jakob Lell共同发现,并在2014年的BlackHat安全大会上公布. 虽然已隔一两年,但还是有 ...

  7. 利用WHID为隔离主机建立隐秘通道

    0 引言 从2014年BADUSB出现以后,USB-HID攻击就这一直被关注,且具争议.争议的焦点是USB-HID的实战效果过于“鸡肋”,无论从早期的BADUSB,还是到后来的各种USB-HID设备, ...

  8. TPYBoard实例之利用WHID为隔离主机建立隐秘通道

    本文作者:xiaowuyi,来自FreeBuf.COM(MicroPythonQQ交流群:157816561,公众号:MicroPython玩家汇) 0引言 从2014年BADUSB出现以后,USB- ...

  9. [推荐]DDOS攻击与防范知识介绍

    [推荐]DDOS攻击与防范知识介绍 DDOS攻防体系建设v0.2(淘宝-林晓曦)     http://wenku.baidu.com/view/39549a11a8114431b90dd866.ht ...

随机推荐

  1. mysql存储引擎的对比

  2. 02 Vue之vue对象属性功能&axios数据请求实现

    1.过滤器的声明和使用 过滤器,就是vue允许开发者自定义的文本格式化函数,可以使用在两个地方:输出内容和操作数据中. 定义过滤器的方式有两种. 1 使用Vue.filter()进行全局定义 2 在v ...

  3. python记录_day06

    一.小数据池 注意大前提!!!! 小数据池只针对整数.字符串和bool值,因为这些数据是不可变的,这样数据的共享才安全 小数据池也称为小整数缓存机制或驻留机制,是指在不同代码块创建部分小数据对象(具体 ...

  4. 『TensorFlow』SSD源码学习_其五:TFR数据读取&数据预处理

    Fork版本项目地址:SSD 一.TFR数据读取 创建slim.dataset.Dataset对象 在train_ssd_network.py获取数据操作如下,首先需要slim.dataset.Dat ...

  5. loj#528. 「LibreOJ β Round #4」求和

    求:\(\sum_{i=1}^n\sum_{j=1}^m\mu(gcd(i,j))^2\) 化简可得\(\sum_{i=1}^{min(n,m)}{\lfloor \frac{n}{i} \rfloo ...

  6. UI界面按钮增强

    (我是菜鸟,知道的少) 1.有HTML页面代码的,可以编辑 <%@page language="abap" %> <%@extension name=" ...

  7. dubbo 负载均衡

    在系统中可以启动多个 provider 实例,consumer 发起远程调用时,根据指定的负载均衡算法选择一个 provider. 在本机配置多个 provider,使用不同的端口: <dubb ...

  8. 我个人对OOP的理解

    OOP面向对象的思维:pay1:封装 A.避免使用非法数据赋值 B.保证数据的完整性 C.避免类内部发生修改的时候,导致整个程序的修改 pay2:继承 A.继承模拟了现实世界的关系,OOP中强调一切皆 ...

  9. C#中使用SqlBulkCopy的批量插入和OracleBulkCopy的批量插入

    1.首先我们做一下准备工作,在sql server和oracle分别建立一个Student表 oracle中 --创建Student表 -- create table Student( stuId n ...

  10. Mysql计算并保留两位小数

    如:123456.789 转成 123456.79 自动,));