qiaoweiyiyi 发表于 2019-2-2 11:08:21

基于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实验,则可以远程执行命令,例如通过PowerShell远程下载文件等等,这将会对目标主机造成难以预料的影响。



因为是研究性质所以没有继续深入挖掘WHID的应用,而且也意识到使用Wi-Fi有一定的局限性,可以设想采用蓝牙或2.4G传输的方式提高传输的稳定性或是传输距离等,相信对HID的攻击绝不止于此。

和BadUSB类似,WHID可以模仿键盘、鼠标操作,所以常规的安全软件、杀毒软件不能起作用。显然不让任何不受信任的硬件连接自己的电脑是最安全的选择。


本文作者:网络安全通,转载自FreeBuf





页: [1]
查看完整版本: 基于Wi-Fi的HID注射器,利用WHID攻击实验