NG0002が中国アカデミアを標的に、武器化された機関の誘いによる攻撃
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
UNG0002として追跡される脅威アクターが、中国の大学を対象にしたスピアフィッシングキャンペーンを展開し、公式の体力テスト通知に偽装した悪意のあるZIPアーカイブを使用しました。このアーカイブ内には、VBScriptを実行するダブルエクステンションのLNKファイルが含まれ、Bandizipを使用して悪意のあるDLLをサイドロードしました。そのDLLは、アンチ解析チェックを実施し、メモリ内のSFXペイロードを復号し、最終的にコマンド・アンド・コントロール活動のためにCobalt Strikeビーコンを展開しました。このオペレーションは、侵入をサポートするためにAlibaba Cloudでホストされたインフラストラクチャと共に、リビングオフザランドの技術を組み合わせました。
調査
Seqrite Labsがフィッシングメール、添付ファイル、および完全なペイロードチェーンを調査し、 explorer.exe がVBSスクリプトを起動するために使用され、 Bandizip.exe が悪意のあるDLLをホストするために悪用されました。アナリストは、解析環境を回避するためにデザインされた広範なアンチデバッグチェックを文書化し、初期の餌から最終的なビーコン展開までの完全な実行フローをマッピングしました。また、IPアドレス 60.205.186.162 とドメイン lysander.asiaに関連付けられたインフラストラクチャを特定し、活動を以前のUNG0002オペレーションにリンクしました。追加の強化により、コマンド・アンド・コントロールサーバーがAlibaba Cloud上にホストされ、Feishu関連のMXレコードを使用して、中国に拠点を置く脅威アクターに帰属することがさらに裏付けられました。
緩和策
指定なし
対応
指定なし
"graph TB %% クラス定義 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#e6e6e6 classDef process fill:#ffdd99 classDef malware fill:#ff9999 classDef network fill:#c2c2f0 %% ノード u2013 アクション(テクニック) action_initial_access["<b>アクション</b> – <b>T1566.001 スピアフィッシング添付ファイル</b><br/>悪意のあるZIPを含むメールがターゲットに送信されます"] class action_initial_access action action_user_execution["<b>アクション</b> – <b>T1204.002 ユーザー実行</b><br/>ユーザーはそれがPDFだと思ってLNKファイルを開きます"] class action_user_execution action action_masquerading["<b>アクション</b> – <b>T1036 偽装</b><br/>LNKはダブルu2011エクステンションであり、PDFとして表示されます"] class action_masquerading action action_permission_hijack["<b>アクション</b> – <b>T1574.005 実行可能インストーラファイル権限の脆弱性</b><br/>Explorer.exeは隠されたVBSスクリプトを起動するために使用されます"] class action_permission_hijack action action_vbscript["<b>アクション</b> – <b>T1059.005 Visual Basic</b><br/>VBSはデコイPDFを開き、Bandizipを実行します"] class action_vbscript action action_lol["<b>アクション</b> – <b>T1218 リビングオフザランド</b><br/>合法的なアーカイバであるBandizipが悪用されます"] class action_lol action action_hidden_files["<b>アクション</b> – <b>T1564.001 隠しファイルとディレクトリ</b><br/>ペイロードは深いmacOSu2011スタイルのフォルダに配置されます"] class action_hidden_files action action_dll_side_loading["<b>アクション</b> – <b>T1574.008 検索順序劫持によるパスインターセプション</b> / <b>T1574.002 DLL サイドu2011ロード</b><br/>Bandizipは悪意のあるark.x64.dllをロードします"] class action_dll_side_loading action action_obfuscation["<b>アクション</b> – <b>T1027 難読化されたファイルまたは情報</b><br/>DLLには暗号化された文字列および暗号化されたSFXペイロードが含まれています"] class action_obfuscation action action_anti_analysis["<b>アクション</b> – <b>T1497 仮想化/サンドボックス回避</b> / <b>T1497.001 システムチェック</b> / <b>T1497.002 ユーザー活動チェック</b> / <b>T1622 デバッガ回避</b><br/>DLLはデバッガや解析ツール、サンドボックスのアーティファクトをチェックします"] class action_anti_analysis action action_process_discovery["<b>アクション</b> – <b>T1057 プロセス探索</b><br/>解析ユーティリティを特定するために実行中のプロセスを列挙します"] class action_process_discovery action action_reflective_loading["<b>アクション</b> – <b>T1620 反射的コードロード</b><br/>復号化されたSFXペイロードがメモリに直接ロードされます"] class action_reflective_loading action action_c2["<b>アクション</b> – <b>T1071.001 アプリケーションレイヤープロトコル: ウェブプロトコル</b><br/>メモリ内ペイロードがHTTPS Cobaltu202fStrike ビーコンを確立します"] class action_c2 action %% ノード u2013 ファイル/アーティファクト file_zip["<b>ファイル</b> – malicious.zip<br/>悪意のあるLNKを含む"] class file_zip file file_lnk["<b>ファイル</b> – u5e38u5ddeu5927u5b662026u5e74u300au56fdu5bb6u5b66u751fu4f53u8d28u5065u5eb7u6807u51c6u300bu6d4bu8bd5u901au77e5.pdf.lnk"] class file_lnk file file_vbs["<b>ファイル</b> – chromedo.vbs<br/>Explorerによって実行されるVisual Basicスクリプト"] class file_vbs file tool_bandizip["<b>ツール</b> – Bandizip.exe<br/>悪意のあるDLLをロードするために悪用された合法的なアーカイバ"] class tool_bandizip tool file_dll["<b>ファイル</b> – ark.x64.dll<br/>サイドu2011ロードを介してロードされた悪意のあるDLL"] class file_dll file malware_cobalt_strike["<b>マルウェア</b> – Cobaltu202fStrike ビーコン<br/>リモートアクセスを提供"] class malware_cobalt_strike malware %% ノード u2013 プロセス process_explorer["<b>プロセス</b> – explorer.exe"] class process_explorer process process_chromedo["<b>プロセス</b> – chromedo (VBSホスト)"] class process_chromedo process %% ノード u2013 ネットワーク network_c2["<b>ネットワーク</b> – C2 サーバー 60.205.186.162 (lysander.asia) over HTTPS"] class network_c2 network %% 接続 u2013 攻撃フロー file_zip –>|含む| file_lnk file_lnk –>|起動する| process_explorer process_explorer –>|起動する| file_vbs file_vbs –>|実行する| tool_bandizip tool_bandizip –>|ロードする| file_dll file_dll –>|有効にする| action_obfuscation file_dll –>|実行する| action_anti_analysis file_dll –>|トリガーする| action_process_discovery file_dll –>|サポートする| action_reflective_loading action_reflective_loading –>|ロードする| malware_cobalt_strike malware_cobalt_strike –>|通信する| network_c2 %% アクションのリンクによりシーケンスが表示されます action_initial_access –>|に繋がる| action_user_execution action_user_execution –>|と組み合わせる| action_masquerading action_masquerading –>|を有効にする| action_permission_hijack action_permission_hijack –>|トリガーする| action_vbscript action_vbscript –>|使用する| action_lol action_lol –>|作成する| action_hidden_files action_hidden_files –>|を促進する| action_dll_side_loading action_dll_side_loading –>|を含む| action_obfuscation action_obfuscation –>|を取り巻く| action_anti_analysis action_anti_analysis –>|に引き込む| action_process_discovery action_process_discovery –>|に先行する| action_reflective_loading action_reflective_loading –>|を有効にする| action_c2 action_c2 –>|ビーコンを確立する| malware_cobalt_strike %% クラスの割り当て class action_initial_access action class action_user_execution action class action_masquerading action class action_permission_hijack action class action_vbscript action class action_lol action class action_hidden_files action class action_dll_side_loading action class action_obfuscation action class action_anti_analysis action class action_process_discovery action class action_reflective_loading action class action_c2 action class file_zip file class file_lnk file class file_vbs file class file_dll file class tool_bandizip tool class process_explorer process class process_chromedo process class malware_cobalt_strike malware class network_c2 network "
攻撃フロー
検知
コマンドラインからのダブルエクステンションを持つ可能性のある悪質なLNKファイル
ビュー
LOLBAS WScript / CScript(プロセス作成経由)
ビュー
IOC(HashSha256)を検出するために:Operation Dragon Whistle:UNG0002が武器化した機関のルアーを通じて中国学術界をターゲット
ビュー
IOC(送信元IP)を検出するために:Operation Dragon Whistle:UNG0002が武器化した機関のルアーを通じて中国学術界をターゲット
ビュー
IOC(宛先IP)を検出するために:Operation Dragon Whistle:UNG0002が武器化した機関のルアーを通じて中国学術界をターゲット
ビュー
既知の悪意のあるIPとドメイン経由でのC2通信の検出 [Windows ネットワーク接続]
ビュー
UNG0002 プロセス列挙とアンチデバッグ検出 [Windows Sysmon]
ビュー
LNKがexplorer.exeとBandizip.exeを悪用して悪意のある VBScript 実行を行う検出 [Windows プロセス作成]
ビュー
シミュレーションエクスキューション
前提条件:テレメトリー&ベースライン事前フライトチェックが通過している必要があります。
根拠:このセクションでは、脅威行動(TTP)を正確に実行することで、検出ルールをトリガーする詳細を説明します。コマンドと物語は特定されたTTPを直接反映し、検出論理で期待されるテレメトリーを生成することを目標とします。
-
攻撃の物語とコマンド:
攻撃者は、evil.dllという悪意のあるDLLを配信し、それが無害に見えるホストプロセス(rundll32.exe)によってロードされます。そのDLLのDllMainは直ちにCreateToolhelp32Snapshotを呼び、その後にProcess32Firstを続けてすべての実行中プロセスを列挙します。列挙ループは各プロセス名にデバッガ("dbg"のサブストリング)を含むかどうかをチェックし、発見された場合には終了します – クラシックな デバッガ回避 技法(T1622)です。このDLLはrundll32.exeによってロードされたため、Sysmonによって記録されたプロセス作成イベントには、この規則を満たす2つのネイティブAPIのApiSetNameフィールドが含まれています。 -
回帰テストスクリプト:
# ------------------------------------------------- # ステップ1:悪意あるDLLのCソースを作成する # ------------------------------------------------- $dllSource = @" #include <windows.h> #include <tlhelp32.h> BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) { if (ul_reason_for_call == DLL_PROCESS_ATTACH) { HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnap == INVALID_HANDLE_VALUE) return FALSE; PROCESSENTRY32 pe = {0}; pe.dwSize = sizeof(PROCESSENTRY32); if (Process32First(hSnap, &pe)) { do { // シンプルなアンチデバッグチェック – プロセス名内に"dbg"があるかどうかを確認 if (wcsstr(pe.szExeFile, L"dbg")) { // デバッガ検出; ループを終了 break; } } while (Process32Next(hSnap, &pe)); } CloseHandle(hSnap); } return TRUE; } "@ $srcPath = "$env:Tempevil.c" $dllPath = "$env:Tempevil.dll" $srcPath | Out-File -Encoding ascii -FilePath $srcPath -Force Set-Content -Path $srcPath -Value $dllSource # ------------------------------------------------- # ステップ2:Visual C++(cl.exe)でDLLをコンパイル # ------------------------------------------------- # Visual Studio Build Toolsをインストールし、環境を設定してください。 # Developer Command Promptを使用した例: # cl.exe /LD /O2 /MD evil.c /link /OUT:evil.dll # PowerShell内での自動化においては、MSVCビルドツールを呼び出します: $vcvars = "${env:ProgramFiles(x86)}Microsoft Visual Studio2019BuildToolsVCAuxiliaryBuildvcvars64.bat" & cmd /c "`"$vcvars`" && cl.exe /LD /O2 /MD `"$srcPath`" /link /OUT:`"$dllPath`"" ` | Out-Null if (-Not (Test-Path $dllPath)) { Write-Error "DLLのコンパイルに失敗しました。" exit 1 } # ------------------------------------------------- # ステップ3:rundll32.exe経由で悪意のあるDLLを実行 # ------------------------------------------------- $rundll = "$env:SystemRootSystem32rundll32.exe" & $rundll $dllPath,EntryPoint # ------------------------------------------------- # ステップ4:Sysmonがイベントをログする時間を確保するために一時停止 # ------------------------------------------------- Start-Sleep -Seconds 5このスクリプトは、対象のAPI呼び出しを行うミニマルなDLLをコンパイルし、それを
rundll32.exeを使用してロードします。短いスリープは、Sysmonがプロセス作成イベントを記録するための時間を確保します。 -
クリーンアップコマンド:
# コンパイルされたアーティファクトを削除 Remove-Item -Force -ErrorAction SilentlyContinue $env:Tempevil.c Remove-Item -Force -ErrorAction SilentlyContinue $env:Tempevil.dll # オプション:Sysmonの停止と再開でハンドルをクリアする(ほとんどの場合必要ありません) Stop-Service -Name Sysmon -Force Start-Service -Name Sysmon