ゲーミングマウスで Windows の管理者権限を手に入れる方法とは?

みなさんの知人にも、コアなゲーマーであるシステム管理者が何人かいるのではないでしょうか。多くのゲーマーはゲーミングハードウェアを使用しています。

ゲーミングチェア、専用ヘッドフォン、ショートカットキーをいくつも実装したゲーミングマウス、メカニカルキーボード (QWERTY 配列や DVORAK 配列ではなく、COLEMAK 配列で設定された多色のブランクキーキャップ ) などを使用している方も多くいます。

しかし、その逆はありうるのでしょうか。

つまり、コンピューターのシステム管理者、それも他人のコンピューターの管理者になりたいと考えるゲーマーはいないのでしょうか?

少なくとも先週までは、人気ベンダーである Razer 社のゲーマー向けマウスとキーボードを使えば、それが可能だったようです。

問題となったのは、正式には jonhat として知られる研究者の @j0nh4t が Twitter で指摘した、バグであることが判明したある「便利な機能」だったようです。

https://platform.twitter.com/widgets.js

一見したところでは、上のビデオの複雑さに圧倒させられそうになりますが、そのバグとは以下のようなものです。

  • Razer 社のゲーミングマウスを初めて接続します。
  • Windows は、このデバイスタイプに、通常のマウスよりも優れた動作をさせるための 特別なソフトウェアとドライバがあることを検出します。
  • Windows は、Windows Update クラウドで Razer の公式アドオンを見つけます。
  • Windows が自動で公式アドオンをダウンロードして起動します。
  • Razer アプリの最後にはクリック可能なディレクトリ名が表示され、インストールプロセスのどこに何があるのかを確認できます。

最初は危険に聞こえるかもしれませんが、初期の Windows でそうであったように、ユーザー自身にデバイスを管理させ、ユーザーが動くかもしれないドライバのようなものをインターネット上で探してダウンロードするよりはリスクは低いと言えるでしょう。

そして、それを正規のサイトか、もしくはそうではないサイトからダウンロードします。

その後、自分で管理者権限で実行してみると、それが間違ったドライバであり、デバイスが全く動作しないことに気付くでしょう。インストールを取り消す方法も分かりません。

そして、あなたのコンピューターは動作が遅くなり、何百メガバイトものデータを奇妙な名前のサーバーにアップロードし、同時に何千もの不審な電子メールを多くのユーザーに送っていることを疑問に思い始めます。

そう考えると、マイクロソフトの公式サーバーから公式ドライバやアプリの公式コピーを自動的に取得して実行する方が、はるかに便利であるだけでなく、悪い結果をもたらす可能性が低いことがわかるでしょう。

機能がバグに変わるとき

ここで問題となるのは、Razer のアプリが、必要がないにもかかわらず、ソフトウェアのインストールディレクトリの名前を最後にあえて表示している点です。

これは Razer のアプリではアクティブなリンクなので、それを右クリックして File Explorer でディレクトリを見ることができます。

エクスプローラーでは、 Shift キーを押しながら右クリックすると、「PowerShell ウィンドウを開く」という便利なオプションが表示され、既存のエクスプローラーウィンドウの代わりにコマンドラインを使用できます。

しかし、この PowerShell プロンプトは、エクスプローラーのプロセスから生成されたものであり、 エクスプローラーのプロセスは Razer のインストーラーから生成されたものであり、Razer のインストーラーは Windows 自体の自動デバイスインストーラープロセスから生成されたものです。

このプロセスは、すべての権限を持つ NT AUTHORITY\SYSTEM アカウント ( 通常は NTSYSTEM または略して System と呼ばれる ) の下で実行されていました。

つまり、 PowerShell ウィンドウも System として実行されており、コンピューターのファイル、メモリ、プロセス、デバイス、サービス、カーネルドライバ、設定などをほぼ完全にコントロールできることになります。

つまり、Razer のマウスを用いてロックされていない会社のラップトップへのアクセス権を与えられた状態でペネトレーション・テストをしたとしたら、一般ユーザーのアカウントを介してシステム管理者に昇格するのにはそれほど長い時間は掛からないということです。

実際に有線のマウスを持っていく必要はありません。 Razer のワイヤレスマウスを持っていれば、マウスがあってもなくても、ドングルだけを差し込めば十分です。なぜなら、Windows の USB サブシステムがドングルと対話し、デバイスを識別するからです。

また、 Raspberry Pi Zero のようなハッカー向けのツールがあれば、USB のハードウェアを双方向に設定できるので、 USB ホストとして設定して他のデバイスを接続したり、 USB デバイスとして設定して他のコンピューターに接続したりすることができます。

ソフトウェアを使ってマウスやキーボードなどの USB デバイスのふりをすると (Razer はキーボードも作っており熱心なゲーマーのためにパフォーマンスを向上させるための追加ドライバが付属しています) 、ほぼすべての既知のベンダーが作ったほぼすべての種類のデバイスのふりをすることができます。

試しに Windows 11 に Pi Zero を Razer のキーボードだと認識させようとしたところ、 Windows はこの策略にはまり、偽のデバイスからの偽のキーストロークを喜んで受け取りました。しかし、デバイスを完全にサポートするために追加のドライバを取得する必要があることを Windows に納得させことができるだけの巧妙な構成を作成するには時間が足りませんでした。さらに多くの時間か知識、あるいはその両方があれば、容易に作成できたと考えています。

対策

ご自分のコンピューターですでに管理者になっているホームユーザーなら、何も心配はありません。

自分で管理している人にとって、上記の権限の昇格 (EoP) 方法は、通常の「管理者として実行」という Windows のオプションを使用して、 PowerShell やコマンドプロンプトに権限を与えるという冗長な方法に過ぎません。

しかし、管理者権限を持たない家族のためにコンピューターを管理している場合や、ユーザーがラップトップ上の基本的なオペレーティングシステムをいじってはいけない企業ネットワークを運営している場合、この種の攻撃を阻止する方法が必要でしょう。

個々のコンピューターをロックするには、「設定」「システム」「バージョン情報」と進み、「システムの詳細設定」オプションをクリックします ( Windows 10 とWindows 11 の両方でテスト済み)。

これにより、「システムのプロパティ」ウィンドウが表示されます。

「ハードウェア」「デバイスのインストール設定」をクリックし、「お使いのデバイスで利用可能なメーカーのアプリやカスタムアイコンを自動的にダウンロードしますか?」と表示されたら「いいえ」を選択します。

ドライバを追加しなくても、多くの新しいデバイスは動作しますが ( ゲーミングマウスの追加ボタンや Web カメラのズームとパン機能などの追加機能はありません ) 、デバイスのコア機能をサポートする一般的なドライバが Windows に用意されていない場合は、まったく動作しないものもあります。

デバイスを完全に動作させるためには、ユーザーは指定された管理者に新しいドライバとソフトウェアのインストールを有効にしてもらう必要があります。

その他の情報

企業ネットワークでは、誰がどのような種類のデバイスをどこに追加することを許可するかについて、より広範な管理を行うことを検討したほうが良いかもしれません。

一般的な Windows ネットワークでは、グループポリシーを使用してデバイスのインストールを規制するための Microsoft のアドバイスを確認することをお勧めします。

ソフォスをご利用のお客様は、Sophos Central Peripheral Control をご覧になり、セキュリティとコントロールを強化してください。