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

*本文作者:网络安全通,转载请注明来自FreeBuf.COM

声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
推荐阅读