
KeySweeper is a stealthy Arduino-based device, camouflaged as a functioning USB wall charger, that wirelessly and passively sniffs, decrypts, logs and reports back (over GSM) all keystrokes from any Microsoft wireless keyboard in the vicinity.
KEYSWEEPER // SIGINT // SAMY.PL // REL TO ALL // APPLIED HACKING
KeySweeper は、動作するUSB壁充電器に偽装されたステルス性の高いArduinoベースのデバイスで、周辺のMicrosoftワイヤレスキーボードからすべてのキーストロークをワイヤレスかつパッシブに傍受、復号、記録し、(GSM経由で)報告します。
すべてのキーストロークはオンラインとローカルの両方に記録されます。トリガーワード、ユーザー名、またはURLが入力されるとSMSアラートが送信され、パスワードが露呈します。コンセントから抜かれても、KeySweeperは内蔵バッテリーで動作を継続し、再通電されると自動的に再充電されます。Webベースのツールにより、キーストロークのライブ監視が可能です。
連絡先: @SamyKamkar // [email protected] // http://samy.pl
リリース日: 2015年1月12日
ソースコード/回路図: https://github.com/samyk/keysweeper
単価: 動作内容に応じて$10〜80
ステータス: 運用可能、オープンソース、オープンハードウェア、機密解除済み。
KeySweeper は、動作するUSB壁充電器に偽装されたステルス性の高いArduinoベースのデバイスで、周辺のMicrosoftワイヤレスキーボード(独自の2.4GHz RFプロトコルを使用)からすべてのキーストロークをワイヤレスかつパッシブに傍受、復号、記録、報告します。
キーストロークは、オプションのGSMチップを介してインターネット経由でKeySweeperの運用者に送信されるか、フラッシュチップに保存され、別のKeySweeperデバイスが標的のKeySweeperのワイヤレス範囲内に入ったときにワイヤレスで転送されます。Webベースのツールにより、キーストロークのライブ監視が可能です。
KeySweeperは、特定のキーストローク(例: "www.bank.com")が入力されるとSMSアラートを送信する機能を備えています。KeySweeperがAC電源から取り外されると、シャットダウンしたように見えますが、実際には内蔵バッテリーを使用して密かに動作し続け、AC電源に再接続されると自動的に再充電されます。
KeySweeperは、goodfet.nrfプロジェクトにおけるTravis Goodspeedの研究と、KeyKeriki v2.0プロジェクトのThorsten SchröderとMax Moserの研究を発展させたものです。
$3〜30: ArduinoまたはTeensyマイクロコントローラを使用できます。私の制作では、非常に薄い形状の3.3v Arduino Pro Miniを使用しています。
$1: 私は$1のnRF24L01+ RFチップを使用しています。これは2.4GHzでGFSKを使用して通信します。詳細は後述しますが、これらのチップはeBayで最低$1から購入できます。これらのチップは独自プロトコルでのみ通信でき、傍受を目的としていませんが、後述するように、巧妙な方法でプロミスキャス(無差別)傍受に使用できます。
$6: 私は、AC電力を5V DCに変換する安価なAC USB充電器(整流器)を使用しています。リンクしたこの製品は、開けやすいネジが付いているため、分解が簡単です(私は他のいくつかを開ける過程で壊してしまいました)。GSM版のKeySweeperを使用する場合は、実際には2つのUSB充電器を使用します。小型充電器(iPhone充電器と同様)の内部と、大型USB充電器の外側ケースです。
オプション($2): キーストロークを保存するために、オプションのSPIシリアルフラッシュチップを使用できます。後述のFONA GSMボードを使用する場合は、キーストロークをインターネット経由でライブ保存できるため、これは不要です。ただし、より低コストなオプションを希望する場合は、KeySweeper内のこのチップにキーストロークを保存し、後で2.4GHzワイヤレス範囲内に別のデバイスを持ち込んで、そこからキーストロークを吸い出すことができます。
ほとんどのマイクロコントローラは、データを保存するためのメモリまたはEEPROMが非常に限られているため、これらのキーストロークを保存するフラッシュチップを備える利点があります。
オプション($45): AdafruitはFONAというボードを開発しました。これにより、2G SIMカードを使用してSMSの送受信、電話の発着信、デバイスからのインターネット直接利用が可能になります。
これを使用すれば、キーストロークが即座にバックエンドサーバーへ送信され適切にデータ収集されるため、フラッシュチップは不要です。さらに、標的のキーボードで特定のキーワードが入力された場合、指定した番号にSMSメッセージを送信して工作員に警告することができます。
オプション($3、FONA使用時のみ): FONAにはmini-SIMカード(マイクロSIMではない)が必要です。私はT-MobileのプリペイドSIMカードを使用しています。T-Mobileは2Gに対応しているため、これをお勧めします。ほとんどの他キャリアは2Gネットワークを廃止しているか廃止予定であり、FONAはインターネットに2Gのみ対応しているからです。必ず正しいサイズのSIMカードを入手してください — 詳細はFONAのSIM要件はこちらを参照してください。
オプション($5以上、FONA使用時のみ): FONAはボード上のLiPo/LiOnバッテリー再充電機能を提供します。KeySweeperがAC電源に接続されている間、バッテリーは充電された状態に保たれますが、それでもバッテリーは必須です。さらに、KeySweeperはAC電源から抜かれるとバッテリー電源で密かに動作し続け、AC電源に再接続されると再充電を開始します。
KeySweeperのソースコードはすべて、私のgithubから入手できます: https://github.com/samyk/keysweeper
KeySweeperには複数の部分があります。主要なコードはマイクロコントローラにインストールされ、jQueryとPHPを使用したWebベースのバックエンドがすべてのキーストロークを記録し、標的のキーボードをライブ監視するためのWebインターフェースを提供します。
KeySweeperには、maniacbugのRF24ライブラリから次のファイルも必要です:
RF24.hnRF24L01.hRF24_config.hファイルをkeysweeper_mcu_srcディレクトリにコピーするだけです。また、RF24.hファイル内の#include文を#include <RF24_config.h>から#include "RF24_config.h"に変更する必要があります。
新しいテキストメッセージが届いたときにFONAが通知できるようにする追加オプションを含めているため、私のバージョンのAdafruit FONAライブラリを使用してください。元のライブラリでは、期待した数よりも多くのテキストメッセージがあるかどうかを常にポーリングする必要がありますが、私のバージョンではfona.setSMSInterrupt(1)オプションを有効にでき、これにより新しいSMSメッセージが届くとRI(リング割り込み)ピンが一時的にLowになります。
Webページを通じてキーボードをライブ監視できるバックエンドツールを作成しました。jQuery Terminalプラグインにより、見た目がよりクールになります。
jQuery UI Virtual Keyboardは、KeySweeperのライブスパイインターフェースツールをクールに見せ続けます。ユーザーが実際にキーを押すと、仮想キーボード上のキーが押されたように表示されます。
Microsoftワイヤレスキーボードを入手して手元にある場合、背面を確認してFCC IDを調べることができます。私のキーボードの場合、FCC ID(米国で無線周波数を使用するすべてのデバイスに必須)はC3K1455であり、これはFCCのウェブサイトで簡単に検索できます。
FCCレポートに基づき、キーボードが2403〜2480MHzで通信していることがすぐにわかります。
これが2.4GHzデバイスであるとわかったので、wi-fi、bluetooth、zigbeeなどの一般的な2.4GHzプロトコルを使用しているか、独自プロトコルを使用しているかのいずれかと推測します。このデバイスには専用のUSBドングル(独自のFCC ID、C3K1461付き)が付属しているため、独自の2.4GHz信号である可能性が非常に高いです。
独自の2.4GHzである可能性が高いため、何らかの2.4GHz傍受方法を使用する必要があります。これは802.11ではないため、Wi-Fiスニファは役に立ちません(SkyJackで使用したようなもの)。また、RTL-SDR単体では約2.2GHzが上限のため、RFダウンコンバータを併用しない限り役に立ちません(Digital Ding Dong DitchではRTL-SDRを使用しました)。そこで、強力で安価なソフトウェア無線であるHackRFをすぐに使いたくなりますが、価格に対して非常に強力である一方、さらに安価なハードウェアで済む可能性もあります。
これまでの経験に基づくと、キーボードはNordic nRF24L01+、TI CC2500、またはCypress CYRF6936のようなものを使用していると推測されますが、さらに調査しない限り確実なことはわかりません。