Internet Explorerのレガシーな WebBrowserコントロールを悪用することで、一見無害なユーザーのクリック操作を完全なリモートコード実行(RCE)に転換できることが明らかになりました。Internet Explorerをスタンドアロンブラウザとして使用していないシステムでも、この攻撃は成立します。
Microsoftは Internet Explorerのサポートを正式に終了しましたが、Tridentエンジンと WebBrowser ActiveXコントロールは Visual Basic、.NET、Cで開発された多数のWindowsアプリケーションに引き続き組み込まれています。これにより攻撃者は、基本的なユーザー操作をコード実行へ転換するための強力な攻撃面を手にしています。
Internet Explorer WebBrowserコントロールの悪用
IEが廃止された後も、WebBrowserコントロールはWindowsのセキュリティゾーンモデルにおいて正式なコンポーネントとして扱われており、 http://localhost や file: URLといった特殊なオリジン配下では昇格した権限を引き継ぎます。
実際には、localhostで組み込みブラウザを公開しているデスクトップアプリケーション、メールクライアント、Electronベースのソフトウェア、XAMPPなどの開発環境、バンドルされたWebコンソールなどが、開発者が明示的に有効化しなくても IE特有の動作や高権限の振る舞いを暗黙的に継承する可能性があります。攻撃者はこうした動作を連鎖させることで、無害に見えるウェブサイトからローカルファイル実行パスへと侵入できます。
根本的な問題は、IEのゾーンモデルがオリジンに基づいてリソースへの信頼を優先する仕組みにあります。一般的なウェブサイトは「安全な」ActiveXコンポーネントに制限されていますが、localhostから提供されるページは追加のCOMオブジェクトへのアクセス、リモートSMB共有へのアクセス、ローカルファイルのオープンが可能です。その結果、 file: と localhost のコンテキストは公共インターネットよりも大幅に高い権限を持つ階層構造が生まれています。
Swarm PT Securityの研究者らは、localhostで公開されているアプリのクロスサイトスクリプティング(XSS)を悪用することで、IEのWebBrowserコントロールを通じてローカルHTMLファイルを開くことが可能であると発見しました。これにより、リモートの攻撃者が制御するページから被害者のローカルファイルシステムへの「ポータル」が実質的に作られてしまいます。
特筆すべき攻撃チェーンの一つは、WebBrowserコントロール内でレンダリングされるlocalhostウェブアプリのXSSを悪用する攻撃者制御サイトから始まります。
悪意のあるJavaScriptが microsoft-edge: URLスキームを経由してMicrosoft Edgeを起動し、ChromiumベースのEdgeに対して細工されたHTMLペイロードをユーザーへの確認なしに被害者のDownloadsフォルダへ直接ダウンロードさせます。
localhost 経由でダウンロードされたこのファイルには、Mark-of-the-Web(MOTW)の代替データストリームが付与されません。これはWindowsが標準的な「インターネット由来ファイル」の保護を適用しないことを意味し、そのファイルからスクリプトや危険なCOMオブジェクトが実行される際に追加の警告が表示されなくなります。
MOTWなしでペイロードが着地すると、WebBrowserコントロールは元のlocalhost XSSから新たにダウンロードされたHTMLへリダイレクトできます。この段階で悪意のあるページは特権的なローカルコンテキストで実行されます。 WScript.Shell などの安全でないCOMコンポーネントをインスタンス化できるようになり、これは歴史的に calc.exe などのプロセスを起動するために使用されてきました。
完全な侵害への最後の可視的な障壁は、IEのレガシーなActiveXセキュリティプロンプトです。しかし攻撃の実行に必要なソーシャルエンジニアリングはわずかです。被害者がActiveX警告ダイアログで「はい」をクリックするだけで、そのページに任意のコマンドを実行する権限が与えられてしまいます。
研究者らはまた、IEがリッチなファイル形式と組み込みビューアをサポートしていることで、悪用可能な範囲がさらに広がることも実証しています。たとえば .wax、.wmx、.m3u といったプレイリスト形式はWindows Media Player ActiveXオブジェクトを通じて開くことができ、それらのプレイリストがSMBパスを参照している場合、再生中にNTLMハッシュを密かに漏洩させる可能性があります。
XAML、ClickOnce .application、VSTO .vsto プラグインといった他の形式も、.NETやOfficeエコシステム内でコード実行への追加経路をもたらします。これらは多くの場合、攻撃者が巧妙な誘導で包み込める軽量なプロンプトによってのみ保護されています。
最も懸念されるのは、こうした基本的な手法の上にクリックジャッキングを組み合わせて武器化できる点です。ローカルフォルダ、SMB共有、またはZIPアーカイブをユーザーのカーソルを追跡する小さな非表示のiframe内でレンダリングすることで、攻撃者はページ上でのダブルクリックが確実にWebBrowserコントロール内のファイル一覧をターゲットにするよう仕組むことができます。
概念実証のエクスプロイトでは、iframeが悪意ある実行ファイルを含むZIPアーカイブを指しており、被害者がページ上の「どこか」をダブルクリックするだけで、MOTWによる警告もローカルオブジェクトが実行されているという明示的な表示も一切なく、組み込みのエクスプローラーに似たビュー内のファイルが起動されます。
同じ手法の変形として、WebBrowserコントロール内のドラッグ&ドロップ動作を悪用するものもあります。被害者がiframe経由でレンダリングされた特別に細工された .lnk ショートカットや .desklink ファイルにファイルをドラッグすると、WindowsがMOTWチェックを適用せずにそのショートカットのターゲットを実行し、従来のセキュリティダイアログなしにRCEが成立する可能性があります。
一部の攻撃チェーンでは、「PC」や「フォト」といった信頼感のあるアイコンを持つ悪意あるショートカットが被害者のデスクトップに配置されるよう仕組まれており、後でそのダブルクリックが完全に日常的な操作に見える形で侵害を完結させます。
防御側にとって、この研究はIEのような「廃止済み」のコンポーネントが現代のアプリケーションに組み込まれた状態では依然として現実のリスクをもたらし得ることを改めて示しています。組織はWebBrowserコントロールを使用するソフトウェアの棚卸しを行い、 WScript.Shell などのリスクの高いActiveX CLSIDを制限または無効化し、IEをレンダリングに使用するlocalhostのWebインターフェースを公開しないようにすることが求められます。
こうしたレガシー依存が取り除かれない限り、攻撃者はIEのWebBrowserコントロールにおける一見無害なクリック操作を悪用し続け、信頼性の高い低コストのRCE攻撃チェーンへと転換し続けることになります。
翻訳元: https://gbhackers.com/internet-explorer-webbrowser-control-abuse/