基于Wi-Fi的HID注射器,利用WHID攻击实验
WHID代表基于 Wi-Fi 的 HID 注射器,即对 HID 攻击进行无线化攻击的一种注入工具。
实验攻击原理如下图:

攻击者使用ESP8266作为AP,在自己的电脑创建客户端连接AP。在客户端键入命令发送到ESP8266,它再利用串口转发给Arduino Leonardo。利用Arduino中的Keyboard库就可以使用传输的命令控制目标主机的键盘。
前期准备
1. 硬件设备
Arduino Leonardo

ESP8266 Wi-Fi模块

FT282串口调试模块

2. 软件环境
sockettool
Arduino IDE
串口调试助手
TCP调试助手
实验步骤
1.ESP8266设置
使用串口连接ESP8266,依次键入命令:
AT+CWMODE=3 //设置模式为AP兼Station模式;

AT+RST //模式改变需重启后生效;

AT+CWSAP=”name”,”password”,11,2 //创建一个名为name,密码为password的AP节点;

AT+UART=9600,8,1,0,0 //设置波特率为9600,Arduino和ESP8266波特率需相同;

AT+CIPSERVER=1,8089 //将esp8266设置为server模式,这样才能够在下面被访问;

2. 代码烧录
将写好的代码烧录进Arduino Leonardo,这里选择了主要部分说明:

在loop中循环读取ESP8266向串口发送的数据,判断收到数据时过滤并利用Keyboard库打印在Arduino接入的电脑上。
3. 硬件接线
设置好ESP8266和Arduino之后就可以进行硬件接线了,接线原理图如下:

实际接线图如下:

4. 客户端操作
①连接到之前创建的网络name。
②打开sockettool.exe,点击左侧 “TCP Client” 后点击“创建”来创建客户端:

③ 输入IP:“192.168.4.1”,端口号:“8089”:

④ 点击“连接”,如果连接成功可以看到“已连接”字样:

实验演示
确保在已连接状态下,发送两次“123”:

可以在目标主机看到键入的结果:

实验总结
这里实现的功能只是简单地将输入的字符显示在目标机器上,危害性并不强。但是如果结合之前做过的BadUSB实验(http://www.freebuf.com/news/141833.html?preview=true),则可以远程执行命令,例如通过PowerShell远程下载文件等等,这将会对目标主机造成难以预料的影响。

因为是研究性质所以没有继续深入挖掘WHID的应用,而且也意识到使用Wi-Fi有一定的局限性,可以设想采用蓝牙或2.4G传输的方式提高传输的稳定性或是传输距离等,相信对HID的攻击绝不止于此。
和BadUSB类似,WHID可以模仿键盘、鼠标操作,所以常规的安全软件、杀毒软件不能起作用。显然不让任何不受信任的硬件连接自己的电脑是最安全的选择。
基于Wi-Fi的HID注射器,利用WHID攻击实验的更多相关文章
- 利用WHID为隔离主机建立隐秘通道
0 引言 从2014年BADUSB出现以后,USB-HID攻击就这一直被关注,且具争议.争议的焦点是USB-HID的实战效果过于“鸡肋”,无论从早期的BADUSB,还是到后来的各种USB-HID设备, ...
- TPYBoard实例之利用WHID为隔离主机建立隐秘通道
本文作者:xiaowuyi,来自FreeBuf.COM(MicroPythonQQ交流群:157816561,公众号:MicroPython玩家汇) 0引言 从2014年BADUSB出现以后,USB- ...
- 基于《仙剑奇侠传柔情版》利用Java的简单实现(一)
基于<仙剑奇侠传柔情版>利用Java的简单实现(一) 2018-12-01 23:55:36 by Louis 一,新建一个类GameFrame.class,具体代码如下: pack ...
- Mininet实验 基于Mininet实现BGP路径挟持攻击实验
参考:基于Mininet实现BGP路径挟持攻击实验 实验目的: 掌握如何mininet内模拟AS. 掌握BGP路径挟持的原理和分析过程. 实验原理: 互联网是由相互连接的自治系统AS组成的,通过一个通 ...
- 基于 Source Generators 做个 AOP 静态编织小实验
0. 前言 上接:用 Roslyn 做个 JIT 的 AOP 作为第二篇,我们基于Source Generators做个AOP静态编织小实验. 内容安排如下: source generators 是什 ...
- (转)基于OpenStack构建企业私有云(1)实验环境准备
原文:https://www.unixhot.com/article/407 https://www.cnblogs.com/kevingrace/p/5707003.html-----完整部署Cen ...
- 基于24位AD转换模块HX711的重量称量实验(已补充皮重存储,线性温度漂移修正)
转载:http://www.geek-workshop.com/thread-2315-1-1.html 以前在X宝上买过一个称重放大器,180+大洋.原理基本上就是把桥式拉力传感器输出的mV级信号放 ...
- 针对基于Phison(群联)U盘的BadUSB攻击
修改U盘固件使之在插入电脑时能执行键盘指令.原文和源码在此,粗略翻译了一下.https://github.com/adamcaudill/Psychson 其实还有类似的成品卖,叫做USB Rubbe ...
- Redis利用,攻击内网(ssrf)
Redis语法 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统. Redis是一个开源的使用ANSI C ...
随机推荐
- 动态生成表格呈现还是将表格直接绑定gridview等控件呈现的开发方式选择依据
动态生成表格呈现还是将表格直接绑定gridview等控件呈现的开发方式选择依据:由存储过程决定,如果编写的存储过程可以生成需要呈现的表格则直接绑定,否则要动态生成表格
- c++通过管道pipe获取cmd输出的字符
#include <stdio.h>#include<iostream>#include<string>using namespace std; // 描述:exe ...
- 半斤八两中级破解 (四) TCP_UDP协议转向本地验证
首先要用抓包工具判断是哪种协议,根据封包助手来看,教程中给出的例子是个TCP协议的,此时要记录下包的: 源地址,源端口 目的地址,目的端口 源包大小 目的包大小 然后再重新运行抓包工具和 ...
- Node.js+Express+MVC+Mysql小白创建新项目
1.打开CMD命令窗口,这一步不会的,回家休息,不要看了 2.npm install -g yo 等待时间看个人电脑情况. 如果没有npm命令,建议先安装npm ,npm安装介绍:https://d ...
- 说说windows10自带浏览器Edge的好与不好
用了10几个月了,正式版也升级了,今天来说说微软自带浏览器microsoft Edge的好与不好 先说好的吧 一,浏览器速度非常快,无论是打开还是关闭,或者是语音助手小娜需要调动浏 ...
- 分组密码_计数器(CTR)模式_原理及java实现
一.原理: CTR模式是一种通过将逐次累加的计数器进行加密来生成密钥流的流密码,在CTR模式中,每个分组对应一个逐次累加的计数器,并通过对计数器进行加密来生成密钥流.最终的密文分组是通过将计数器加密得 ...
- CREATE OPERATOR CLASS - 定义一个新的操作符类
SYNOPSIS CREATE OPERATOR CLASS name [ DEFAULT ] FOR TYPE data_type USING index_method AS { OPERATOR ...
- CREATE DATABASE - 创建新数据库
SYNOPSIS CREATE DATABASE name [ [ WITH ] [ OWNER [=] dbowner ] [ LOCATION [=] 'dbpath' ] [ TEMPLATE ...
- 类方法__setattr__,__delattr__,__getattr__
__getattr__,_delattr_,_getattr_ class Foo: x = 1 def __init__(self, y): self.y = y def __getattr__(s ...
- 用element-ui的走马灯carousel轻松实现自适应全屏banner图
写在前面:网站轮播图建议使用swiper组件,非常方便快捷.vue轮播图插件之vue-awesome-swiper 接手一个项目,轮播图是用element-ui的carousel实现的,看起来效果还不 ...