天天看點

資料洩露防護- BadUSB 制作 模拟

1. 什麼是BadUSB

   找度娘/谷歌爺爺

2. 參考網站

  1. https://github.com/adamcaudill/Psychson/wiki/Known-Supported-Devices
  2. https://github.com/adamcaudill/Psychson (有具體制作BadUSB的流程說明)

3. 必要工具

  1. badusb支援的USB:<https://github.com/adamcaudill/Psychson/wiki/Known-Supported-Devices >
  2. 需要下載下傳的檔案儲存在本地:(Phison 打封包件說明)
  3. PsyChson在GitHub上的打封包件: <https://github.com/adamcaudill/Psychson>
  4. 實驗的USB 類型:SanDisk Ultra 16Gb USB 3.0 SDCZ48-016G
  5. 檢視USB固件工具:<http://www.upan.cc/tools/mass/Phison/>,這裡我下載下傳了Phison MPALL v3.72.0B.zip
  6. PS2251-03參數(官網)

4. 環境搭建

  1. 環境搭建

     a.  下載下傳安裝

    • .Net 4.0  <http://www.microsoft.com/en-us/download/confirmation.aspx?id=17851>
    • Visual Studio 2012 Express, 用于編譯工具:< http://www.microsoft.com/en-us/download/details.aspx?id=34673 >
    • SDCC(small Device C Compiler) 到 “(預設)C:\Program Files\SDCC”目錄下: < http://sdcc.sourceforge.net/ >

b. 查找固件版本等相關資訊

方法1:

下載下傳 PsyChson 在GitHub 上的打封包件Psychson-master.zip ,下載下傳到本地,

轉到 Psychson-master\Psychson-master\DriveCom 目錄下,

用 VS 打開 sln 字尾檔案,

重新編譯, ..\obj\Debug\ 目錄下生成 DriveCom.exe 可執行檔案.

或者直接使用Psychson-master\tools\目錄下的 DriveCom.exe 即可

複制此exe 檔案到 C槽下(為了便于使用指令視窗)

輸入指令, 如右圖, 将傳回硬碟資訊

資料洩露防護- BadUSB 制作 模拟
資訊中看是否有如下字段(Reported chip type:2303) (這是目前唯一支援的 chip type)
資料洩露防護- BadUSB 制作 模拟
方法2:  打開 Phison MPALL v3.72.0B.zip 裡的 GetInfo.exe,輸入盤符 G, 點選 Read
資料洩露防護- BadUSB 制作 模拟

可以看到,這裡的 晶片類型 也是 2303, 同時 固件版本是 01.01.10 

但是這裡有個問題是無法看到它是不是  Phison-Chip(群聯晶片)

這個沒法确定的話下面就得自己制作 Burner Image,

是以得查到晶片版本

這裡我們使用另一個工具 ChipGenius.rar,  打開ChipGenius_v4_00_0027_pre2.exe 工具

資料洩露防護- BadUSB 制作 模拟

可以看到 主要型号為 PS2251-03 , 版本是 110

下面開始做固件部分

  1. 備份 固件

    a. 複制 Psychson-master\templates\BNdummy.bin 及FWdummy.bin 到 C槽下,

       修改BNdummy.bin ->BN03V104M.bin(參考)

  運作 DriveCom.exe 執行如下指令,

DriveCom.exe /drive=E /action=DumpFirmware /burner=BN03V104M.BIN /firmware=fw.bin

運作DriveCom, 通過盤符來選擇想要寫入的盤,以及燒錄器鏡像的路徑和存放固件的路徑:

E USB盤符

BN03V104M.BIN burner image 名

fw.bin 生成的 firmware dump.

如果盤符為E,BN03V104M.BIN 就是燒錄器的鏡像,fw.bin就是讀出來的固件鏡像。

目前隻有 大小為200KB 固件鏡像能被讀出。(這也說明了為何要用 Patriot 8GB Supersonic Xpress 這個U盤)。

  -- 建議 先使 USB進入 bootmode  :

  <Entering Boot Mode https://github.com/adamcaudill/Psychson/wiki/Executing-From-Boot-ROM>

發現 再次插入USB時 無法顯示盤符了,  (郁悶 , 解決方案--Dumping Firmware 後 USB盤符不見了)

當然 USB 也能還原 :  PS2303 USB recovery 複原

解決方案 Pin Shorting
參考官方給的圖檔
資料洩露防護- BadUSB 制作 模拟
PinsToShortUponPlugInForBootMode.jpg 

系統不再顯示盤符,但是我感覺到已經被識别了,但是系統并沒有把它當做USB 來識别,

而且 USB 訓示燈 一閃一閃的,是以參考下面連結

資料洩露防護- BadUSB 制作 模拟

https://github.com/adamcaudill/Psychson/issues/14

Entering Boot Mode from Software

출처: <https://github.com/adamcaudill/Psychson/wiki/Executing-From-Boot-ROM>

出去 USB 外殼(ㅠㅠ), 拆拆拆

找個 螺絲刀 抵在 上面箭頭訓示的 pin 1和 2 位置 , 然後插入電腦,訓示燈不再閃動

資料洩露防護- BadUSB 制作 模拟
在 CMD 中再次輸入如下指令
資料洩露防護- BadUSB 制作 模拟
可以看到,USB 又可以識别了,但是系統可以顯示其盤符了
資料洩露防護- BadUSB 制作 模拟

問題解決 繼續開始備份固件, 又發生錯誤了 (DeviceIoControl failed:0079)

資料洩露防護- BadUSB 制作 模拟

參考 https://github.com/adamcaudill/Psychson/issues/14 發現有人跟我發生了一樣的錯誤

意思是這個USB 裡面沒有

内置 Phison-Chip(群聯晶片) ,

類似如下

我通過 ChipGenius.rar,上面這個工具檢查之後,

發現是Phison-Chip(群聯晶片)

不管如何, 同一個問題了。

  1. 下載下傳對應的 Burner Image
      1. 打開 http://www.usbdev.ru/files/phison/  轉到 “Additional Files ” 段,

      查找之前收集到 的  PS2251-03  對應的固件 

      下載下傳後,解壓, 找個 BN03V104M.BIN ,放到 C槽

開始測試:

Running Demo 1 (HID Payload)

출처: <https://github.com/adamcaudill/Psychson>

  1. 建立一個腳本(參考:https://github.com/adamcaudill/Psychson),複制裡面任何一個例子,儲存為 keys.txt檔案,放到C槽根目錄下,方面使用指令
  2. 使用Duckencoder檔案夾下的encoder.jar工具編譯這個腳本(這個腳本也放到 C槽根目錄下)
  3. 資料洩露防護- BadUSB 制作 模拟
  4. 這時将生成 inject.bin檔案
  5. 資料洩露防護- BadUSB 制作 模拟
  6. 然後把使用者自定義固件名複制到 CFW.bin -> hid.bin,然後把 inject.bin嵌入到 hid.bin裡面,(注意,EmbedPayload.exe 也是通過 VS編譯出來的)
  7. 資料洩露防護- BadUSB 制作 模拟
  8. 出現  signature not found錯誤(解決方案https://github.com/adamcaudill/Psychson/issues/29)
再次運作一次, OK
資料洩露防護- BadUSB 制作 模拟
把固件寫入 USB

DriveCom.exe /drive=G /action=SendFirmware /burner=BN03V104M.BIN /firmware=hid.bin

G: USB盤符

BN03V104M.BIN :  burner image檔案

hid.bin : 寫入了腳本的固件。

如果盤符為G,BN03V104M.BIN 就是燒錄器的鏡像,fw.bin就是要寫入的固件鏡像。

資料洩露防護- BadUSB 制作 模拟

重新插入 U盤,發現 U盤自動打開買了視窗,運作 Hello World .

資料洩露防護- BadUSB 制作 模拟

結論: 1. 隻要可以逆向固件,可以植入任意惡意代碼(已經驗證),不是危言聳聽 2. 人的貪婪心理, 撿到的U盤就别急着插上電腦看有沒有豔照了,有可能這就是個BadUSB 3. 現有的防毒軟體不會有任何提示,一點都沒有!

繼續閱讀