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可以模仿键盘、鼠标操作,所以常规的安全软件、杀毒软件不能起作用。显然不让任何不受信任的硬件连接自己的电脑是最安全的选择。

转载于:https://www.cnblogs.com/h2zZhou/p/7305053.html

基于Wi-Fi的HID注射器,利用WHID攻击实验相关推荐

  1. android环境监测,基于Wi―Fi和Android家居环境监测与实现

    摘 要 为了人们生活环境健康安全,实现家居环境检测,利用现在手持智能设备,设计出一种基于Android的家居检测系统.本文采用了具有Android操作系统的智能手机或平板电脑作为家居设备终端,以STM ...

  2. wifi频率和zigbee干扰_浅谈ZigBee和Wi—Fi的共存和干扰

    龙源期刊网 http://www.qikan.com.cn 浅谈 ZigBee 和 Wi - Fi 的共存和干扰 作者:姜伟 朱凯 刘童 来源:<科技视界> 2013 年第 16 期 [摘 ...

  3. 比较802.11ac(Wi‑Fi 5)和802.11ax(Wi‑Fi 6)

    MIMO 802.11ac仅在下行模式下,支持多用户MIMO. 802.11ax不仅下行链路:也在上行链路支持MIMO功能,因此多个用户可以同时上传视频. 调制方法 802.11ax具有更高的调制方案 ...

  4. TF之GD:基于tensorflow框架搭建GD算法利用Fashion-MNIST数据集实现多分类预测(92%)

    TF之GD:基于tensorflow框架搭建GD算法利用Fashion-MNIST数据集实现多分类预测(92%) 目录 输出结果 实现代码 输出结果 Successfully downloaded t ...

  5. DL之CNN:基于CRNN_OCR算法(keras,CNN+RNN)利用数据集(torch,mdb格式)训练来实现新图片上不定长度字符串进行识别—训练过程

    DL之CNN:基于CRNN_OCR算法(keras,CNN+RNN)利用数据集(torch,mdb格式)训练来实现新图片上不定长度字符串进行识别-训练过程 目录 输出结果 设计思路 核心代码 输出结果 ...

  6. DL之CNN:基于CRNN_OCR算法(keras,CNN+RNN)利用数据集(torch,mdb格式)训练来实现新图片上不定长度字符串进行识别—预测过程

    DL之CNN:基于CRNN_OCR算法(keras,CNN+RNN)利用数据集(torch,mdb格式)训练来实现新图片上不定长度字符串进行识别-预测过程 目录 输出结果 设计思路 核心代码 输出结果 ...

  7. Keras之DNN:基于Keras(sigmoid+linear+mse+predict)利用DNN实现回归预测——DIY多分类数据集预测新数据点

    Keras之DNN:基于Keras(sigmoid+linear+mse+predict)利用DNN实现回归预测--DIY多分类数据集&预测新数据点 目录 输出结果 实现代码 输出结果 实现代 ...

  8. 基于BC95的数据转发,利用Python实现UDP接收数据,TCP转发数据

    基于BC95的数据转发,利用Python实现UDP接收数据,TCP转发数据 文章信息 环境信息 系统概览 基于Python的UDP(服务端)数据接收 1. UDP接受的数据如何读取 文章信息 撰写日期 ...

  9. 基于《仙剑奇侠传柔情版》利用Java的简单实现(一)

    基于<仙剑奇侠传柔情版>利用Java的简单实现(一) 2018-12-01 23:55:36   by Louis  一,新建一个类GameFrame.class,具体代码如下: pack ...

  10. 基于jupyter notebook的python编程-----利用梯度下降算法求解多元线性回归方程,并与最小二乘法求解进行精度对比

    基于jupyter notebook的python编程-----利用梯度下降算法求解多元线性回归方程,并与最小二乘法求解进行精度对比目录 一.梯度下降算法的基本原理 1.梯度下降算法的基本原理 二.题 ...

最新文章

  1. OKR的火爆,正是基于这些价值
  2. VS2012生成ReactOS的VS工程失败(三)和 “ cl is not able to compile a simple test program“错误
  3. SLAM-ch2-使用kdevelop创建helloWorld程序
  4. 1.5 Map集合:HashMap 和TreeMap 类
  5. 我们应该学习什么 java、C#还是C++(VC)
  6. docker compose linux安装以及使用
  7. 企业——Docker容器的搭建及简单应用
  8. matlab显示曲线图中某个点的坐标值
  9. [深度学习论文笔记][Depth Estimation] Depth Map Prediction from a Single Image using a Multi-Scale Deep Netw
  10. 联发科之殇:破碎高端梦
  11. 安装好vmware后界面默认英语如何修改成中文或者其他语言
  12. 面向对象文字游戏,蜈蚣怪和蛇怪
  13. CSS动态绑定背景图片
  14. 错误数据(图片)去除
  15. 【译】UI 的黑暗面!暗色背景的优势
  16. 重复性、分辨率的计算方法
  17. 学会做笔记-子弹笔记学习概要一
  18. Trinity简介(1)--用于无参考基因组的转录组de novo组装
  19. 计算机网络验证型实验
  20. 数字音频芯片--Digilent 公司PmodI2S芯片控制

热门文章

  1. docker_4 数据卷技术
  2. 高中信息技术——VB数据类型和基础语句结构
  3. html中心点缩放,html canvas 让物体随物体中心缩放
  4. PAT (Basic Level) Practice1016 部分A+B
  5. Spark Session 与 Spark Context的区别
  6. 新浪微博分享 小记!!!(尚未成功)
  7. LeetCode 387:first-unique-character-in-a-string
  8. 基于JDBC的数据库连接池高效管理策略
  9. 【原创】VS2010 C++ Debug 出现 SXS: RtlCreateActivati...
  10. Windows移动开发(二)——闭关修炼