はじめに
最近、USB Rubber Ducky というデバイスを購入しました。
このデバイスはパソコンに挿すとキーボードとして認識され、自動で入力を行う特殊な仕組みを持っています。
見た目はUSBメモリですが、内部ではHID(キーボード)として振る舞い、自動入力が可能です。
これは「BadUSB」と呼ばれる攻撃手法の代表例であり、攻撃者がUSBを差し込むだけで特定の操作を実行させられる危険性があります。
本記事では「こうした攻撃ツールが存在する」という前提のもと、動作の仕組みを理解するためにいくつかの動作確認を行いました。
免責:本記事は検証・学習目的で作成しています。第三者の端末やネットワークでの実行、悪用は法律に触れる恐れがあります。検証は必ず自己管理下の環境で行ってください。
デバイスについて
Hak5から購入しました。
価格は100USDとなっていますが、日本への発送にあたりトータルで約140USDほどとなりました。注文から到着まで3週間くらいかかりました。
(参考: Hak5公式販売ページ)
見た目は一般的なUSBメモリとほとんど変わりません。
分解が可能で、内部にはマイクロSDカードスロットなどが搭載されています
また、PCに挿した時に「キーボードとして動作するモード」と「ストレージデバイスとして動作するモード」を切り替えるボタンがあります(初見では分かりづらい)
検証シナリオ
今回は初回ということで以下の簡単なシナリオを試してみようと思います。
- シナリオ① USBを挿したらメモ帳が開く
- シナリオ② USBを挿したら任意のWebページが開く
- シナリオ③ USBを挿したら任意のオンラインストレージからファイルをダウンロードする
シナリオは下記の手順で検証が可能です。
- コードを準備する
- Hak5 PayloadStudioでバイナリファイルに変換する
- USB Rubber Duckyに2.のファイルを保存する
- PCにUSBを挿す
シナリオ①:メモ帳を開く
準備したコード例
このようなコードを準備しました。変換したものをUSB Rubber Duckyに保存します。
GUI r
DELAY 500
STRING notepad
ENTER
DELAY 1000
STRING Hello World
ENTER
動作結果
このような動作となりました。

DELAYを入れているため動作が遅く感じますが、この値を調整すればもう少し早く動作しそうです。
シナリオ②:任意のWebページを開く
準備したコード例(※掲載なし)
本シナリオで使用したDucky Scriptは公開していません。
対象 URL やコマンドを書き換えるだけで容易に悪用(フィッシング誘導やマルウェア配布など)できるため、本稿ではセキュリティ上の配慮からスクリプトの掲載を控えます。
今回は検証として、USBを挿すと既定ブラウザで Yahoo! JAPAN が開くようにしました。
動作結果
このような動作となりました。

任意のWebページを開かせることは可能、という結果になりました。
シナリオ③:任意のオンラインストレージからファイルをダウンロードする
準備したコード例(※掲載なし)
悪用のリスクがあるため、こちらも本シナリオで使用したDucky Scriptは公開していません。
今回の検証では、予めOnedriveにテキストファイルを置いておき、それをダウンロードできるか?にしました。
動作結果
問題なくテキストファイルをダウンロードさせることができました。
まとめ
今回は比較的簡単なシナリオを検証しました。
次はスクリプトの実行や外部へのデータ持ち出し、スマホでの動作確認など高度なものにチャレンジしたいと思います。
また、それらの操作に対しデバイス側で検知は可能なのか?
そういった防御側の視点も含めて検証できればと思います。

