ガンティア分析

みなさんこんばんは! このノートでは、malvariの分析(逆)に焦点を当てます。 正確な名前はありませんが、AVポータルではGuntiorと呼ばれます。 より具体的には(kernelmode.info)Guntiorブートキット(中国語の組み合わせ)。 写真の山の下で、注意してください! このmalvarは、被害者のマシンにブリッジヘッドを展開するための完全な複合体です。 このキットには、ブートキット(Stoned Bootkitから盗まれたもの)、ファイルをダウンロードするためのローダーなどが含まれています。 次のファイルを分析します(Virustotalのレポート)



ファイルは、エクスポートされた関数の束を持つ動的ライブラリです。 しかし実際には、これらは結果を返す単なるダミー関数です。 ペイロードなし

画像



ダミー機能:

画像



ツアーは、図書館の入り口から始まります。 ファイルをIDAにロードし、ファイルがダイジェストされるまで待ちます。 以下の画面は、通話の種類を確認した後に制御が転送されるエントリポイントを示しています(不器用に言ったが、より正確に言うことはできませんでした。FdwReason== 1が確認されました)

画像



ConnectToPipe()プロシージャの前のすべてのトリックは、私たちにとって興味のないものです。 これらは、ローダーボットの通常のプレリュードです(OSバージョンがチェックされ、名前が取得されます)。 ConnectToPipe()プロシージャをダブルクリックします

画像



名前付きパイプを使用して、情報が送信されます。 プログラム間通信に非常に役立つトリック。 Escを押して擬似コードを終了し、さらに調べます。 開始アドレスConnectToPipe_2でストリームを作成します。 このアドレスはパイプに接続して書き込みます。 1つ前の手順戻り、アドレスがsub_100007E0の次のストリームの作成を分析します。 これが、すべての楽しみの始まりです。

画像



UnpackStartDriver()プロシージャを検討してください。 GetRand()を呼び出すと 、作成されるサービスの名前にランダムな文字が使用されます。 その中に、 rand / srand Cookieの友好的なペアとGetSystemTimeAsFileTimeがあります



画像



OpenSCManager / CreateService関数は、ランダムな名前でサービスを作成します(名前の由来を覚えていますか?)。 次に、 UnpackResource()関数に移動します

画像



手順を終了し、次の行を分析します。 StartServiceAは、作成されたサービスを開始します。 これらすべてのトリックは、快適なドライバーの起動に必要です。 ZwLoadDriverとNtSetInformationProcessの呼び出しで行うことは可能ですが。 sub_100007E0プロシージャに完全に戻ります。 プロシージャGetKERNEL_Adressesの分析

画像



ニュークリアスAPIの擬似アドレスが取得され、 DeviceIoControlドライバーに送信されます。 次に、アドレスがSearch_Kill_AVの別のストリームが作成されます。 彼女が何をしているのかはおそらく明らかだろう。 ここで完了するプロセスのリスト全体を見ることができます 。 完了は非常に興味深いです。プロセスIDが取得され、ドライバーに送信され、そこでプロセスが終了します。 戻ると、フローが開始され、その中でドライバーに渡されたパラメーターがチェックされます。 戻って、最後のヒーローはsub_10001424です。



画像



そのため、まず、CheckInet関数が呼び出されます 。その中で、 InternetOpenA / InternetOpenUrlA / HttpQueryInfoA / InternetCloseHandleローダーを呼び出して肉挽き器がbaidu.comをノックし、ネットワークの可用性をチェックします。



画像



Malvariでは、オープンコールAPIを使用しているのは奇妙です。 通常、すべてはハッシュ、他のチップを介して行われ、リバーサーを困難にするように設計されています。 そして、戻ってください。 DownloadConfig()と呼ばれる手順



画像



タスク(リンク、名前)を含む構成ファイルがロードされます。 ただし、この構成は暗号化されています) DecryptConfig()を呼び出すことで復号化が行われます。 そして今、私たちは黒魔術シリーズからいくつかのチップを作ります。 この設定ファイルをダウンロードし、復号化手順をコピーして、masm32パッケージを使用してコンパイルします。 実行のために実行します。 出来上がり! クリーンで復号化された構成ファイルがあります。 スクリーン 構成は次のようになります。



[情報]

isdown = 1

if坊= 10

ジャンジ= 20

url1 = _ download_file_address

pid1 =

biaoshi1 =



次に、 GetPrivateProfileIntAを使用して必要なパラメーターが選択されます。 ダウンロードされたファイルは、被害者のマシンで起動されます。

さらに簡単にできますが、デバッガーでこのプログラムを使用して実行を開始するか、さらに簡単にPythonでxor復号化関数を作成します。 最初の手順に戻り、 sub_0 ** CF2に進みます。 次の形式で情報をゲートに送信します。

unionid =%s&mac =%s&iever =%d&alexa =%d&systemver =%d&antisoftware =%s&pluginver =%s 、システムの識別子を保持しています。 これで分析が完了しました。 次の注で、Malvariドライバーの分析を検討してください。



All Articles