基于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 ...
随机推荐
- linux下php访问sql server设置
安装freeIDS 官网下载地址: wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.00.18.tar.gz 1.1.到下载目录解压 t ...
- JavaScript——XMLHttpRequest 家族
https://www.zhangxinxu.com/wordpress/2013/10/understand-domstring-document-formdata-blob-file-arrayb ...
- C++ 引用、指针
一.引用 1.引用的作用:给变量起一个别名,是c++对c的扩充.原名和别名有相同的地址,根本上就是同一个东西,只是名字不一样.c++的引用机制主要是为了用作函数参数,增强函数传递数据的能力,比如swa ...
- CSS中的趣事之float浮动
浮动float一般跟left或是right: 特性: 1,包裹性:浮动文本类型时,需要指定宽度width,如果不指定,就会折叠到最小宽度: 2,浮动会影响别的元素: 3,子级浮动,会导致父级高度 ...
- jQuery 首页搜索区域模块随页面滑动而变化
/*搜索区块的颜色变化*/ function search(){ var searchBox = document.querySelector('.m_head'); var bannerBox = ...
- Linux 的 Spinlock 在 MIPS 多核处理器中的设计与实现
引言 随着科技的发展,尤其是在嵌入式领域,高性能.低功耗的处理器成为众多厂商追逐的目标,但是由于技术和工艺的瓶颈,试图在单核处理器上达到这样的目标变得越发困难,于是人们提出了多核处理器的概念.多核处理 ...
- error while loading shared libraries: libclntsh.so.11.1
解决这个问题有两种方法 1.在当前用户下,添加链接库所在路径 LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_ ...
- jQuery中Ajax事件beforesend及各参数含义1
jQuery中Ajax事件beforesend及各参数含义 转自:http://blog.sina.com.cn/s/blog_609f9fdd0100wprz.html Ajax会触发很多事件. 有 ...
- 2D热力图实例
<div style="height: 100px; width: 200px" id="heatmap"></div> <scr ...
- <Spring Cloud>入门一 Eureka Server
1.搭建父工程 主要是添加版本依赖,此处版本是: spring-boot : 2.0.8.RELEASE spring-cloud : Finchley.SR2 <?xml version=& ...