Smitnyl.A、最初のハイブリッドブートキットおよびファイル感染の分析

みなさんこんにちは!



私は、 オンラインサンドボックスに関する私の記事に対する世論の反応と hormoldからの興味深い投稿に少し触発され、そこでコンピューターをオンラインで感染させるための既存のオプションを分析することが可能になりました。 そして、これに基づいて、悪意のあるプログラムの動作に関する最新のメカニズムに関する資料がおそらく興味深いものになると判断しました。



SalityやVirutなどの既存のファイル感染型ウイルスの動作メカニズムは、ほとんどの人にとって秘密ではないと思います。 もちろん、このような感染者の仕事の本質は十分に説明されているため、新しいバージョンを開発するのは簡単であり、デバッグしても問題は発生しません。 さらに興味深いのは、新しいメカニズムの説明-MBRのブートローダーからのファイルの感染です。 まず、このようなマルウェアはより複雑である必要があり、コードの長さに制限があります-62セクター(7C00H)、さらに、バグがないために特別な要件が作成されます-わずかなエラーがシステムブートの失敗につながる可能性があります。



現時点でこのようなマルウェアの唯一の例は、トロイの木馬です。W32/ Smitnyl.Aは、いくつかのファイル共有ネットワークで配布されます。 今日はそれを検討します。



起動時のSmitnyl.A感染者は、直接ディスクアクセスを介してMBRに感染します。 元のMBRを、セクター32のファイル感染手順を含む悪意のあるバージョンに置き換えます。



図1および2:元のMBRの上書き、パート1(上)および2(下)









なぜ著者は、実行ファイルに感染するためにこのような難しい方法を選んだのですか? おそらくこの方法では、Windowsファイル保護システム(WFP)をバイパスできるため、システムファイルをWFPによって後で復元されるリスクなしに効果的に感染させることができます。



元のMBRはセクター5に格納され、A00Hサイズの感染手順はセクター39にあります。感染のターゲットは、重要なシステムファイルuserinit.exeです。



図3:悪意のあるMBRコード





図4:元のMBRコード





図5:MBR感染コード





図6:userinit.exeに挿入された悪意のあるコード





なぜuserinit.exeが感染のターゲットとして選択されるのですか? これはおそらく、userinit.exeがシステムの起動時に開始される最初のプロセスの1つであるためです。これにより、多くのファイアウォールやウイルス対策ソフトウェアをロードしてその機能を効果的に実行する前に、マルウェアを早期に開始できます。 専門家は、smss.exe、csrss.exeはさらに早いと主張するかもしれません。 おそらく、マルウェアの重要なプロセスがないため、このような早期ダウンロードは不便かもしれません。



Smitnylは、初期ブートフェーズ中にuserinit.exeに感染し、MBRコードが0x7C00に達すると、パーティションテーブルからのアクティブパーティションとブートセクタの開始領域のオフセットが決定されます。



次に、ファイルシステムのタイプがチェックされます。



図7:ブートセクタータイプの決定





NTFSシステムが検出された場合、コードはマスターファイルテーブル(MFT)を解析し、ファイルレコード$ ROOT(。)の属性を読み取ります。属性$ INDEX_ALLOCATIONを見つけます。 この手順により、ディスク上のuserint.exeの場所を見つけることができます(MFTが正しく解析される場合)。 Smitnylは、$ ROOTからuserinit.exeがあるSystem32フォルダーまでのすべてのパスをチェックします。



図8:Userinit.exeの検出、パート1





図9:Userinit.exeの検出、パート1





マルウェアはget_userinit_data_content_addrプロシージャを使用してuserinit.exeファイルを検索し、次に拡張書き込み機能(機能番号ah = 43H)を使用して、元はセクター39にあった悪意のあるコンテンツを記録します。 0x28。 これが必要な理由を以下に説明します。



図10:Userinit.exeの検出、パート2





図11:Userinit.exeディスカバリー、パート2





感染したマシンをロードした結果、userinit.exeが感染し、起動します(すでにOSに直接)。 userinit.exeの感染を検出する1つの方法は、基本的な方法でファイルのプロパティを表示することです。



図12および13:userinit.exeのプロパティ、オリジナル(上)および感染(下)









幸いなことに、違いは非常に明白です。



感染したファイルのコードを見てみましょう。



図14:感染したUserinit.exe





ここでは、感染中に感染者が感染前に0x55AAマーカーを探した理由が明らかになります。これは、再感染を防ぐためです。 では、感染したファイルが起動するとどうなりますか? 主な目標は、セクター45にある暗号化された悪意のあるコードを起動することです。



図15:セクター45の暗号化された実行可能コード





コードには、デコードと主な機能の開始に先立ついくつかの準備手順があります。



•360safeインターネットセキュリティシステムの可用性を確認します。 見つかった場合は、オフになります。



図16:360safeシステムの可用性の確認





•一時フォルダに代替のexplorer.exeを作成すると、デコードされた実行可能コードになります。



図17:代替Explorer.exe





図18:代替Explorer.exe





•デコード後、ShellExecuteを使用して%temp%\ explorer.exeが起動されます。userinit.exeは元のexplorer.exeとまったく同じ操作を実行します。 同時に、元のexplorer.exeはWinexecを介して起動されます。



図19:代替explorer.exeと元のexplorer.exeの実行





その後、マルウェアの主な機能が実行されます-これは、ファイルをダウンロードして実行する古典的なダウンローダーです。



図20:ダウンローダー機能





全体として、360safe保護を無効にすることにより、リモートサーバーhttp:// [...] .perfectexe.com /などからファイルを効率的にダウンロードして実行することが可能になります。



F-Secureブログの翻訳



PSマルウェアの手動削除の説明は、 ここで読者に約束されまし



All Articles