筆者先前曾經介紹過,開發者 Samy Kamkar 透過將 Teensy 開發板偽裝成鍵盤滑鼠,竄改 Mac OS X 的 DNS 設定,如此就有機會讓使用者誤入釣魚網站。這次 Samy Kamkar 又帶來了新的工具,它將側錄 Microsoft 無線鍵盤輸入資料的設備裝入 USB 充電器,這個裝置能夠自動記錄並傳送使用者在鍵盤輸入的所有資料。
無線運作,免看守照樣竊資
Samy Kamkar所 帶來的新「給西」叫作 KeySweeper,是款以 Arduino 為基礎的鍵盤側錄裝置,能夠側錄所有周遭 Microsoft 無線鍵盤的輸入資料,包括使用者以鍵盤輸入的帳號與密碼。
由於 KeySweeper 裝在 USB 充電器的外殼之中,並且保有充電功能,這種偽裝的技術,就如我們所熟知的「好摺凳」一樣,能夠暗藏殺機於無形之中,就算正大光明的使用,也不容意露出馬腳。更可怕的是,KeySweeper 裝有充電式鋰電池,當它插入插座時,能夠以室內電源運作並為電池充電,拔下插座後還可以透過鋰電池繼續運作一段時間。
KeySweeper 也裝有行動電話模組,可以透過 2G 網路(由於傳送的資料量很小,2G 網路的頻寬不會造成影響)或簡訊將側錄到的資料即時傳送出來。把 KeySweeper 送到「受害者」手上後,受害者可能不疑有他地把它當做一般 USB 充電器使用,如此一來受害者的資訊安全就受到很大的威脅。
▲KeySweeper 有著 USB 充電器般的外殼,能夠隱藏殺機於無形。(圖片來源:samy.pl)
▲機身內裝有 Arduino Pro mini、RF 模組、行動電話模組以及電源模組。(圖片來源:samy.pl)
▲受害者從外觀可能不會發現 KeySweeper 有任何異狀。(圖片來源:samy.pl)
▲KeySweeper 的 USB 端子確實可以提供電力,可以降低受害者的戒心。(圖片來源:samy.pl)
破解鍵盤加密機制
KeySweeper 主要的功能在於擷取 Microsoft 無線鍵盤的 2.4GHz RF 訊號,並進行解密,然後將資料儲存下來,或是透過手機通訊模組即時發送給使用者。Samy Kamkar 也準備了瀏覽器介面的操作後台,可以即時顯示被側錄鍵盤的輸入狀況。
為了節省簡訊費用,KeySweeper 能夠透過設定,在偵測關鍵字之後傳送後續的相關文字,比方說 KeySweeper 偵測到受害者輸入「www.bank.com」之後,傳送接下來輸入的文字,這些文字很可能就是登入網路銀行的帳號與密碼。
在設計 KeySweeper 的過程中,最重要的部分就是鍵盤訊號的解密過程。KeyKeriki 這款裝置的開發者 Thorsten Schröder 與 Max Moser,透過逆向工程的方式破解了 Microsoft 無線鍵盤的加密流程,但是 KeyKeriki 的尺寸太大,並不適合應用在 KeySweeper。不過 Samy Kamkar 使用了這項成果,並將程式改善為能夠透過便宜且輕巧的微控制器運作,讓 KeySweeper 將尺寸縮小到能夠塞入 USB 充電器中。