BadUSBを赤外線リモコンで遠隔操作する「IR-BadUSB」Black Hatでハードウェアハック!(2)(2/3 ページ)

» 2022年09月21日 07時00分 公開
[今岡通博MONOist]

ソースコード:setup()

#include <IRremote.h>
#include "Keyboard.h"
int recvPin = 7;
IRrecv irrecv(recvPin);
void  setup ( )
{
  irrecv.enableIRIn(); 
  pinMode(8,OUTPUT);
  pinMode(9,OUTPUT);
  digitalWrite(9,HIGH);
  Keyboard.begin();
}
リスト1 ソースコード:setup()

 リスト1は、IR-BadUSBのセットアップを行うためのソースコードになります。ArduinoのIRremoteとKeyboardのライブラリを使用します。IRremoteは赤外線信号を符号化するライブラリ、KeyboardはこのマイコンをPCのキーボードとして動作させるためのライブラリです。セットアップ機能は起動時に1回だけ実行されます。GPIOは、IRレシーバーの信号端子とIRレシーバーのVCC端子に正電圧、GND端子に0V電圧を供給するように設定します。この設定により、ブレッドボード上に余計な配線をすることなくIRレシーバーをブレッドボードに挿して使うことができます。

ソースコード:loop()

void  loop ( )
{
  decode_results  results;       
  if (irrecv.decode(&results)) { 
      if (results.value==0xFF48B7)
          Keyboard.println("Hello IRBadUSB! #0");
      if (results.value==0xFF906F)
          Keyboard.println("Hello IRBadUSB! #1");
      irrecv.resume();            
  }
}
リスト2 ソースコード:loop()

 Setup関数が実行された後、loop()関数が一定時間ごとに何度もエンドレスに呼び出されます(リスト2)。IRレシーバーが0xFF48B7を受信するとキーシーケンス"Hello IRBadUSB! #0"を、#0xFF906Fを受信した場合は、"Hello IRBadUSB! #1"というキーシーケンスをPCのキーボードとして送出します。これらの#0と#1は、IRリモコンの0と1のキーが押されたことを示しています。

Digispark Attiny 85

 図5のように、Arduino Pro Microよりさらに小さなマイコンボード「Digispark Attiny 85」を使えば、USBドングルの中に組み込むことも可能です。まさに、USBメモリ形状のIR-BadUSBを実現できるわけです。この他にも、開発ボードの「Leonardo USB ATMEGA32U4 mini」もDigispark Attiny 85と同様に小型でPCのUSBポートに直接差し込めるので、ドングルに組み込むことが可能です。

図5 図5 マイコンボード「Digispark Attiny 85」[クリックで拡大]

Wi-Fiスマートデバイス

 図6はWi-FiとIR通信の橋渡しをするデバイスの内部構造です。プロセッサには「ESP32」を使用しています。このデバイスをアクセスポイントモードにしてターゲットのオフィスに置くと、モバイル端末などを使ってオフィス外からIR-BadUSBを遠隔操作される危険性があります。

図6 図6 Wi-FiとIR通信の橋渡しをするデバイス[クリックで拡大]

赤外線LEDライト

 赤外線の届く範囲を広げるために、暗視カメラ用の赤外線LEDライトを使う方法もあります。図7の赤外線LEDライトは以下のような仕様になっています。

  • 48個の赤外線LEDを搭載
  • 暗視カメラと組み合わせて使用
  • 赤外線LEDの波長:940nm
  • 電源アダプター:DC12V
図7 図7 暗視カメラ用の赤外線LEDライト[クリックで拡大]

 赤外線LEDライトの多くは、夜間だけ動作するように光センサーが内蔵されています。今回のIR-BadUSBへの適用では、光センサーの機能は不要なので、遮光のために何か被せたり、黒いマジックや塗料で塗りつぶしたりする必要があります。もし電子工作が得意であればこの光センサーを基板から除去してもいいでしょう。

Copyright © ITmedia, Inc. All Rights Reserved.