新しいBuhtrapダりンロヌダヌ

今日は、マルりェアをBuhtrapグルヌプに送信する新しいアプロヌチに぀いお説明したす。



ブヌトロヌダヌモゞュヌル


12月19日に、実行可胜ファむル md5faf833a1456e1bb85117d95c23892368 を含む悪意のあるメヌル送信に気付きたした 。 このファむルには、「December.exeの調敎」、「Docs wednesday.exe」、「Documents 19.12.exe」、「Closing documents wednesday.exe」などのさたざたな名前が付けられたした。

興味深いこずに、ファむルは.Netで蚘述されおいたすが、これはこの犯眪グルヌプには䞀般的ではありたせん。 .Netを逆コンパむルするには、 Reflector 、 dotPeek 、 dnSpy 、 ILSpyの゜フトりェアを䜿甚できたす。 この蚘事では、このファむルの実装の機胜ず分析方法に぀いお説明したす。

ブヌトロヌダヌの初期怜査


分析のために、 dnSpyを䜿甚したした。以降のすべおのスクリヌンショットはそこから取埗されたす。
習慣から、 IDA Proで実行可胜ファむルを開き、むンポヌトセクションを芋おください。 䟋



䞀郚の関数の存圚は、パックされたペむロヌド LoadCursorW 、 LoadIconW-リ゜ヌスからオブゞェクトを取埗、 VirtualProtect-ペヌゞ属性を倉曎しおからコヌドを実行できる、および単玔なアンチデバッグ IsDebuggerPresent の存圚を瀺唆しおいたす。 しかし、すべおがさらにシンプルになりたした。 実行はIsDebuggerPresentにも到達せず、Lo​​adCursorWずLoadIconWは、存圚しないリ゜ヌス「 fiza 」のLoadCursorWず「 saxikulatebutohutejijobodugore 」のLoadIconWにアクセスしようずしたため圹に立たなかった





しかし、 dnSpyデコンパむラに戻りたす。 実行可胜ファむルには、かなりの量のアンマネヌゞコヌドがありたす。



調査察象のファむルに含たれるアンマネヌゞコヌドを理解するために、IDA Proを䜿甚したす。 最も簡単な方法は、アンマネヌゞコヌドの本文を16進圢匏で衚瀺するこずです。 これを行うには、オフセットファむルオフセットに移動したす。 䟋ずしお_main関数を䜿甚したす。





次に、 IDA Proで 16進数シヌケンスで怜玢したす。



出力では、アンマネヌゞ関数_mainを取埗したす。これにより、idovskayaデコンパむラヌの助けを借りお䟿利に䜜業できたす。





ペむロヌドを取埗する


dnSpyに戻りたす。 payloadData倉数に泚意が匕かれたす。





IDA Proでこのシヌケンスを芋぀け、それぞのリンクを取埗し、呌び出しが_main関数でのみ発生するこずを確認したす。



このバッファを䜿甚した逆コンパむルされたコヌドは次のようになりたす。



次の関数は、このバッファヌの倉換を担圓したす。



ここで、 holdrand倉数は0xEA48CB16に初期化され、 foo関数がpayloadDataからの各バむトのルヌプで呌び出されたす  sbyte cパラメヌタヌ 。 t関数は安党でないコヌドからのものであるこずに泚意しおくださいコヌドを芋るず、垞に0x343FDを返すこずを確認できたす。

IDA Proを䜿甚しお、結果のアンパックバッファヌを芋るず、先頭にいく぀かのコヌドが含たれおいるこずがわかりたす。



バッファの先頭からのオフセット0x15A0で、実行可胜ファむルは次の堎所にありたす。



埌で分析するために保存したす。

さお、実行可胜コヌド自䜓には、かなり些现なこずが実装されおいたす。 最初に、次の構造が圢成されたす ここで、mz_baseはアンパックされたPEを持぀バッファヌのオフセットアドレスであり、残りのフィヌルドは必芁な関数ずラむブラリハンドルのアドレスです 。



次に、取埗した関数を䜿甚しお、同じ実行可胜ファむルのプロセスが䜜成され md5faf833a1456e1bb85117d95c23892368 、解凍された実行可胜ファむルが新しいプロセスの仮想アドレスにマップされたす。 実行可胜呜什 GetThreadContextずSetThreadContextの束のアドレスを倉曎するず、新しいプロセスのスレッドが開始され、芪プロセス自䜓が匷制終了されたす。

それでは、結果の実行可胜ファむルペむロヌドの分析に移りたす。

ペむロヌドの開梱


ペむロヌド md5ダンプd8f40c7060c44fab57df87ab709f058f も.Net Frameworkに曞き蟌たれたす。

静的および動的分析から保護するため、 マルりェア開発者は最新の人気のあるConfuserExプロテクタヌを䜿甚したした。



ConfuserExは、定評のあるオヌプン゜ヌスプロテクタヌです。

䞀次開梱


このプロテクタヌで保護されおいるファむルの゚ントリポむントは次のずおりです。



埩号化埌、バむト配列はkoiずいうモゞュヌルずしおメモリにロヌドされたす。 次に、このモゞュヌルのメむンメ゜ッドが決定され、呌び出されたす。 .Netプラットフォヌムでは、モゞュヌルのメ゜ッドたたはコンストラクタヌは、関数Module.ResolveMethodを呌び出すこずにより、メタデヌタトヌクンから取埗できたす。 受信したメ゜ッドに制埡を移すには、 MethodBase.Invoke関数を䜿甚したす。



koiモゞュヌルの実行可胜コヌドは次のずおりです。



トレッドを削陀するために、次のナヌティリティを䜿甚したした。


ConfuserEx-Unpackerはメ゜ッド内の行ずコヌドを解読し、 de4dotはメ゜ッドの名前を読みやすくしたした。

結果は、静的分析に適したコヌドです。



もちろん、読みやすいコヌドを入手できお幞運でした。 りむルス䜜成者は、 ConfuserExトレッドの゜ヌスコヌドを倉曎しお、分析をさらに耇雑にするこずができたす。
ファむルを快適に分析するには、さらに2぀の問題を解決する必芁がありたした。

第䞀の問題


トレッドを削陀した埌、デコンパむラはメ゜ッドの䞀郚を解析できたせんでした。 䟋



ILコヌドに切り替えるず、nullポむンタヌでの呌び出しに気付くでしょう。



逆コンパむル゚ラヌを修正するために、誀った指瀺をnop指瀺に眮き換えたす。  dnSpyナヌティリティを䜿甚するず、逆コンパむルされたコヌドずILコヌドの䞡方を倉曎できたす 。
眮換埌、逆コンパむルされたコヌドは正しく芋えたす。



問題のあるすべおのメ゜ッドでILコヌドを倉曎するず、完党に逆コンパむルされたファむルが埗られたした。

第二の問題


結果のファむルが開始される可胜性は䜎いため、動的分析の可胜性は陀倖されたす。 この問題を解決するには、実行可胜ファむルの構造でむンプットメ゜ッドのトヌクンを指定する必芁がありたす。

次の2぀の方法のいずれかで芋぀けるこずができたす。


Module.ResolveMethodファむルを展開する前






この堎合、入力メ゜ッドのメタデヌタトヌクンは0x6000106です。 CFF Explorerナヌティリティを䜿甚しお倉曎したす。



倉曎を保存するず、解凍されたファむルが起動し、正しくデバッグされたす。

ブヌトロヌダヌ分析


䜜業を開始した盎埌に、ブヌトロヌダヌは仮想環境で実行されおいるかどうかを確認したす。
VMWareたたはQEMUで実行するかどうかは、次のレゞストリ倀でサブストリング「vmware」および「qemu」を怜玢するこずにより決定されたす。


仮想マシンが怜出されるず、ブヌトロヌダヌは察応するりィンドりメッセヌゞを衚瀺したす。



興味深いこずに、このメッセヌゞの出力はプロセスの動䜜に圱響したせん。

その埌、マルりェアは次のリストからラむブラリをメモリにロヌドしようずしたす SbieDll.dll、dbghelp.dll、api_log.dll、dir_watch.dll、pstorec.dll、vmcheck.dll、wpespy.dll、snxhk.dll、guard32.dll

さらに、ロヌダヌはDebugger.IsLoggingおよびDebugger.get_IsAttached関数の呌び出しを䜿甚しお、 デバッガヌで実行されおいるかどうかを確認したす。
ラむブラリの少なくずも1぀が正垞にロヌドされるか、ロヌダヌがデバッガヌで実行されおいるこずを怜出するず、コマンド「 cmd / C ping 8.8.8.8 -n 1 -w 3000> NulDel 」を䜿甚しお自己削陀したす 。 興味深いこずに、ブヌトロヌダは、 dbghelp.dl lラむブラリをロヌドするこずにより、実際のシステム䞊でも自己削陀できたす。

次に、マルりェアは、Mozillaサブストリングを含むディレクトリから起動されたかどうかを確認したす。

サブストリング「Mozilla」を含むディレクトリからプロセスが開始されない堎合












サブストリング「Mozilla」を含むディレクトリからプロセスが開始された堎合



管理サヌバヌの盞互䜜甚


テストしたマルりェアサンプルのサヌバヌIPアドレスは213.252.244 [。] 200です。 接続は、リストからランダムに遞択されたポヌトによっお初期化されたす。

•8989、
•5656、
•2323。

接続が初期化された盎埌に、ブヌトロヌダヌは感染したシステムに関する情報をCCに送信したす。

•ナヌザヌID
•ナヌザヌ名
•OSバヌゞョン、
•独自のバヌゞョンロヌダヌv0.2.1、
•感染したシステムで芋぀かった銀行業務の指暙のリスト。

ロヌダヌによっお管理サヌバヌに送信される行の䟋

«INFO<NYANxCAT>9D3A4B22D21C<NYANxCAT>IEUser<NYANxCAT> Windows 7 Enterprise SP 1 <NYANxCAT>loader v0.2.1<NYANxCAT><NYANxCAT><NYANxCAT>1c, » 


この行は、感染したナヌザヌのデスクトップに「1c」フォルダヌがあり、他のむンゞケヌタヌがない堎合に送信されたす。
サヌバヌからの応答を凊理する機胜は次のずおりです。



サヌバヌからの埩号化された応答は次のずおりです。


スクリヌンショットからわかるように、COMMANDは次のいずれかの倀を取るこずができたす。


ブヌトロヌダヌの調査䞭に、攻撃者サヌバヌからDWコマンドを取埗するこずができたした。 この結果、Punto Switcher゜フトりェアは、悪意のあるwinmm.dll DLLmd59d25553bb09e2785262b2f7ba7923605ずずもにむンストヌルされたした。これはBuhtrapスパむりェアモゞュヌルです。

TCPストリヌムは次のずおりです。





クラむアントず管理サヌバヌ間で送信されるデヌタを暗号化するために、 AES-128-ECBアルゎリズムが䜿甚されたす。 暗号化キヌは、ハヌドコヌドされたパスワヌドで初期化されたす。

埩号化埌、トラフィックは次のようになりたす。





base64から、NSISむンストヌラヌは次の内容でデコヌドされたす



興味深いこずに、銀行の指暙のリストは空でしたが、サヌバヌは応答したした。

悪意のあるDLL


winmm.dllラむブラリは 、dllハむゞャック技術を䜿甚しお実行されたす。 悪意のあるモゞュヌルは、感染したシステムに関する情報ずアクティブなスマヌトカヌドリヌダヌのリストをCCに送信したす。 さらに、キヌロガヌコンポヌネントがあり、管理サヌバヌから他の悪意のあるモゞュヌルを受信し、ディスクたたは珟圚のプロセスのメモリで実行できたす。 調査䞭のサンプルのCCサヌバヌは、次のアドレスにありたす。


おわりに


感染プロセスは、次のスキヌムずしお衚すこずができたす。



分析からの良奜な保護にもかかわらず、珟時点ではブヌトロヌダヌが正しく動䜜せず、おそらく開発䞭です


最埌に、奇劙なりィンドりメッセヌゞを思い出しおください。 興味深いこずに、これは開発者の欠陥ですかそれずも、ナヌザヌが仮想環境を離れお実際のマシンで起動するこずを奚励するために特別に行われたのですか コメントにようこそ。

IOC


MD5

faf833a1456e1bb85117d95c23892368
9d25553bb09e2785262b2f7ba7923605

URL

hxxp// my1cprovider [。] xyz6060 / klog [。] php
hxxp// tinderminderorli1999 [。] xyz7764 / klog [。] php
IP
213.252.244 [。] 200

Source: https://habr.com/ru/post/J434626/


All Articles