HID攻擊進階——WHID injector
阿新 • • 發佈:2018-03-02
WHID HID 硬件安全 WiFi安全
前言
HID是Human Interface Device的縮寫,意思是人機接口設備。它是對鼠標、鍵盤、遊戲手柄這一類可以操控電腦設備的統稱。延伸出的WHID代表基於Wi-Fi的HID註射器,即對HID攻擊進行無線化攻擊時的一種註入工具。
本次實驗采用的攻擊原理如下圖:
攻擊者使用ESP8266作為AP,在自己的電腦創建客戶端連接AP。在客戶端鍵入命令發送到ESP8266,它再轉發給Arduino Leonardo。利用Arduino中的Keyboard庫就可以使用傳輸的命令控制目標主機的鍵盤。
一、 前期準備
1) 硬件設備:
1. Arduino Leonardo
2. ESP8266 Wi-Fi模塊
- 穩壓器
2) 軟件環境:
- sockettool(在工具集中):
用於連接ESP8266:在電腦上運行軟件創建客戶端,與ESP8266創建的AP之間進行通訊。 - Arduino IDE:
編寫程序燒錄進Arduino Leonardo。實驗用版本為1.8.3. - 串口調試助手(在工具集中):
調試程序所需。
二、 實驗步驟
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波特率需相同
2) 代碼燒錄
在接線之前需要將代碼燒錄進Arduino Leonardo,直接將代碼復制進工程,連接Arduino在IDE界面點擊“上傳”。詳細代碼見附錄,這裏分析關鍵部分。
- 初始化ESP8266:
上述代碼在setup中執行,在每次Arduino連接電源後對ESP8266進行設置。
代碼中“AT+RST”為重啟,“AT+CIPMUX=1”設置為多路連接,“AT+CIPSERVER=1,8089”創建服務器並設置端口。 - 讀取顯示數據:
在loop中循環讀取ESP8266向串口發送的數據並打印在Arduino接入的電腦上。需要註意的是Serial1.readStringUntil(‘:’)這句話,因為使用ESP8266傳輸的數據格式為:“+IPD,0,3:123”,其中123為你輸入的字符,所以使用這句話可以過濾“:”及其之前的字符。
- 初始化ESP8266:
3) 硬件接線
設置好ESP8266和Arduino之後就可以進行硬件接線了,接線原理圖如下:
其中Arduino和ESP8266務必共地,否則容易出現亂碼的現象,這可以使用穩壓器實現。實際接線圖如下:
4) 客戶端操作
1. 連接到之前創建的網絡name。
2. 打開sockettool.exe,點擊左側“TCP Client”後點擊“創建”來創建客戶端:
- 輸入IP:“192.168.4.1”,端口號:“8089”:
- 點擊“連接”,如果連接成功可以看到“已連接”字樣:
三、 實驗演示
確保在已連接狀態下,發送兩次“123”:
可以在目標主機看到鍵入的結果:
HID攻擊進階——WHID injector