もちろん、分析用のウイルスのサンプルはインターネット上で個別に検索できますが、まずは別の方法で行います。 すぐに分析できるウイルスの膨大なコレクションがvx.netlux.orgにあります。 私の注意を引いた最初のウイルスはTrojan-Downloader.Win32.Zanoza.abでした。 ここで、彼の最も詳細な分析を取り上げます。 ところで、ウイルスの適切な説明はsecurelist.comで見つけることができます。
それだけでなく、すべてのセクションとヘッダーが1つのヒープに収集されますが、ファイルには明らかに何かが詰め込まれています。 次に、2つの方法で行くことができます。 最初の方法は、エントリポイントが検出されるまでプログラムを手動でトレースし、さらにダンプすることです(初心者にはお勧めできません)。 2番目に簡単な方法は、プログラムパッカーを特定し、自動的に解凍することです。 2番目の方法に行きましょう。 PIEDでプログラムをダウンロードします。
幸運にもPIEDがFSGパッカーを発見しました。 自動FSGアンパッカーをダウンロードして、保護の1つのレイヤー(Unfsg2.0など)を正常に削除します。
繰り返しますが、プログラムをデバッガー逆アセンブラーにロードします。 別の保護層が表示されます。
はい、視線は完全にナンセンスでした。 しかし、あなたは私たちが正しい軌道に乗っていることを確信できます。 これは非常に通常の実行可能コードであり、わずかに難読化されています。 そして、それはひどく難読化されています。スムーズで、コードは単に何もせず、regをプッシュし、regを何もポップしないnopコマンドで希釈されます。 少し下にスクロールして、メインの復号化サイクルを確認します。
この場所までプログラムをトレースします。
そして、すでに完全に復号化されたプログラムコードに到達します(コマンドの正しい表示のためにデバッガウィンドウを更新することを忘れないでください)。
次に、使用可能なツールを使用して、結果のダンプを削除します。 最後に、いくつかのウイルス機能を発見しました。
これが直接分析の始まりです。 まず、ウイルスが起動すると、ウイルスは0x401128にあるプロシージャを呼び出します。 この関数は、「c.bat」という名前のバッチファイルを作成し、次の内容であると推測するのは簡単です。
続けましょう。 batファイルを作成した後、プログラムは実行のためにそれを起動します。 元のファイル自体だけでなく、chkdsk * .exeファイルを削除しようとする無限のサイクルが開始されます。このパスは、コマンドラインパラメーターを介してスクリプトに慎重に渡されます。 画面には、連続した多くのコンソールウィンドウが表示されます。 ここからが楽しい部分です。 ウイルスは、svhost.exe子プロセスを一時停止状態で生成し、オフセット0x401180から始まる764バイトのサイズのコードを書き込みます。 当然のことながら、svhost.exe実行可能ファイルは、それほどインテリジェントでないファイアウォールやウイルス対策をバイパスし、実行中のウイルスプロセスをユーザーが誤って終了させないようにするために選択されました。 ウイルスはどこに注入されますか? プログラマは負担をかけすぎず、実行可能ファイルのエントリポイントが指すコードを単純に書き直すことにしました。 彼はどのようにして目的の住所を決定しましたか? このウイルスは、LoadLibraryEx関数を使用して、svhost.exeイメージをアドレススペースに破損してロードしました。 その後、Windows実行可能ファイルの標準オフセットによって目的のアドレスを簡単に決定できました(このコードセクションはアドレス0x4010A6-0x4010ACにあります)。 したがって、注入は完了し、この実行可能ファイルはバトンを中断されたsvhost.exプロセスに渡すだけで済みました。 問題は、感染したプロセスを調査する方法ですか? もちろん、目的のコードを手動で選択して個別に分析することもできますが、同時にその機能とパフォーマンスが大幅に低下する可能性があります。 私は長く考えていなかったので、これらすべてを仮想マシンで実行し、実行中にsvhost.exeをダンプすることにしました。 したがって、ResumeThreadを呼び出す前にメインプログラムをトレースし、ProcessExplorerを開きます。
そして、必要なプロセスのPIDを見つけます(原則として、デバッガーでPIDを見つけることができましたが、まあまあです)。 10のうち1356を16進システムに変換すると、0x54Cが得られます。 次に、LordPEを起動して、プロセスからダンプを削除します。
プロセスがすでに別のプログラムによってデバッグされているという事実のため、このアクションに十分な権限がないことがわかります。 なぜなら 私たちは仮想マシン環境で作業しているため、メインプログラムの実行を継続して、必要なダンプを自由に削除できます。 注意!!! このステップはあなた自身の危険とリスクで行われます!!! すべてがうまくいったので、感染したsvhost.exeファイルを分析する準備ができました。
復号化サイクルが再び表示されます。
XOR BYTE PTR DS:[EBX-5]、0xB1
INC EBX
ループショート0x100251D
このプログラムが起動すると、エラーでクラッシュします。 コードセクションへの書き込みは禁止されています。 少し考えてみましょう。動作中にダンプがプロセスから削除されたため、復号化サイクルは既に終了しています。 そして今、起動時に、プログラムは既に自分自身を暗号化しようとします。 これは必要ないので、さらに分析するために、復号化サイクル全体を埋めます。 この瞬間までに、私たちはすでに多くの進歩を遂げていますよね? 仮想マシンをさらにトレースします。
アドレス0x10255C-0x1002587にあるサイクルが表示されます。 その目的は、WinAPIコードの操作に不可欠な関数のアドレスを決定することです。 名前の比較自体は、次の場所で行われます。
WinAPI関数の必要なアドレスを決定した後、別の保護層に直面します。 感染したプログラムはVirtualAlloc関数を呼び出して、悪意のあるコードの別の層がコピーされる追加のメモリ領域を割り当てます。制御の転送は、JMP EAXコマンドを使用して実行されます。
最後に、ウイルスの機能自体が明らかになりました。 悪意のあるコードは、URLDownlodToFile関数を使用するために標準の動的ライブラリurlmon.dllをロードし、その後、chkdsk * .exeファイルを直接ダウンロードします。 ファイルのアップロードの瞬間は次のとおりです。
これは、ダウンロードされたファイルが実行される場所です。
そして、プロセスの完了は次のとおりです。
さらに分析するための興味深いリンクにも注意してください。
00270204 68 74 74 70 3A 2F 2F 77 77 77 2E 79 76 6F 6E 2D www.yvon-
00270214 70 75 62 6C 69 63 69 64 61 64 2E 63 6F 6D 2F 69 publicidad.com/i
00270 224 6D 61 67 65 73 2F 69 6D 61 67 65 73 2E 70 68 70 mages / images.php
00270234 3F 77 3D 31 26 65 3D 32 00 68 74 74 70 3A 2F 2F?W = 1&e = 2.http://
00270 244 77 77 77 2E 79 76 6F 6E 2D 70 75 62 6C 69 63 69 www.yvon-publici
00270254 64 61 64 2E 63 6F 6D 2F 69 6D 61 67 65 73 2F 69 dad.com/images/i
00270264 6D 61 67 65 73 2E 70 68 70 3F 77 3D 32 26 65 3D mages.php?W = 2&e =
00270274 32 00 68 74 74 70 3A 2F 2F 77 77 77 2E 79 76 6F 2.http://www.yvo
00270284 6E 2D 70 75 62 6C 69 63 69 64 61 64 2E 63 6F 6D n-publicidad.com
00270294 2F 69 6D 61 67 65 73 2F 69 6D 61 67 65 73 2E 70 /images/images.p
002702A4 68 70 3F 77 3D 33 26 65 3D 32 00 68 74 74 70 3A hp?W = 3&e = 2.http:
002702B4 2F 2F 77 77 77 2E 79 76 6F 6E 2D 70 75 62 6C 69 //www.yvon-publi
002702C4 63 69 64 61 64 2E 63 6F 6D 2F 69 6D 61 67 65 73 cidad.com/images
002702D4 2F 69 6D 61 67 65 73 2E 70 68 70 3F 77 3D 34 26 /images.php?w=4&
在庫確認の時間:分析されたプログラムは、ユーザーの知らないうちに、インターネットから未知のコンテンツのファイルをダウンロードし、実行するためにそれらを起動します。 実際、このマルウェアが実行できるのはそれだけなので、Trojan-Downloaderに分類できます。 ご覧のとおり、マルウェアの分析はそれほど複雑ではないことが判明しましたが、かなり多くの保護レイヤーに遭遇しました。 あなたのウイルス分析で頑張ってください!