バッチファイルを超えて

Aryaka Threat Research Labは、Donutシェルコードを配信し、正規のWindowsプロセス内にメモリ常駐型の.NETインプラントをインストールする、高度に難読化されたWindowsバッチスクリプトを調査しました。

脅威キャンペーンの概要

このマルウェアの感染は、変数置換、ランダム化されたラベル、制御フローの難読化、および偽の命令を用いてその動作を隠蔽する悪意のあるバッチスクリプトから始まります。分析システムを回避するために環境チェックを行った後、C:\ProgramData\IntelDriver に隠しの中継ディレクトリを作成します。 このマルウェアは、埋め込まれたペイロードを再構築し、HDVz.exeという名前に変更されたpowershell.exeのコピーを使用して、その後の段階を実行します。 永続化は、ユーザーのログオン時にマルウェアをバックグラウンドで起動するスケジュールされたタスクによって確立されます。復元された PowerShell ローダーは、主に explorer.exe に Donut シェルコードを注入し、これにより最終的な .NET インプラントが、信頼された Windows プロセス内でメモリ上で実行されるようになります。

主な調査結果

DonutLoader キャンペーンの特徴については、以下をご覧ください。

  • ユーザー名、ファイルシステム上の痕跡、および利用可能なシステムメモリに基づく分析回避チェック:このマルウェアは、実行前にユーザー名、特定のファイル、およびシステムメモリを検査することで、仮想マシン、サンドボックス、または分析環境の存在を示す兆候がないかを確認します。
  • 画像ファイルの拡張子に偽装されたDonutシェルコードおよび暗号化されたPowerShellコンテンツ:このペイロードは、検出を回避し、悪意のあるコンテンツを隠蔽するために、Donutで生成されたシェルコードと、画像ファイルのような拡張子の背後に隠された暗号化されたPowerShellスクリプトを使用しています。
  • 実行を隠蔽するための手段として使用される、名前が変更されたPowerShellバイナリ:マルウェアは、標準のPowerShell実行ファイルを直接起動するのではなく、その名前を変更することで、悪意のある実行が不審に見えにくくし、単純なセキュリティチェックを回避します。
  • VBSランチャーによるスケジュールタスクの永続化:このマルウェアは、Visual Basic Script(VBS)を実行するスケジュールタスクを作成し、システムの再起動やユーザーのログオン後も自動的に再実行されるようにします。
  • explorer.exe へのシェルコードの注入、および追加の代替ターゲット:このマルウェアは、その活動を隠蔽するために、信頼されている explorer.exe プロセスに悪意のあるシェルコードを注入します。また、主要なターゲットが利用できない場合は、代替のプロセスを使用します。
  • AMSI および ETW の改ざんによるセキュリティ可視性の低下:このマルウェアは、セキュリティツールによる検出の可能性を低減させるため、AMSI(Antimalware Scan Interface)および ETW(Event Tracing for Windows)を無効化またはバイパスします。
  • コマンド&コントロール(C2活動に関連する難読化された.NETコンポーネント:
    このマルウェアは、コマンド&コントロール(C2)サーバーと通信する機能を隠蔽するために、高度に難読化された.NETコードを使用しています。
  • Telegram を利用した実行通知およびリモートインフラとの通信:実行されると、このマルウェアは Telegram を通じてステータス通知を送信し、リモートサーバーと通信してコマンドを受信したり、盗み出した情報を送信したりします。

注目すべき研究結果:カスタムインジェクションの追跡

特徴的な発見として、独自のメモリマーカー「DE AD BE CA FE BA EF」が挙げられます。このマルウェアは、このマーカーを注入するシェルコードの直前に配置し、注入前に候補となるプロセスをこのマーカーでスキャンします。これにより、ローダーは以前に注入されたプロセスを識別し、シェルコードの重複展開を防ぎ、プロセスの不安定化リスクを低減することができます。 また、このマーカーは、防御側にとって、メモリベースの脅威ハンティングにおける貴重な指標ともなります。

オペレーターとの連絡および指揮統制活動

実行中、curl.exe は、ハードコードされたボットトークンとチャット ID を使用して、Telegram ボット API の /sendMessage エンドポイントに HTTP POST リクエストを送信します。このリクエストには、マルウェアの実行が成功したことを確認するオペレーターへの通知が含まれており、アクティブな感染状況を監視するためにオペレーターが管理する Telegram チャンネルが使用されていることが示されています。 プロセスへの注入後、.NETインプラントは、アウトバウンドTCP経由で167.88.167.9:8356への接続を試みます。これは、専用のコマンド&コントロールチャネルが存在することを示唆しています。分析中にリモートインフラストラクチャが利用できなかったため、オペレーターのタスクや感染後の全機能については評価できませんでした。

防御面での考慮事項

組織では、名前が変更されたPowerShellバイナリ、ProgramData内の隠されたディレクトリ、不審なスケジュールされたタスク、ユーザーが書き込み可能な場所からのスクリプト実行、プロセス注入活動、プライベート実行可能メモリ、およびAMSIやETW関数への改変について監視を行うことが推奨されます。 また、エンドポイントでの活動については、異常なTelegram Bot APIリクエストや、explorer.exeなどの信頼されたプロセスから発信される外部への接続との相関分析を行う必要があります。行動の相関分析は、ファイル名、ハッシュ値、IPアドレス、その他の個別の指標のみに依存するよりも、より堅牢な検知手法となります。

包括的なテクニカル分析

Aryaka Threat Research Labの完全版レポートでは、感染の連鎖について、以下のような詳細な技術的分析が記載されています:

  • バッチスクリプトの難読化解除と制御フローの復元
  • 分析を妨げる行動および環境適応行動
  • 埋め込まれたペイロードの復元と復号
  • PowerShell ローダーの分析
  • スケジュールされたタスクの永続化
  • Donutシェルコードの復元
  • プロセス注入のワークフロー
  • 注入マーカー分析
  • AMSIおよびETWの改ざん
  • 回収された.NETインプラントの分析
  • Telegramによる通知およびコマンド・アンド・コントロール活動
  • 侵害の兆候
  • MITRE ATT&CK マッピング
  • 防御および脅威ハンティングに関するガイダンス

レポートの全文はこちらからダウンロードできます: Donutloader マルチステージローダーに関するレポート