振込確認を装うフィッシングメール
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
脅威アクターは支払い確認メッセージに偽装したフィッシングメールを送り、不正なXLS添付ファイルを配信しています。これらのファイルは CVE-2017-0199 を利用してHTAファイルを取得し、その後WMIを通じて難読化されたPowerShellスクリプトを起動します。最終段階では、ステガノグラフィ技術を使用してリモートアクセスとデータ窃取を可能にするためにRemcos RATがダウンロードされ実行されます。
調査
AhnLab Security Intelligence Center(ASEC)は、韓国企業の従業員を装ったキャンペーンを特定しました。この調査はXLS誘引から始まり、HTA実行とWMIによるPowerShellの難読化を経て、ステガノグラフィで隠されたペイロードを通じたRemcos RATの展開までの全感染チェーンを追跡しました。
緩和策
ユーザーは送信者のドメインを注意深く確認し、リンクや添付ファイルを開く前に検査するべきです。組織は CVE-2017-0199 のような既知の問題に対するパッチを適用し、疑わしいファイル拡張子や無許可のWMIベースのプロセス作成を監視する必要があります。また、セキュリティコントロールは、Officeアプリケーションから起動される不正なHTAやPowerShellの実行をブロックするように設定されるべきです。
対応
この活動が検出された場合、Remcos RATからのさらなるコマンド&コントロールの通信を防ぐために、直ちに影響を受けたホストを隔離する必要があります。データ窃取の範囲を特定するためにフォレンジック分析を実施し、電子メールログを確認して追加の潜在的な被害者を特定します。元のフィッシングへの関与があったユーザーの資格情報もリセットする必要があります。
攻撃フロー
検出
疑わしいLOLBAS MSHTA回避テクニック(process_creationを介した関連コマンドの検出)
表示
疑わしいPowershell文字列(powershell経由)
表示
Powershellからの疑わしい.NETメソッドの呼び出し(powershell経由)
表示
疑わしいファイルダウンロードダイレクトIP(プロキシ経由)
表示
Cloudflare開発ドメインの濫用の可能性(dns経由)
表示
ダイナミックDNSサービスが連絡された可能性あり(dns経由)
表示
難読化されたPowerShellスクリプトの実行[Windows PowerShell]
表示
WMIを使用してWin32_Process.Create()経由で難読化されたPowerShellを実行[Windowsプロセス作成]
表示
シミュレーション実行
前提条件: テレメトリ&ベースライン事前チェックが合格済みであること。
根拠: このセクションでは、検出ルールをトリガーするために設計された敵対者の手法(TTP)の正確な実行を詳述します。コマンドとナラティブはTTPで識別された内容を直接反映し、検出ロジックが期待する正確なテレメトリを生成することを目指します。抽象的または無関係な例は誤診を導きます。
-
攻撃ナラティブ&コマンド: 敵対者はWMIを使用して実行系譜を隠すために難読化されたPowerShellコマンドを実行し、ペイロードをダウンロードすることを目的とします。
powershell.exeシェルから直接実行する代わりに、攻撃者はWMIプロバイダーを使用してWin32_Process.Create()メソッドを呼び出します。これにより、WmiPrvSE.exeプロセスが親として動作し、実行が正当なシステム管理タスクのように見えるようになります。コマンド文字列は特定のメソッド名を含むように慎重に作成されており、WMIメソッド呼び出しをテレメトリで検出するルールの能力をテストすることを保証します。 -
回帰テストスクリプト:
# WMIベースのプロセス作成検出をトリガーするためのシミュレーションスクリプト # これは、ルールが探しているWMIメソッドを呼び出すためにPowerShellを使用します。 $command = "powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -Command 'Write-Output AttackSuccess'" $wmi = [wmiclass]"Win32_Process" Write-Host "[*] Win32_Process.Create()経由での検出をトリガーしようとしています..." # WMIを介してメソッドを直接呼び出す $result = $wmi.Create($command, $null, $null) if ($result.ReturnValue -eq 0) { Write-Host "[+] 成功: プロセスが作成されました。'Win32_Process.Create()'を含むイベントID 10をSIEMで確認してください。" -ForegroundColor Green } else { Write-Host "[-] 失敗: WMIメソッド呼び出しが失敗しました。戻り値: $($result.ReturnValue)" -ForegroundColor Red } -
クリーンアップコマンド:
# クリーンアップ: テスト中に生成された疑わしいPowerShellプロセスを終了する Get-Process powershell | Where-Object { $_.CommandLine -like "*AttackSuccess*" } | Stop-Process -Force Write-Host "[*] クリーンアップ完了。"