圖片來源:https://docs.flipper.net/bad-usb
今天我們要來介紹 Flipper 最有趣也是變化最多元的功能之一。
Flipper Zero 可以作為 BadUSB 裝置,被電腦識別為人機介面裝置(HID),例如鍵盤。BadUSB 裝置可以更改系統設置、開啟後門、檢索資料、reverse shell,或基本上執行任何可以通過實體訪問實現的操作。這是通過執行一組用橡皮鴨腳本語言(也稱為 DuckyScript)編寫的命令來完成的。這組命令也被稱為 payload。
今天我們就來好好介紹這個功能吧~
請注意,透過 Flipper Zero 學習的資訊技術與知識,目的在於提升個人的技術能力和資安意識。我們強烈呼籲大家,絕對不要使用所學知識從事任何違法行為。您的合法使用是我們的期望,也是您自身責任的一部分。
在使用 Flipper Zero 作為 BadUSB 裝置之前,我們需要使用腳本語言在任何常用的 ASCII 文本編輯器中以 .txt 格式編寫 payload。Flipper Zero 可以執行擴展的橡皮鴨腳本語法。這種語法跟經典的 DuckyScript 1.0 兼容,但提供了額外的命令和功能,如 ALT + Numpad 輸入法、SysRq 命令等。
我們可以透過 qFlipper 或是 Flipper Mobile App 把寫好的腳本丟到 SD Card/badusb/
的路徑下,之後就可以從 Flipper 執行這些檔案了。
我們執行腳本的方式有兩種,步驟各自如下:
首先我們關掉 qFlipper 然後到 Main Menu -> Bad USB,選擇要執行的腳本按下 OK 接著透過 USB 線接上電腦就可以執行腳本了。
比較特別的是藍芽的功能,首先我們到 Main Menu -> Settings -> Bluetooth 打開藍牙的設定,然後關掉 qFlipper 之後到 Main Menu -> Bad USB 選擇要執行的腳本,然後到 Config 選擇 BLE 之後只要電腦連上 Flipper 的藍芽就會自動執行腳本了,雖然會跑出配對畫面但是直接按 OK 不用真的配對。
這邊我們透過寫一個 rickroll 腳本來示範 BadUSB 的功能:
首先 REM
代表的是註解,所以剛開始我們先透過一秒的 delay 確定系統有偵測到鍵盤,接著我們嘗試模仿 Mac 打該 Spotlight 的方式 Command + SPACE,而 Command 在 duckyscript 裡面是 GUI
,然後我們透過 STRING
輸入 Safari 的字串嘗試打開 Mac 預設安裝的瀏覽器,然後搭配上一些暫停確定指令不會輸入過快,接著就是透過打開新視窗並且輸入網址然後按下空白鍵開始播放,有時候如果有些人的網速比較慢可以把等待時間拉久一點再按播放。
然後在測試的過程中搭配一些線上的按鍵工具 debug 發現 duckyscript 沒辦法執行兩個以上的組合鍵。
腳本如下:
REM Initial delay to ensure the system detects the keyboard
DELAY 1000
REM Open Spotlight
GUI SPACE
DELAY 500
REM Type 'Safari' and open it
STRING Safari
DELAY 500
ENTER
DELAY 1000
REM Open a new tab (if Safari wasn't already open to a blank page)
GUI t
ALT GUI F
DELAY 500
REM Go to YouTube and play a specific video
STRING https://youtube.com/shorts/fDzjcDqJ0Ig?si=NwoL1eUm1tM-wiGh
DELAY 500
ENTER
DELAY 4000 REM Wait for the page to load
REM Simulate pressing space if needed to play the video
SPACE
我們用藍芽示範給大家看,首先我們把名稱偽裝成我常用的耳機:
然後在出現配對畫面的時候直接按 OK 就可以了。
效果如下:
成功!
今天我們學到了如何把 Flipper 當作 BadUSB 的工具,而且也實際的寫了一個 rickroll 的腳本,明天我們會來寫看看其他 BadUSB 的應用,各位敬請期待!