この記事では、連携して動作する 2 つのペイロードを分析します。1 つは Upatre (他のマルウェアをダウンロードする) と呼ばれ、もう 1 つは Dyreza (ユーザーの ID 情報を盗む) と呼ばれます。これまで、私たちは Dyreza のコア コードとそれが使用するテクノロジーを分析してきました。次に、段階的に分析していきます。 Dyrezaとは何ですか?Dyreza の目的は銀行口座とビットコインを盗むことでした。全体のプロセスでは、まず Upatre を通じて Dyreza をダウンロードします。調査によると、現在 Dyreza のダウンロードを提供しているサーバーはすべてルーター (主に AirOS と MicroTik) です。攻撃者は、さまざまな暗号化されたリソース パッケージを含む侵入されたルーターを利用しました。感染したマシンは、Upatre を通じてルーターに保存されている暗号化された悪意のあるコード プログラムをダウンロードし、ユーザーのシステムでそれを復号化して Dyreza トロイの木馬を取得します。 私たちの分析の重要性は、悪意のあるプログラムの Dyreza ファミリーには多くの亜種が存在するものの、それらの主な動作の軌跡には依然として共通点があるということです。それぞれの特徴や共通点を分析することで、より効果的に身を守ることができます。 0×00 サンプル分析----- サンプル: ff3d706015b7b142ee0a8f0ad7ea2911 ボットネット クライアントである Dyreza の実行可能ファイルは、主な悪意のある操作を実行する役割を担っています。 ----- ----- サンプル: 5a0e393031eb2accc914c1c832993d0b – Dyreza DLL (32ビット) 91b62d1380b73baea53a50d02c88a5c6 – Dyreza DLL (64 ビット) ----- 0×01行動分析Dyreza がコンピュータに感染し始めると、急速に広がります。プロセス管理で確認できます。最も直感的な点は、explorer、svchost、taskeng などのプロセスなど、多くの新しいプロセスが作成され、終了することです。この段階では、実行プロセスを混乱させ、セキュリティ担当者の調査と分析を妨害します。 次に、正規表現 [a-zA-Z]{15}.exe を使用して疑似ランダムコードで名前が付けられた 2 つの悪意のあるプログラムファイル (つまり、vfHNLkMCYaxBGFy.exe) を C:\Windows および %APPDATA% ディレクトリにコピーし、タスク スケジューラに新しいタスクを追加して、悪意のあるプログラムのサンプルを 1 分ごとに継続的に実行し、悪意のあるプログラムが継続的に実行されるようにします。 次に、他のプロセス (svchost、エクスプローラーなど) に悪意のあるコードを挿入し、外部の C&C サーバーと通信します。 上記の観察から、VirusTotal では、svchost および explorer プロセスと通信するサービス アドレスがすでに悪意のあるアドレスとしてマークされていることがわかります。主な結果は次のとおりです。 • 141.8.226.14 -> ウイルストータル/141.8.226.14/情報 • 83.241.176.230 -> ウイルストータル/83.241.176.230/情報 • 197.231.198.234 -> ウイルストータル/197.231.198.234/情報/ ウェブブラウザがインストールされると、悪意のあるコードがブラウザプロセスに直接挿入され、不正な外部接続が行われます。このようにして、マルウェアは外部の C&C サーバーとの接続を維持しながら、ユーザー アクティビティを監視し、さまざまな ID 認証情報を盗む機能も実行します。 調査により、Dyreza は取得した情報を C&C サーバーに送信する前に、TEMP というフォルダーに小さなデータベースとして保存することも判明しました。 0×02 コード分析環境試験 1. 実行前検出 - マシン上の CPU 数が 2 未満であることを検出すると、Dyreza は実行されません。このテクノロジは、プログラム自体が仮想マシン環境で実行されていないことを確認するための自己保護に使用されます。というのも、現在の市場や機器構成の状況から、シングルコアCPUを採用することが多い仮想マシンを除き、物理マシンはデュアルコア以上が一般的であり、Dyrezaでもこれを判断基準としているからです。 Dyrezaはプロセス環境ブロック下のスレッド情報ブロック内のFS:[0x30]領域の情報を検出して判断します。悪意のあるプログラムは、CPU の数が 2 より大きい (2 を含む) ことを確認した後にのみ実行を続行します。 2. 実行の開始時に、マルウェアは新しく割り当てられたメモリ ページに追加のフォームを読み込みます。実行中に、モジュール名と関数の暗号化解除が始まります。 3. 実行環境の検出 - LookupPrivilegeValue 関数の SeDebugPrivilege パラメータを使用して、インストールがデバッガーの下にあるかどうかを判断します。戻り値がゼロ以外の場合、悪意のあるプログラムの実行は終了します。 4. 以下の検出方法により効果的な実行が行われます。最初に、初期環境に基づいて、プログラム実行時の実行可能パスやパラメータなどのパスが追跡され、検出されます。最初にインストールされると、自身をコピーし、コピーしたファイルを C:\Windows および %APPDATA% ディレクトリに配置し、コピーしたプログラムを新しいプロセスとしてインストールします。有効なパスと初期パラメータにデプロイされ、検証に合格した場合、次のステップでは、初めてのインストールであるかどうかを確認します。この手順は、特定のグローバル ミューテックスを作成することによって実現されます (名前は、GetComputerName 関数と RtlGetVersion 関数を通じて取得されたコンピューター名とシステム バージョンのハッシュ値です)。 5. この条件が満たされ、ミューテックスがすでに存在する場合は、最も重要なステップに進み、悪意のあるコードを実行します。最初に、暗号化されたデータとキーが実行可能リソース バンドルから読み込まれます。 上記のように、T1RY615NR は暗号化された 32 ビット コード、YS45H26GT は暗号化された 64 ビット コード、UZGN53WMY はキーです。 次のステップは、コードを解凍して取り出すことです。 解凍アルゴリズムも非常にシンプルです。 key_data には値とデータ (key_data 内の値のインデックス リスト) が含まれます。対応するインデックスリストを通じて対応する値を読み取ります。対応するコードは次のとおりです。 デコード(データ、キーデータ): デコード = bytearray() iが範囲(0, len(データ))内にある場合: val_index = データ[i] デコードされた.append(key_data[val_index]) デコードされた戻り値 復号実行コードは次のとおりです。 argparseをインポートする ハッシュライブラリをインポートする Crypto.CipherからAESをインポート BS = 16 パッド = ラムダ s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS) アンパディング = ラムダ s : s[:-ord(s[len(s)-1:])] aes_decrypt(enc, iv, キー)を定義します。 暗号 = AES.new(キー、AES.MODE_CBC、iv) unpad(cipher.decrypt(enc)) を返す 詳細な実行コードについては、dyrezadll_decoder.pyを参照してください。 復号化されたファイルには、インジェクション用のシェルコードと、悪意のあるプログラムの機能を呼び出すための DLL (32/64 ビットと互換性あり) が含まれています。 0×03 コア悪意のあるDLLこの段階で、マルウェアの機能は非常に明確になります。 dll ファイルには難読化情報があまり含まれておらず、明らかな文字列と一般的なインポート テーブルが含まれています。 C&C サーバーとの通信に使用される文字列を確認できます。 32 ビット DLL と 64 ビット DLL はどちらも同様の機能を備えています。両者の間で異なるのは、アーキテクチャに依存する部分と文字列のみです。クライアントはシステムを識別し、その情報を C&C サーバーに送信できます。 DLL の 64 ビット バージョンでの同様のプログラムですが、ハードコードされた文字列では「_32bit」ではなく「_64bit」が使用されます。 同時に、ネットワーク設定がチェックされます(C&Cクライアントとのバックエンド接続を確立できるかどうかの確認と通知 – コマンド:autobackconn) 悪意のあるモジュールをブラウザに挿入してコードを実行します。 次に、盗まれたアカウント情報を送信してみます。 ブラウザの監視に加えて、コンピュータに関する基本情報 (構成、既存のユーザーなど) も収集します。 このマルウェアは、情報を盗み、ユーザーのブラウジング活動を盗聴するだけでなく、システムのシャットダウンなど、さまざまなシェル コマンドを実行するためにシステムを完全に制御しようとします。以下に例をいくつか挙げます。 管理者権限を持つ新しいユーザーを作成してみてください: シャットダウン操作は、コマンド AUTOKILLOS を通じて実行できます。 0×04 C&C検出されないようにするために、このボットネットのサーバーとクライアント間の通信は暗号化され、さまざまな戦略が採用されています。 まず、C&C サーバーのアドレスがハードコードされたプールからランダムに選択されます。アドレス プールは、Dyreza DLL のリソース パック (AES 暗号化アルゴリズムを使用して暗号化) に保存されます。次に、ペイロードを実行すると、それがどのように復号化されるかがわかります。 以上が今回の分析と研究です。特定の Dyreza コードは dyreza で取得できます。 |
<<: スマートスクエア「P2P Taobao」開発チームとの対話
>>: オーバーストックのブロックチェーンプロジェクトは300万ドル以上を費やした
過去 10 年間で、デジタルマイニングは発展の黄金期に入りました。 Bitmainはアフターサービス...
最近の調査によると、過去3年間でアメリカの若い投資家の間でビットコインの認知度、関心、所有が増加して...
A10シリーズは誕生以来、広く評価されてきました。お客様から以前にご注文いただいた Avalon A...
Golden Finance News -ビットコインが新しい支払い方法になってから、世界中の多くの...
46,000ドルを下回ったことは市場心理にほとんど影響を与えず、長期的な見通しではビットコインが60...
クレイジーレビュー:Bitstamp は世界最大のビットコイン取引所の 1 つです。同社はルクセンブ...
かつては、グレースケールの GBTC の定期的で償還不可能な性質が最大のセールスポイントだったが、今...
月曜日、自分がビットコインの匿名の生みの親であるサトシ・ナカモトであることをマスコミに必死に証明しよ...
Bitcoin House News 9月23日CoinDeskニュースロンドンのビットコインブロッ...
NFT マーケットプレイスBlurの新しいガバナンス トークン BLUR がついに登場しました。待...
ポーランドのデジタル省は、政府サービスのデジタル化にビットコインとブロックチェーン技術の利用を検討し...
ビットコインウォレットおよびテクノロジープロバイダーのCoinkiteは、エンタープライズグレードの...
英国金融業界の主要業界団体シティUKは25日、政策立案者に対し暗号資産に関するより明確な規制を制定す...
著者: ライ・ダオジュン出典: Laidao Blockchain 2018年、暗号通貨市場全体が弱...