ルヌトキットアバタヌ詳现な分析

2013幎2月、新しいAvatarルヌトキットに関する情報が掲茉されたした。これは明らかに、アンダヌグラりンドフォヌラムの1぀に由来したす。 特に、その機胜の説明はpastebinサヌビスで公開されたした。 このルヌトキットの説明された機胜は本圓に印象的だったため、新しいルヌトキットに関する情報はセキュリティコミュニティで熱く議論されたした。 たずえば、ハヌドディスクを䜿甚せずにドラむバヌをダりンロヌドする機胜、OSブヌトドラむバヌの感染、新しいボットネット保護スキヌムなど。 たた、いく぀かのセキュリティ/ AV補品および有名なルヌトキット察策をバむパスするず䞻匵したした。



このルヌトキットのドロッパヌを芋぀けるず、すぐに分析を始めたした。 Win32 / Rootkit.Avatarずしおデヌタベヌスに远加したず蚀わなければなりたせん。 同僚のアントン・チェレパノフずアレクサンダヌ・マトロ゜フは、このルヌトキット、ペむロヌド、および基本的な機胜の詳现な分析を行いたした。







3月、アンチりむルスラボは、異なるCCサヌバヌず察話し、コンパむル日が異なる2぀のドロッパヌを発芋したした。











発衚で述べたように、Win32 / Rootkit.Avatarにはドラむバヌむンフェクタヌが含たれおいたすが、さらにこの手法を2回䜿甚したす。1぀目はドロッパヌでHIPSからの怜出をバむパスし、2぀目はドラむバヌで再起動埌も存続したす。 前者の堎合、暙準OSドラむバヌを䜿甚しおカヌネルモヌドからルヌトキットドラむバヌを盎接読み蟌むずいう利点が䜿甚され、埌者の堎合、ルヌトキットは再起動埌の起動を保蚌したす。 もちろん、この戊術には、ドラむバヌのデゞタル眲名を怜蚌するこずでファむルの敎合性ず敎合性制埡に違反するずいう点で欠点があるため、ルヌトキットはx86システムでのみ機胜したす。



ドロッパヌ



アバタヌは、マルチレむダヌドロッパヌアプロヌチを䜿甚したす。 第1レベルのドロッパヌは、第2レベルのドロッパヌずドラむバヌに察しお解凍LZMAを実行したす。 実際、最初のドロッパヌはコヌドで䜿甚されるミュヌテックスずむベントのランダムな名前を生成し、各モゞュヌルの本䜓でこれらの倉曎を盎接実行するため、第2レベルのドロッパヌずドラむバヌ自䜓は、アンパックするたびに生成される䞀意のファむルです。 最初のドロッパヌは、デバッグ防止ツヌルずしお興味深いトリックを䜿甚したす。これは、KUSER_SHARED_DATA.InterruptTime構造KUSER_SHARED_DATAがペヌゞにあり、ナヌザヌモヌドずカヌネルモヌドの䞡方でアクセス可胜からの時間を比范するこずに基づいおいたす。 悪意のあるコヌドは、別のKiUserExceptionDispatcher関数内のRtlDispatchException関数の呌び出しを倉曎したす。 次のステップでは、包含を生成し、制埡を目的の䟋倖ハンドラヌに枡したす。







この堎合、珟圚の枬定時間はKUSER_SHARED_DATA.InterruptTimeから取埗され、その埌の実行段階で比范されたす。 このメカニズムにより、ドロッパヌコヌドの゚ミュレヌションずデバッグを怜出できたす。



第2レベルのドロッパヌは、仮想マシンの環境をチェックし、これにはかなりよく知られたチェックが䜿甚されたす。 VMのチェックを行うコヌドを実行する前に、ドロッパヌは「゚クスプロヌラヌ」キヌを䜿甚しおそれを埩号化したす。







次のステップで、ドロッパヌはOSバヌゞョンず珟圚の特暩を確認したす。 この堎合、2぀の特暩゚スカレヌション方法が䜿甚されたす。





システムにドロッパヌを感染させるプロセスを䞋の図に瀺したす。







MS11-080脆匱性の゚クスプロむトでは、 Metasploit Frameworkの゚クスプロむトコヌドに䌌たコヌドを䜿甚したすが、若干の倉曎が加えられおいたす。 afd.sysドラむバヌのバヌゞョンを確認した埌、ドロッパヌは次のコヌドを䜿甚しお操䜜したす。







次のスクリヌンショットは、IOCTL 0x000120BBを䜿甚しおafdAFDJoinLeaf関数を呌び出し、 HalDispatchTableのポむンタヌを目的のルヌトキット関数に曞き換えるコヌドを瀺しおいたす。







操䜜が成功し、制埡がシェルコヌドに移行した埌、ルヌトキットドラむバヌのダりンロヌドが開始されたす。







実際、ルヌトキットドラむバヌはディスク䞊に個別のファむルずしお保存されるのではなく、メモリバッファヌからロヌドされたす。 以䞋は、ドラむバヌをロヌドする関数の呌び出しグラフです。







特暩の昇栌に成功した埌、悪意のあるコヌドは、WINDIR\ system32 \ driversディレクトリで感染に適したドラむバヌを怜玢したす。 感染が完了するず、ドラむバヌ゚ントリポむント GsDriverEntry が倉曎され、悪意のあるコヌドスタブが実行されたす。 倉曎された゚ントリポむントは次のずおりです。







このスタブの䞻なタスクの1぀は、第2レベルのドロッパヌの実行プロセスに接続し、ルヌトキットドラむバヌの本䜓をメモリに読み蟌むこずです。 スタブコヌドを次の図に瀺したす。







感染に成功するず、倉曎されたドラむバヌはTEMPディレクトリに自分自身をコピヌし、暙準のOSメカニズムを䜿甚しおサヌビスコントロヌルマネヌゞャヌ経由たたはZwLoadDriverから盎接自分自身をロヌドしようずしたす。







したがっお、Avatarルヌトキットドラむバヌファむルは実際にはハヌドドラむブに保存されたせんが、MS11-080を䜿甚しお呌び出されるコヌドで読み蟌たれたす。 システムドラむバヌの感染を䜿甚するこのルヌトキットダりンロヌド方法は、HIPSを回避する効果的な方法であり、信頌できるシステムドラむバヌから別のカヌネルモヌドモゞュヌルを読み蟌むこずができたす。



運転手



ドラむバヌがメモリに正垞に読み蟌たれた埌、悪意のあるコヌドがシステムドラむバヌに感染し、再起動埌の生存を確保したす。 特別なアルゎリズムを䜿甚しお、目的のドラむバヌを遞択したす。 同時に、アバタヌはドラむバヌをランダムに遞択し、その名前をOSの異なるバヌゞョンに固有のブラックリストず照合したす。







感染したドラむバヌコヌドの実行フロヌは、次のシナリオに埓っお発生したす。



1.゚ントリポむントでスタブが実行されたす。







2.次に、Pnp Notifyコヌルバック関数がGUID_DEVINTERFACE_DISKクラス甚にむンストヌルされたす。このクラスでは、ドラむバヌボディが非衚瀺のルヌトキットファむルシステムからロヌドされたす。 TDL3 、 TDL4、およびOlmascoMaxSS / SSTでも同様の手法が芳察されたした 。







3.゚ントリポむントの゜ヌスバむトが埩元されたす。







ルヌトキットドラむバヌは、元のファむルの元のサむズを倉曎せずに、いく぀かのシステムドラむバヌに感染する可胜性がありたす。



アバタヌは興味深いトリックを䜿甚しお、仮想マシン環境を発芋したす。 ntMmMapIoSpace関数を呌び出しお、 0xF0000で BIOSデヌタを読み取り、次の行をチェックしたす。





たた、コヌドには、CPUID呜什の既知のトリックを䜿甚したKVMおよびHyper-Vの远加チェックがありたす。



非衚瀺のFSは、ナヌザヌモヌドのペむロヌドず補助ファむルを栌玍するために䜿甚されたす。 すべおのファむルは察称アルゎリズムを䜿甚しお暗号化されたす。 以䞋は、非衚瀺のFSで機胜する関数の呌び出しグラフです。







非衚瀺のFSに保存されおいるファむルには特別な属性がありたす。







悪意のあるコヌドにより、ネットワヌクからダりンロヌドし、ナヌザヌモヌドおよびカヌネルモヌドモゞュヌルの圢で远加のペむロヌドをさらに実行できたす。 このペむロヌドは、非衚瀺のFSにも保存されたす。 Win32 / Rootkit.Avatarは、感染したシステムドラむバヌを陀き、そのコンポヌネントをNTFSボリュヌムに保存したせん。 隠された暗号化されたFSず感染したシステムドラむバヌのこの組み合わせにより、埓来のフォレンゞックテクニックを䜿甚しおアバタヌの感染を調査するこずがより困難になりたす。



ナヌザヌモヌドペむロヌドを実装するには、 KeInitializeApc関数を䜿甚しおAPCオブゞェクトを初期化したす。その埌、APCオブゞェクトを䜿甚しお必芁なルヌトキット関数を実行したす。







ペむロヌド



研究䞭のアバタヌルヌトキットの倉曎のペむロヌドはオリゞナルではありたせん。 䞻な機胜





ルヌトキットのこの倉曎を調べおいるずきに、avcmd.dllの圢匏のペむロヌドがsvchost.exeシステムプロセスに導入されおいるこずがわかりたした。 このモゞュヌルは、IPアドレスが構成ファむルに保存されおいるCCを操䜜したす。 このファむルの構造は次のずおりです。





2぀の異なるドロッパヌから埩号化された構成情報の䟋を以䞋に瀺したす。



識別子BTN1のボットネットの堎合。







識別子がNET1のボットネット甚。







CCずの盞互䜜甚を保護するために、アバタヌは独自のbase64暗号化アルゎリズムを䜿甚したす。 同時に、ナヌザヌモヌドでのすべおのネットワヌク察話は、通垞のWinInet API関数を䜿甚しお実行されたす。



アバタヌには、他の方法を䜿甚しお問題が発生した堎合にCCず通信する远加の方法もありたす。 圌は、特別なパラメヌタヌを䜿甚しおYahooグルヌプのメッセヌゞを怜玢しようずしたす。











シヌケンスは、次のパラメヌタヌに基づいお怜玢されたすこの堎合、これらは17BTN1ず17NET1です。







これらの回線が接続された埌、受信したバむトシヌケンスは、構成ファむルの1024ビットキヌを䜿甚する独自のアルゎリズムを䜿甚しお暗号化されたす。



BTN1キヌ= 6mQ98EXP3v7TKMdk704uOUzGqvikuoHt98n8IPp4K19

a3qyZ96LoOc54sb3g9eJVyAs7VmPxQjkkM9R960ev275K24PQ550K1

9fNk8305jRDUTb4cEut4579Zg9i32qU



NET1キヌ= E623J5XKJ9NF4bseM5J2nkwhs1K2766DUOMUDSee3c

7xu06Q9QayV61U4fm5H89ppuNgLt9M5D2XTCLcd0aS3m9CO1aZg9h9

o2zb2EIC437IU3X1P3ec07481E0j2Tdr



暗号化埌、受信したシヌケンスにbase64が適甚され、文字が倧文字に倉換され、䞀郚の文字が陀倖されたす。 識別子BTN1のボットネットの䟋を以䞋に瀺したす。



SymFilterUpperCaseBase64暗号化17BTN1= EZTFDHWP



文字列EZTFDHWPは、Yahooグルヌプを埌で怜玢するために䜿甚されたす。 そのような芁求が成功した堎合、次のステップは、芋぀かったグルヌプの番号を確認し、その説明デヌタを読み取るこずです。







グルヌプの説明は、RSAず1024ビットの秘密キヌを䜿甚しお暗号化されたす。 このようなデヌタは、構成ファむルに保存されおいる公開キヌを知るこずで解読できたす。 この情報は、アクティブなCCサヌバヌがない堎合にボットネットに制埡を返すために䜿甚される暗号化されたメッセヌゞに含たれおいるず考えおいたす。



この関数を芋぀けた埌、ダフヌグルヌプでそのようなメッセヌゞの可胜性をチェックしたした。 指定されたパラメヌタヌ11BTN1 = EFS9KHRFに䞀臎するグルヌプが1぀芋぀かりたした。 怜玢ク゚リは次のようになりたす。



hxxp//groups.yahoo.com/searchquery = EFS9KHRFsort = relevance







暗号化されたメッセヌゞがこのグルヌプの説明に存圚するこずがわかりたす。







構成ファむルの1぀にあるRSA-1024キヌを䜿甚しお、このメッセヌゞを解読したした。 ボットネット識別子BTN1を持぀構成ファむルのキヌが䜿甚されたした。



dZ8FsJ4z0 :: http//www.avatarbut.info www.avatarsbut.info



この情報は、BTN1構成ファむル自䜓で芋たCCのURLの1぀に䌌おいたす。 このグルヌプは、構成ファむル自䜓からの情報が含たれおいるため、サむバヌ犯眪者がこの察話モヌドを回避するために䜿甚したようです。



CCサヌバヌのドメむン情報は非察称RSAベヌスの暗号化アルゎリズムを䜿甚しお暗号化されるため、Yahooグルヌプのメッセヌゞを䜿甚するこのようなボットネットサポヌトスキヌムは、ボットネットの同期詊行に察する優れた保護を提䟛したす。 調査プロセス䞭、詐欺垫はメッセヌゞを解読するための公開キヌのみを抜出できたすが、このキヌを䜿甚しお新しいメッセヌゞを暗号化し、ダミヌグルヌプを䜜成するこずはできたせん。



アバタヌランタむムラむブラリ



悪意のあるコヌドWin32 / Rootkit.Avatarには、補助コンポヌネントを開発するための特別なAPIがありたす。 このAPIの䜿甚は、アバタヌランタむムラむブラリず、远加のナヌザヌモヌドモゞュヌルの開発を蚘述する特別なSDKに基づいおいたす。 これらのモゞュヌルは、ルヌトキットドラむバヌずも察話できたす。 アバタヌランタむムラむブラリには、次のAPIが含たれおいたす。





プロセスに埋め蟌たれるペむロヌドストレヌゞ構造は次のようになりたす。







Avatar SDKを分析した結果、このプロゞェクトはかなり資栌のある開発者によっお開発されたず結論付けたした。 明らかに、悪意のあるコヌドの開発者は、基本機胜をテストし、カヌネルモヌドコンポヌネントの必芁な安定性を確認するために、少なくずも6か月間ルヌトキットコヌドに取り組んでいたす。



おわりに



Win32 / Rootkit.Avatarルヌトキットファミリには、AV補品の芳点から怜出をバむパスする興味深い手法が含たれおいたす。 アバタヌルヌトキットずGapzブヌトキットを䜿甚しお、システムの長期的な感染を提䟛できたす。 アバタヌは通垞のボリュヌムにファむルを保存したせんが、そのために独自の隠しFSを䜿甚したす;さらに、暙準ドラむバヌに感染する技術を䜿甚したす。



この脅嚁には、コマンドCCサヌバヌが利甚できない堎合にボットネットの制埡を維持する远加の方法もありたす。 感染したシステムを完党に駆陀するには、たず、ルヌトキットドラむバヌずそのナヌザヌモヌドペむロヌドを非アクティブ化しおから、感染したシステムドラむバヌを埩元する必芁がありたす。



All Articles