アナリストの精査に耐えるように設計された新しいマルウェア
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
この報告書は、分析や検出に対抗するために設計された4つの異なるペイロードを含む高度なマルウェアキャンペーンを調査しています。これには、入念に難読化されたC++ローダーのPavokwiLoader、カスタムのリモート管理エージェントRMMCRAT、ブルートフォース解読を使用するPythonベースのローダー、およびCobalt Strikeビーコンが含まれています。マルウェアは、アンチデバッグ、アンチVMチェック、ETW回避、プロセスインジェクションなどの高度な回避技術を採用しています。
調査
2つの研究チームが、SEOポイズニング、カスタムRMMツール、およびCobalt Strikeを含む侵入を追跡するために協力しました。この調査には、ペイロードの複雑な難読化技術を解明するための広範なリバースエンジニアリングが必要であり、MBA算術、カスタムAPIハッシュ、位置依存のROR暗号を含みます。分析者は、インフラストラクチャのパターンとChromeのアプリバウンド暗号化を回避するために使用される特定の技術も特定しました。
緩和策
組織は、特に explorer.exe が予期しないまたは疑わしいプロセスを起動する場合など、不審なプロセス-親関係を監視する必要があります。防御者はまた、 CurrentVersionWindows キーおよび予期せぬスケジュールされたタスクの作成の下でのWindows NT内の不正なレジストリ変更を監視する必要があります。セキュリティ制御は、UACバイパス試行に関連するAPPINFO RPCインターフェースの疑わしい使用を識別するように設定するべきです。
対応
悪意のある活動が検出された場合、対応者は影響を受けたエンドポイントを隔離し、 %APPDATA%fontcache_ms マーカーの有無を確認する必要があります。ネットワークテレメトリを確認し、不明なドメインへのWebSocket接続やJARM 27d40d40d00040d1dc42d43d00041d6183ff1bfae51ebd88d70384363d525cなどの異常なTLSフィンガープリントを調査します。標準入力パイプ経由で実行された難読化されたコマンドのPowerShellスクリプトブロックのログイベント(イベントID 4104)を分析します。
攻撃フロー
この部分はまだ更新中です。
検出
疑わしいフォルダーからのPython実行(コマンドライン経由)
隠されたPowerShellコマンドラインを介した実行の可能性(コマンドライン経由)
異常なコードページ変更の実行(コマンドライン経由)
疑わしいPowerShell文字列(コマンドライン経由)
短いファイル名(コマンドライン経由)
Windows Defenderの設定異常変更(PowerShell経由)
異常なトップレベルドメイン(TLD)DNSリクエストによる疑わしい指令と制御(DNS経由)
新しいマルウェアを検知するためのIOC(HashSha256): アナリストを生き延びるために構築された
新しいマルウェアを検知するためのIOC(HashMd5): アナリストを生き延びるために構築された
新しいマルウェアを検知するためのIOC(SourceIP): アナリストを生き延びるために構築された
新しいマルウェアを検知するためのIOC(DestinationIP): アナリストを生き延びるために構築された
レジストリキーとスケジュールされたタスクによる持続性 [Windowsレジストリエベント]
ZwCreateUserProcessおよびZwQueueApcThreadによるプロセスインジェクション [Windowsプロセス生成]
シミュレーション実行
-
攻撃のシナリオ&コマンド: 侵略者は初期アクセスを取得し、再起動後も持続性を確立しようとしています。一般的なAVに検出されないために、彼らは既知だが特定のレジストリハイジャッキング技術を利用することにしました。攻撃者は、
UserInitMprLogonScriptレジストリキーを変更して悪意のあるペイロードを指すように試みます。このアクションは、SysmonイベントID 13を生成して、selection_registry検出ルールの一部をトリガーすることを意図しています。 -
回帰テストスクリプト:
# UserInitMprLogonScriptを介した持続性のシミュレーション $registryPath = "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" $name = "UserInitMprLogonScript" $value = "C:WindowsTempmalicious_payload.exe" Write-Host "[+] レジストリで$nameの設定を試みています..." try { New-ItemProperty -Path $registryPath -Name $name -Value $value -PropertyType String -Force -ErrorAction Stop Write-Host "[+] レジストリの変更が成功しました。SIEMでSysmonイベントID 13を確認してください。" } catch { Write-Host "[-] レジストリの変更に失敗しました。このスクリプトが管理者として実行されていることを確認してください。" -ForegroundColor Red } -
クリーンアップコマンド:
# 悪意のあるレジストリエントリをクリーンアップする $registryPath = "HKLM:SOFTWAREMicrosoftWindows NTCurrentVersionWinlogon" $name = "UserInitMprLogonScript" if (Get-ItemProperty -Path $registryPath -Name $name -ErrorAction SilentlyContinue) { Remove-ItemProperty -Path $registryPath -Name $name -Force Write-Host "[+] クリーンアップ成功: レジストリキーが削除されました。" } else { Write-Host "[-] レジストリキーが見つかりませんでした。クリーンアップすべきものはありません。" }