悪意のある USB デバイスのすべてが、コンピューターに損害を与える高度なプログラミングを備えた高価なハードウェアである必要はありません。古い USB ドライブでは、Windows ショートカット ファイルを使用して独自の悪意のある BadUSB を作成し、ペイロードにリンクすることができます。
マカフィーのブログ記事「 LNK (ショートカット) マルウェアの台頭」によると、「2022 年の第 2 四半期に、マカフィー ラボは、LNK ファイルを使用して配信されるマルウェアの増加を確認しました。攻撃者は LNK の使いやすさを悪用して、Emotet、Qakbot、IcedID、Bazarloaders などのマルウェアを配信するために使用しています。」
LNK ファイルが一見無害に見える USB ドライブにマルウェアを配信する方法を調べます。検出が困難なマルウェアを Windows ショートカット ファイル (LNK ファイル) に組み込むことで、偽装されたリンクがユーザーを操作し、無害に見えるファイルをクリックしてマルウェアを起動させます。 LNK ファイルのショートカットを使用すると、プログラムのフル パスを移動しなくても、実行可能ファイルにすばやく簡単にアクセスできます。この状況では、マルウェアの実行可能ファイルが隠しディレクトリにあります。ユーザーが実行可能ファイルにリンクしているフォルダをクリックすると、マルウェアが起動します。
このエクスプロイトの実行可能ファイルは、Netcat または単にncです。
Netcat はマルウェアではありませんが、Windows Defender ではマルウェアとしてフラグが付けられているため、このウォークスルーではマルウェアと呼びます。
ネットワーク管理者によって使用され、多くの用途がある Netcat は、リモート コンピューターを別のコンピューターに接続できるようにする一般的なツールです。 Netcat を使用してリバース シェルを確立すると、攻撃側のマシンはシェル アクセス権を持ち、被害者のコンピュータを完全に制御できます。
このセクションの最後では、LNK ショートカット USB 攻撃から身を守る方法について説明します。
USB ドライブをコンピュータに挿入します。 Windows でフォーマットされた任意の USB ドライブを使用できます。この例のペイロードのサイズはわずか 45K なので、どのドライブでも動作するはずです。
右クリックして新しいフォルダーを作成します。このフォルダーには任意の名前を付けることができますが、この例では、適切な名前のペイロードディレクトリを使用します。最終的にこのディレクトリを非表示にします - その方法については後で詳しく説明します。
作成したフォルダを開きます。ここにマルウェアをインストールします。 GitHub から nc64.exe 実行可能ファイルをダウンロードし、 nc64.exeファイルをこのフォルダーにコピーします。
ペイロードをドライブにコピーしたら、バッチ ファイルの作成から始めて、USB ドライブのファイル システムを変更する必要があります。
バッチ ファイルは、コンピュータが実行する Windows コマンドを発行する場所です。 Windows のメモ帳を使用して、テキスト ファイルを作成します。このファイルには、攻撃を開始する単一のコマンドが含まれています。
この例の IP アドレスとポートを、Netcat を実行している攻撃ホストに置き換えます。 -eパラメータを使用すると、接続に使用するシェルを指定できます。 Windows システムでは、 cmd.exeまたはpowershell.exeを使用できます。後で、被害者のコンピューターからの接続を受け入れる Linux サーバーを構成します。
ファイルを.cmd拡張子で保存し、[ファイルの種類] が [すべてのファイル] に設定されていることを確認します。バッチ ファイルと実行可能ファイルが同じディレクトリにあることを確認します。
ペイロード ディレクトリには、実行可能ファイルとバッチ ファイルの 2 つのファイルが含まれている必要があります。
この攻撃が成功した理由の 1 つは、Windows ショートカットを作成し、隠しディレクトリにマルウェアへのリンクを作成できることです。ユーザーにマルウェアをクリックさせるには、クリックさせる必要があります。うまくいけば、ほとんどのユーザーは自分のコンピューターでランダムなアプリケーションを実行しないことを知っています。しかし、ユーザーは興味深い名前のフォルダを開こうとします。
USB ドライブのルート ディレクトリを右クリックし、[ショートカット] を選択して、ショートカットを作成します。
前の手順で作成したバッチ ファイルを選択します。この例では、ペイロードディレクトリからrun_exploit.cmdファイルを選択し、[次へ] をクリックして続行します。
ショートカットには、ユーザーがクリックして [完了] をクリックできるような興味深い名前を付けます。
新しく作成したリンクは正しくないように見えます。好奇心旺盛なユーザーでさえ、アイコンをクリックするのを躊躇するはずです。幸いなことに、Windows にはファイルとリンクのデフォルト アイコンを変更できる機能があります。
リンクを右クリックし、[プロパティ] を選択します。
[アイコンの変更] ボタンをクリックします。
アイコンをフォルダに変更します。
[OK] をクリックして、[アイコンの変更] ウィンドウを閉じます。
[OK] をクリックして変更を適用し、ファイルの [プロパティ] ウィンドウを閉じます。
これで、ショートカットがリンクのように見えなくなりました。左下に従来のリンク矢印が残っていますが、これは好奇心旺盛なユーザーの気軽な検査に合格するはずです。
私たちは、ほぼ、そこにいる。ペイロードフォルダが表示されているため、ドライブはまだ正しく表示されません。ドライブを非表示にすることでこれを修正します。ペイロードフォルダーを右クリックし、[プロパティ] を選択します。
[非表示] チェックボックスを選択し、[OK] をクリックして変更を適用し、ウィンドウを閉じます。
[このフォルダー、サブフォルダー、ファイルに変更を適用する] を有効にして、[OK] をクリックします。
Simple Malicious USBドライブは準備が整っており、展開する準備ができています。ユーザーが USB ドライブをコンピュータに挿入すると、これが表示されます。
ショートカットは、通常の Windows フォルダーのように見え、無害に見えます。好奇心旺盛なユーザーや観察力のないユーザーがフォルダーを開こうとすると、悪意のあるペイロードが起動されます。ただし、Simple Malicious BadUSB を展開する前に、コマンド アンド コントロール サーバーをセットアップする必要があります。
当社のコマンド アンド コントロール (C&C) サーバーは攻撃者によって制御され、マルウェアによって侵害されたコンピューターからコマンドを送受信するために使用されます。このエクスプロイトのサーバーは、 netcatがインストールされた最新のソフトウェアを実行する Ubuntu マシンです。
この例では、 -n (DNS を使用しない)、 -l (着信接続のみをリッスンする)、- v (詳細)、および-p (ポート番号) を使用します。 nc -nlvp 4444コマンドでリスナーを開始します。サーバーは、ポート 4444 で着信接続を辛抱強く待ちます。
ユーザーが USB を挿入してショートカットをクリックすると、バッチ ファイルは、先ほど指定した IP アドレスとポート番号を使用してnc64.exeコマンドを実行します。接続は迅速かつ効果的です。
この時点で、マシンは侵害され、攻撃者は被害者のコンピュータへのフル シェル アクセスを取得します。ハッカーは、端末に直接座っているかのようにコマンドを発行できます。
このエクスプロイトが機能するには、いくつかのことが正しく行われる必要があります。
これらすべての状況が攻撃者に当てはまる場合、これはランサムウェア攻撃の成功です。この種の攻撃では、数値は攻撃者に有利に働きます。 100 台の BadUSB デバイスが 1 か所にドロップされた場合、1 人だけがリンクをクリックして被害者になります。
Microsoftエンドポイント検出 (EDR) は、悪意のあるコードの実行からユーザーを保護するのに非常に優れています。現在サポートされているすべてのバージョンの Windows に組み込まれており、ウイルスと脅威からの保護が異常な動作を監視します。
ウイルスと脅威からの保護設定が有効になっている場合、ユーザーが BadUSB を挿入すると、このメッセージが表示されます。
Microsoft EDR はファイルを隔離し、ドライブ上に存在しなくなるため、攻撃は失敗します。その結果、マルウェアは削除され、実行できなくなります。
潜在的な被害者にとって良いニュースは、ほとんどの人がランダムな USB デバイスを自分のコンピューターに接続しないことを知っているということです。ただし、接続した場合、Microsoft エンドポイント セキュリティ ソフトウェアが悪意のあるソフトウェアの実行を防ぎます。