偽の「セキュアメール」がクレジットカード会社を装って悪意のあるファイルを配信
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
AhnLabは、主要な韓国のクレジットカードプロバイダーからの安全なメール通知に偽装した悪意のあるLNKファイルを配信するフィッシングキャンペーンを発見しました。開くと、ショートカットはHTAを介して起動し、 mshta.exe とPowerShellが続き、その後Windows Defenderが有効かどうかに応じて異なるペイロードをダウンロードします。Defenderがアクティブな場合、攻撃者は curl を使用して暗号化されたファイルを取得し、それらは後で解凍および実行されます。Defenderが無効の場合、チェーンは直接DLLの読み込みと追加のダウンローダー活動に移行します。結果として生じるマルウェアは情報の盗難、キーロギング、クリップボードの収集、バックドアの機能をサポートします。
調査
調査により、初期のLNKファイルが mshta.exeを起動し、曖昧にされたVBScriptを含むHTAを実行することが示されました。そのHTAは pipe.zipをダウンロードし、それにはBase64でエンコードされたスクリプト 1.log, 1.ps1、および 2.logが含まれ、それらはすべてメモリ上でデコードされ実行されます。Defenderが無効の場合、マルウェアは代わりに user.txt and sys.logをダウンロードし、 sys.log を復号化して sys.dllに変換し、 rundll32を介して実行します。復号化された user.txt の分析により、個別の悪意のあるファイルを取得するために使用された3つのGoogleドライブURLが露出し、 notepad.log, net、および appを含む、それらはすべて %LOCALAPPDATA%.
軽減策
推奨される防御対策には、メール添付ファイルの正当性の確認、LNKファイルの自動実行の防止、 mshta.exe and curlの疑わしい使用の監視が含まれます。また、セキュリティチームは 1.log, 1.ps1, 2.log, notepad.log, net、および app のようなファイルを検索し削除するべきです。 %TEMP% and %LOCALAPPDATA%。加えて、防御者はシステムの予期しないレジストリ変更を調査し、Windows Defenderまたは別のエンドポイント保護プラットフォームが常に有効で適切に構成されていることを確認する必要があります。
対応策
この活動が検出された場合、影響を受けたシステムを直ちに隔離し、任意の mshta.exe, curl、または rundll32 不明なファイルを実行するプロセスを終了し、フォレンジックレビューのために悪意のあるアーティファクトを保存してください。システム全体のスキャンを実行し、潜在的に露出した資格情報をリセットし、 notepad.logに関連する後続のバックドア活動を監視してください。観察された侵害の指標を使用して検出内容も更新されるべきであり、将来的に類似のフィッシング誘引をブロックするためにメールセキュリティコントロールを強化する必要があります。
"graph TB %% クラス定義 classDef action fill:#99ccff classDef operator fill:#ff9900 classDef builtin fill:#cccccc %% ノード initial_user_exec["<b>テクニック</b> – <b>T1204.002 ユーザー実行:悪意のあるファイル</b><br/>被害者はクレジットカード会社からの安全なメールを装った.lnkファイルを開きます。"] class initial_user_exec action exec_mshta["<b>テクニック</b> – <b>T1218.005 システムバイナリプロキシ実行:Mshta</b><br/>LNKはリモートHTAを取得するためにmshta.exeを実行するPowerShellを起動します。"] class exec_mshta action exec_powershell["<b>テクニック</b> – <b>T1059.001 コマンドとスクリプトインタープリタ:PowerShell</b><br/>PowerShellはcurlを介して追加のペイロードをダウンロードします。"] class exec_powershell action masquerade["<b>テクニック</b> – <b>T1036.008 偽装:ファイルタイプの偽装</b><br/>LNKファイルは安全なメールとして偽装されています。"] class masquerade action obfuscate["<b>テクニック</b> – <b>T1027 難読化されたファイルまたは情報</b><br/>AESで暗号化されたペイロード、Base64エンコード済; LNKアイコンの密輸。"] class obfuscate action sandbox_evasion["<b>テクニック</b> – <b>T1497.002 仮想化/サンドボックス回避:ユーザー活動に基づくチェック</b><br/>マルウェアはWindows Defenderの状態を確認します。"] class sandbox_evasion action cond_defender["<b>オペレーター</b> – Defenderの状態に基づくAND条件"] class cond_defender operator defender_on["<b>条件</b> – Defender有効"] class defender_on action defender_off["<b>条件</b> – Defender無効"] class defender_off action download_pipe["<b>アクション</b> – pipe.zipをダウンロードし、1.log、1.ps1、2.logを解凍および抽出します。"] class download_pipe action cred_access["<b>テクニック</b> – <b>T1539 ブラウザーセッションのハイジャック</b>, <b>T1185 ウェブセッションクッキー</b>, <b>T1555.003 ウェブブラウザーからの認証情報</b><br/>スクリプトは資格情報アクセスを実行します。"] class cred_access action collection["<b>テクニック</b> – <b>T1056.001 入力キャプチャ:キーロギング</b> と <b>T1115 クリップボードデータ</b><br/>キーストロークとクリップボードの内容を収集します。"] class collection action download_sys["<b>アクション</b> – user.txtとsys.logをダウンロードし、sys.dllを復号化します。"] class download_sys action load_rundll["<b>テクニック</b> – <b>T1218.011 署名されたバイナリプロキシ実行:Rundll32</b><br/>Rundll32を介してsys.dllを読み込みます。"] class load_rundll action persistence_appinit["<b>テクニック</b> – <b>T1546.010 イベント トリガー実行:AppInit DLLs</b><br/>sys.dllは持続性/回避目的で使用されます。"] class persistence_appinit action command_control["<b>テクニック</b> – <b>T1219 リモートアクセスツール</b><br/>notepad.logはリモートコマンドの実行、ファイルの抜き取り、およびさらなるデータ収集を提供します。"] class command_control action clipboard_phish["<b>テクニック</b> – <b>T1204.004 悪意のあるコピー&ペースト</b><br/>クリップボードフィッシング技術。"] class clipboard_phish action %% 接続 initial_user_exec –>|に続く| exec_mshta exec_mshta –>|を実行する| exec_powershell exec_powershell –>|を可能にする| masquerade masquerade –>|を可能にする| obfuscate obfuscate –>|を可能にする| sandbox_evasion sandbox_evasion –>|をトリガーする| cond_defender cond_defender –>|Defenderが有効ならば| defender_on cond_defender –>|Defenderが無効ならば| defender_off defender_on –>|をダウンロードする| download_pipe download_pipe –>|を含む| cred_access cred_access –>|を可能にする| collection defender_off –>|をダウンロードする| download_sys download_sys –>|を読み込む| load_rundll load_rundll –>|を確立する| persistence_appinit persistence_appinit –>|を可能にする| command_control command_control –>|を使用する| clipboard_phish "
攻撃フロー
検出
短いスクリプト名の使用による実行の可能性(コマンドライン経由)
表示
関連するコマンドの検出によるMSHTA悪用回避行動(プロセス作成経由)
表示
第三者サービス/ツールを経由したデータの流入/流出/C2の可能性(プロキシ経由)
表示
第三者サービス/ツールを経由したデータの流入/流出/C2の可能性(DNS経由)
表示
無効化されたWindows Defender環境でのsys.dllのRundll32実行[Windowsプロセス作成]
表示
mshtaコマンド実行を伴う悪意のあるLNKファイル[Windows Powershell]
表示
シミュレーション実行
前提条件:テレメトリ & ベースラインの事前チェックが合格していること。
-
攻撃の流れとコマンド:
攻撃者はエンドポイントに足場を得て、任意のコードを実行しながら従来のアプリケーション制御を回避したいと考えています。彼らは曖昧化されたVBScriptを含む悪意のあるHTAファイルを作成し、それがレンダリングされるとPowerShellバックドアをディスクに書き込みます。HTAを起動するために、彼らはWindowsショートカット(.lnk)を使用してpowershell.exeを呼び出すコマンドで使用します。ショートカットを実行すると、PowerShell →mshta.exe. Executing the shortcut triggers the PowerShell →mshtaチェーンが引き起こされ、このルールが監視している正確なテレメトリが生成されます。 -
リグレッションテストスクリプト:
# ------------------------------------------------- # 1. 曖昧化されたVBScriptで悪意のあるHTAを作成 # ------------------------------------------------- $htaPath = "$env:TEMPevil.hta" $vbscript = @" <script language='VBScript'> ' 曖昧化されたVBScriptペイロード (例: ファイルを書き込む) Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.CreateTextFile("C:WindowsTemppwned.txt", True) f.WriteLine "Compromised by ATT&CK" f.Close </script> "@ Set-Content -Path $htaPath -Value $vbscript -Encoding ASCII # ------------------------------------------------- # 2. PowerShell → mshtaを実行するショートカット (.lnk) を作成 # ------------------------------------------------- $lnkPath = "$env:TEMPlaunch_malicious.lnk" $ws = New-Object -ComObject WScript.Shell $shortcut = $ws.CreateShortcut($lnkPath) # HTAファイルでmshtaを起動するPowerShellコマンド $psCommand = "mshta.exe `"$htaPath`"" $shortcut.TargetPath = "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" $shortcut.Arguments = "-NoProfile -WindowStyle Hidden -Command `"$psCommand`"" $shortcut.Save() # ------------------------------------------------- # 3. ショートカットを実行して検出をトリガーする # ------------------------------------------------- Write-Host "悪意のあるショートカットを実行しています..." & $lnkPath # ------------------------------------------------- # 4. ログが収集される時間を与えるために一時停止 # ------------------------------------------------- Start-Sleep -Seconds 10 -
クリーンアップコマンド:
# 作成したアーティファクトを削除 Remove-Item -Path "$env:TEMPevil.hta" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPlaunch_malicious.lnk" -Force -ErrorAction SilentlyContinue Remove-Item -Path "C:WindowsTemppwned.txt" -Force -ErrorAction SilentlyContinue Write-Host "クリーンアップ完了。"