Asusは検証なしでHTTPを介してBIOS / UEFIを自動的に更新します





Asusは再び古いものを引き受けました。 更新を装って、実行可能ファイルまたはBIOSファームウェアをAsusコンピューターに送信できます。このファイルは、最大限の権限で実行するために自動的に起動され、ファームウェアはチェックなしでインストールされます。 何もする必要はありません。システムは自動的にクラッキングします。



つまり、Asusマザーボードを搭載したコンピューターは、定期的にHTTP経由でリモートサーバーにリクエストを送信します 。 その理由は、AsusコンピューターにプリインストールされているLiveUpdateソフトウェアです。 新しいBIOS / UEFIファームウェアと実行可能ファイルのダウンロードを担当します。 更新は、純粋なHTTPを使用してZIPアーカイブで受信され、一時フォルダーに解凍され、ユーザーに代わって実行可能ファイルが起動されます。 ファイルをダウンロードするとき、ファイルまたは認証の検証はありません。これにより、MiTM攻撃およびNT AUTHORITY\SYSTEM



への特権の通常のエスカレーションが可能になります。



Asusは、Windows XP以来、10年以上にわたってLiveUpdateをラップトップとPCとともに配布してきました。 この間、その動作原理は変更されていません。 クライアントは、暗号化されていないHTTP要求をAsus更新サーバー(バージョンに応じてliveupdate01.asus.comまたはdlcdnet.asus.com)に送信します。



たとえば、UX303UAモデルのラップトップでは、LiveUpdateの最新バージョンは次のアドレスに到達しようとしています。 彼女は、エラー404以外の応答を受け取るまでこれを行います。





これらの「.idx」ファイルは非常に複雑で、WinFlashを介したBIOSのフラッシュ(プログラムがインストールされている場合)やドライバーのインストールなど、さまざまな更新をロールアップできます。



たとえば、ET1602ノートブック用の更新されたACPIドライバーのXMLファイルのエントリは次のとおりです。



 <item name="ATK0110 ACPI Utility"> <description l_id="1033" title="ATK0110 ACPI Utility">ATK0110 ACPI Utility</description> <description l_id="1028" title="ATK0110 ACPI Utility">ATK0110 ACPI Utility</description> <description l_id="2052" title="ATK0110 ACPI Utility">ATK0110 ACPI Utility</description> <type> driver </type> <hwid version="1043.2.15.37" date="08/13/2004"> ACPI\ATK0110 </hwid> <os> WinXP </os> <version> 1043.2.15.37 </version> <size> 837015 </size> <release-date> 1219104000 </release-date> <zip-path> pub/ASUS/DigitalHome/DAV/B202/ACPI_V104321537.zip </zip-path> <execute> .\AsusSetup.exe </execute> <index> 1 </index> </item>
      
      





ここで最もクールなのは、.exeファイルを展開して自動的に起動する手順です。



これらはまだ花です。 BIOSを簡単に簡単にフラッシュできることを想像してください。



 <item name="BIOS 210"> <description l_id="1033" title="BIOS 210">To solve the issue which charge speed will be slower when battery capacity is above 60%</description> <description l_id="1028" title="BIOS 210">解決當電池容量大於60%時,充電速度變慢的問題</description> <description l_id="2052" title="BIOS 210">解决当电池容量大于60%时,充电速度变慢的问题</description> <type> BIOS </type> <os></os> <version> 210 </version> <size> 2717731 </size> <release-date> 1422628620 </release-date> <zip-path> pub/ASUS/nb/X453MA/X453MAAS210.zip </zip-path> <execute> X453MAAS.210 </execute> <index> 1 </index> </item>
      
      





このXMLファイルの信頼性を確認する手順はありません



タスクスケジューラでは、1時間に1回タスクを実行するように頻度が設定され、さらにアップデーターはHTTP経由でLiveUpdateサーバーに常にアクセスします。 結果のファイルは、それが何であれ、解凍されて実行されます。



脆弱性は、セキュリティの専門家であるMorgan Gangwereによって発見されました。



4月27日に脆弱性が発見されてから情報が公開されるまでのイベントのタイムラインは非常に興味深いものです。



 From the vendor that brought you a vulnerable cloud storage platform comes ___ ____ __ __ __ / _ \___ ___ ____/ / / / /__ ___/ /__ _/ /____ / // / -_) _ `/ _ / /_/ / _ \/ _ / _ `/ __/ -_) /____/\__/\_,_/\_,_/\____/ .__/\_,_/\_,_/\__/\__/ Because popping SYSTEM /_/ is easy when you trust HTTP Or, "How I learned to stop worrying and execute arbitrary executables from HTTP" Affected software: LiveUpdate (any version? 3.3.5 tested) Vulnerability: HTTP MITM to SYSTEM execution + more. CVSS: est. 9.3 CVSS:3.0/AV:A/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N (NB: This assumes "Hijack some HTTP" is easy and you're local) Timeline: 2016-04-27 Initial discovery 2016-04-28 Attempt to contact vendor (security@asus.com - bounce) 2016-04-28 Disclosure to MSFT MSRC attempting vendor coordination 2016-05-09 Attempt to contact vendor (via phone; told to go away) 2016-05-10 Disclosure to CERT/CC (tracked as VU#215055) 2016-05-11 CERT/CC attempts to contact vendor 2016-05-24 CERT/CC: No response from vendor 2016-06-01 CERT/CC: Disclose at will 2016-06-03 Public disclosure
      
      





ご覧のとおり、ハッカーはベンダーに2回連絡を取ろうとしました。 彼がsecurity@asus.com



に初めて手紙を書いたが、自動でたわごとを受け取った。



 Delivery to the following recipient failed permanently: security@asus.com Technical details of permanent failure: Google tried to deliver your message, but it was rejected by the server for the recipient domain asus.com by mg.asus.com. [103.10.4.32]. The error that the other server returned was: 550 #5.1.0 Address rejected.
      
      





それから彼は電話をかけたが、彼は言われた...もう電話する必要はない。



PoC



自動更新のロジックに基づいて、有効な署名を持つ任意のファイルを実行できます。







昇格する特権攻撃の視覚的なデモンストレーションのために、Morgan GangverはSysInternals PSEXECを使用しました。 彼は偽の「更新」を行いました。



 <product name="UX303UA"> <item name="Garbage File"><description l_id="1033" title="Legitimate System Utility">Shoutout to Joey.</description> <type> AP </type> <os> Win10(64) </os> <version> 48 </version> <size> 199465 </size> <release-date> 1459468800 </release-date> <zip-path> pub/ASUS/nb/Apps/LiveUpdate/LiveUpdate.zip </zip-path> <execute> update.bat</execute> <index> 22 </index> <severity> 1 </severity> <assistant> SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{FA540E67-095C-4A1B-97BA-4D547DEC9AF4}\DisplayVersion </assistant> </item> </product>
      
      





psexecのコピー、架空のwhoami、および実行するスクリプトは、「更新」アーカイブにパッケージ化されています。







Asus LiveUpdateは、すぐに「重要な」更新を確認します。







「重要な」アップデートを受信すると、すべての権限ですぐに実行に割り当てられます。







結果は次のとおりです。







したがって、 NT AUTHORITY\SYSTEM



として任意のコードを実行し始め、HTTP経由の呼び出しに応じてシステムに単純にコードを提供しました。 それ以外はすべてLiveUpdateを行います。



一般に、ファームウェアを更新するためのセキュリティの観点からの恐ろしい手順は、Asusマザーボードだけでなく、他のメーカーの機器でも一般的です。 たとえば、安全でない方法では、多くのルーターのファームウェアが更新されます。



All Articles