基礎知識介紹#
- BadUSB:盜取你的資訊、破壞你的電腦,反正就是很壞就對了;
- HID:Human Interface Devices 人機交互設備,比如鍵盤、滑鼠就是 HID
- 用 HID 攻擊有什麼好處:可以偽裝成外接設備躲避殺毒軟體的查殺,並可以提前製作好,實現自動化操作
- Teensy++ 2.0:一個非常小而且功能完整的單片機開發系統
- Arduino:一款便捷靈活、方便上手的開源電子原型平台 (讓你寫插入 USB 後執行的操作程式碼的)
材料準備#
一塊 Teensy ++ 2.0 板子:#
淘寶搜索 teensy,注意買有 ++2.0 字樣的,我買的時候 32.1RMB
- 好像有更好的板子,為什麼不買橡皮鴨 (rubber ducky)、或者 teensy 3.6 之類的:
因為窮入門當然是從便宜的開始啦
實物拍攝:
arduino#
下載地址:https://www.arduino.cc/en/Main/Software?setlang=cn
我這裡下載的是 Windows 的 zip 版:
解壓到了 D 盤,重命名為 arduino,打開 arduino.exe,初始狀態是一個空模板:
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
這兩個函數在後面寫所有的程式都要加上,即使其中一個函數的內容為空,我們先看一下工具欄:
Teensyduino 插件#
不安裝不支持 teensy 開發板,下載地址:http://www.pjrc.com/teensy/td_download.html
下載之後安裝,下一步下一步,到選擇目錄這裡,選擇之前 arduino 的目錄,我放在了 D:\arduino:
下一步直接 next:
然後 install 即可,我們安裝之後再來查看工具欄:
此時已經支持 Teensy 開發板了,還多了USB Type
等幾個選項,我們選擇開發板為我們的Teensy+= 2.0
:
選擇端口為僅有的那個端口:
然後點擊取得開發板信息:
後面的程式編譯之前你都要看一眼是不是這樣的配置:
Adruino 基本語法及函數介紹#
常用鍵盤函數:
#include //包含鍵盤模組的頭文件
Keyboard.begin(); //開啟鍵盤通訊
Keyboard.press(); //按下某個鍵
Keyboard.release();//釋放某個鍵
Keyboard.println(); //輸入字元
Keyboard.end(); //結束鍵盤通訊
press 之後一定要 release
常用語句:
delay(500);//延時500ms
Keyboard.press(KEY_CAPS_LOCK);//按下大寫鍵
Keyboard.press(KEY_LEFT_GUI);//按下左邊win鍵
Keyboard.press(KEY_RETURN);//回車
第一個程式#
第一個程式當然是Hello World!
插上 Teensy,打開 arduino,養成好習慣,ctrl+s 保存在桌面,就叫做 demo 吧,然後寫入以下程式碼:
void setup() {
delay(500);
Keyboard.begin();
delay(1000);
Keyboard.press(KEY_LEFT_GUI);
delay(500);
Keyboard.press('r');
delay(500);
Keyboard.release(KEY_LEFT_GUI);
Keyboard.release('r');
delay(500);
Keyboard.println("cmd");
Keyboard.press(KEY_RETURN);
Keyboard.release(KEY_RETURN);
delay(500);
Keyboard.print("you are hacked by soapffz");
delay(500);
}
void loop() {}
確認工具欄裡面都像上面一樣設置好之後,點擊左上角的勾勾,編譯完成後會在下面提示編譯成功並輸出存儲空間等信息,並彈出一個 teensy 默認調試程式:
我們不用跳出來的這個小程式,點擊勾勾旁邊的右箭頭,將程式上傳到開發板中,上傳成功後開發板會自動重連,輸出你提前設計好的效果:
https://img.soapffz.com/archives_video/2018/12/18/archives_20181219_122003.mp4