
シンプルなWindowsおよびLinux向けキーストローク注入ツールで、保存されたWiFiデータ(SSIDとパスワード)を外部に流出させます。
# WiFiパスワードスティーラー
[](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)


映画で、一見普通のUSBドライブをコンピュータに差し込むだけでデータを盗むハッカーを見たことがありますか? 今日、あなたはまさにそれを行うデバイスを構築することになります。
⚠️ 免責事項:
このプロジェクトのすべてのコンテンツは、セキュリティ研究のみを目的としています。
2022年の夏、私は標的のコンピュータからデータを抽出できるデバイスを構築することに着手しました。しかし、実際にどのようにしてマルウェアを展開し、情報を流出させるのでしょうか? 以下のセクションでは、カスタムキーストローク注入ツールを作成する際の重要な手順、基本概念、技術的なニュアンスについて説明します。このプロジェクトは特にWiFi認証情報を対象としていますが、ペイロードは簡単に変更して、より高度な目的や悪意のある目的にも使用できます。唯一の制限は、あなたの創造性と技術的な専門知識です。
時間の経過とともに、このプロジェクトは多種多様なスクリプトやツールを含むように成長しました。元々はRubber Ducky(特にRaspberry Pi Pico(RPi Pico)を使用した費用対効果の高いバージョン)の機能を示すために作成されました。現在、プロジェクトの2つの主要コンポーネントは次のとおりです。
ロック解除された被害者のコンピュータへの物理的なアクセス。
ネットワーク媒体を介した流出のために、SMTPを使用して盗んだデータを送信するには、コンピュータがインターネットにアクセスできる必要があります。
Linuxエクスプロイトのために、被害者のコンピュータのパスワードを知っていること。
pico-duckyを作成した後は、修正したペイロード(Windowsエクスプロイト用のSMTP詳細、LinuxパスワードとUSBドライブ名が調整されたもの)をRPi Picoにコピーするだけです。
[!NOTE]
このツールをRubber Duckyを使用して構築することも可能ですが、RPi Picoは約4ドル、Rubber Duckyは80ドルかかることに注意してください。
ただし、pico-duckyは優れた低予算のソリューションですが、Rubber Duckyはステルス性や最新のDuckyScriptバージョンの使用といった利点を提供します。
RPi Picoでペイロードを記述するためにDucky Scriptを使用するには、まずRPi Picoをpico-duckyに変換する必要があります。pico-duckyを作成するには、次の簡単な手順に従ってください。
キーストローク注入ツールは、ホストマシンに接続されると、ユーザーが入力したキーストロークを模倣するコードを実行することで、悪意のあるコマンドを実行します。USBドライブのように見えますが、事前にプログラムされたペイロードを入力するキーボードとして機能します。Rubber Duckyのようなツールは、毎分1,000語以上を入力できます。一度作成すれば、物理的なアクセス権を持つ誰でもこのペイロードを簡単に展開できます。
ペイロードはSTRINGコマンドを使用して、注入キーストロークを処理します。1つ以上の英数字/句読文字を受け入れ、行の残りをそのままターゲットマシンに入力します。ENTER/SPACEはキーボードのキーを押す動作をシミュレートします。
ペイロードの実行を一時的に一時停止するためにDELAYコマンドを使用します。これは、コマンドラインなどの要素が読み込まれるのを待つ必要がある場合に便利です。新しいUSBデバイスがターゲットコンピュータに接続された直後の最初の段階で遅延を使用すると便利です。最初に、コンピュータは入力コマンドを受け入れ始める前に一連のアクションを完了する必要があります。HIDの場合、セットアップ時間は非常に短くなります。ほとんどの場合、ドライバは組み込まれているため、ほんの一瞬です。ただし、低速のPCではpico-duckyを認識するのに時間がかかる場合があります。一般的なアドバイスは、ターゲットに合わせて遅延時間を調整することです。
データ流出とは、コンピュータ/デバイスからデータが不正に転送されることです。データが収集されると、攻撃者は暗号化や圧縮を使用してネットワーク経由でデータを送信しながら、検出を回避するためにデータをパッケージ化できます。最も一般的な2つの流出方法は次のとおりです。
このアプローチはWindowsエクスプロイトに使用されました。ペイロード全体はこちらで確認できます。
このアプローチはLinuxエクスプロイトに使用されました。ペイロード全体はこちらで確認できます。
Windowsペイロード(payload1.dd)を使用するために、ピン間にジャンパーワイヤを接続する必要はありません。
パスワードが.txtファイルにエクスポートされると、ペイロードはYahoo SMTPを使用して指定されたメールアドレスにデータを送信します。より詳細な手順については、次のリンクを参照してください。また、ペイロードテンプレートをSMTP情報で更新する必要があります。つまり、RECEIVER_EMAIL、SENDER_EMAIL、およびメールのPASSWORDを更新する必要があります。さらに、メールの本文と件名も更新できます。
[!NOTE]
メールでデータを送信した後、
.txtファイルは削除されます。他のメールプロバイダーのSMTPを使用することもできますが、ペイロードに記述するSMTPサーバーとポート番号に注意する必要があります。
一部のネットワークでは、ファイアウォールで未知のSMTPの使用がブロックされている可能性があることに注意してください。
Linuxペイロード(payload2.dd)を使用するには、RPi Picoのcode.pyのコードに準拠するために、GNDとGPIO5の間にジャンパーワイヤを接続する必要があります。RPi Picoに複数のペイロードを設定する方法の詳細については、このリンクを参照してください。
図1: Linuxでのエクスプロイト
パスワードがコンピュータからエクスポートされると、データは指定されたUSBフラッシュドライブに保存されます。このペイロードを正しく機能させるには、USBドライブの正しい名前で更新する必要があります。つまり、2か所でUSBSTICKをUSBドライブの名前に置き換える必要があります。
さらに、ペイロード内のLinux PASSWORDを3か所で更新する必要もあります。上記のとおり、このエクスプロイトを成功させるには、被害者のLinuxマシンのパスワードを知っている必要があります。これにより、この攻撃の可能性は低くなります。
wifi_passwords_print.shスクリプトを実行するには、スクリプトをUSBスティックの正しい名前で更新し、次のコマンドをターミナルに入力します。