← Back to list

深入銀狐 Part 1:載荷落地,Inno Setup 與 Pascal 的隱形載入鏈

本章將聚焦在受害者自釣魚站點下載並執行安裝檔後,惡意程式如何在端點完成第一階段的解包落地、環境偵測與防護繞過,並把下一階段的載入器悄悄部署到固定位置,讓看似正常的安裝流程,轉變為可持續擴張的多階段攻擊起點。

Dinlon5566 in OIS Threat Research · 2026-02-11 06:05 · 2 claps · 14.0 min read
#malware-analysis #malware #silver-fox #apt #phishing
Open on Medium ↗
Wiki topics: 🔒 · Cybersecurity

深入銀狐 Part 1:載荷落地,Inno Setup 與 Pascal 的隱形載入鏈

示意圖由 ChatGPT 生成

示意圖由 ChatGPT 生成

TL;DR

  • 本文章分析 Silver Fox APT 於九月時投放之惡意樣本。
  • 分析範圍聚焦於 Inno Setup 安裝器外殼與其 Pascal Script。
  • 腳本在安裝過程進行環境探測,並嘗試削弱防護與阻斷回報。
  • 以編碼與加密解出下一階段載荷,並由 men.exe 接續。

前言

自 2024 年起,我們觀察到大量釣魚站點假冒 LINE 電腦版、Telegram 等通訊與辦公軟體,藉此投放以 ValleyRAT、KKRAT、Sliver 等 C2 框架建構的遠端控制木馬,最終目的多指向竊取資料、商業間諜與後續社交工程。這些攻擊行為來自進階長期威脅 Silver Fox(下稱銀狐組織),由中國地區與東南亞多個黑灰產業團體構成。其攻擊目標包括中國、台灣、韓國、日本、印度等多個亞太地區國家;涉及的產業廣泛,從政府單位、公共基礎設施、醫療衛生、教育與研發,到金融、電子商務、遊戲與資安產業等都在其攻擊目標之列。

釣魚站點快照

釣魚站點快照

我們長期追蹤該威脅實體,蒐集整理大量威脅情資與惡意樣本。本次將節選一個具代表性的樣本作為案例,示範如何透過多種工具分析銀狐組織投放的惡意程式,還原惡意程式開發時的設計邏輯,同時分享分析過程中的常見問題與看法。

該樣本於 2025 年 9 月,自銀狐組織架設之釣魚站點採集。其具備強韌的核心載入能力與多階段免殺機制,至今 ( 2026 年 2 月 ) 於 VirusTotal 上仍僅有 13/70 家引擎將其判定為惡意。依據我們的長期追蹤觀察,此系列惡意程式的載入框架最早可回溯至 2025 年 3 月開始出現,並自 2025 年七月起銀狐組織大規模採用,持續活躍至 2025 年 12 月期間,期間伴隨多次變異與功能升級。本文所分析的樣本屬於其演化中期版本,整體攻擊流程與技術選型已趨成熟。

2025 年 9 月:樣本取得時

2025 年 9 月:樣本取得時

2026 年 2 月:撰文時

2026 年 2 月:撰文時

在經過分析後,我們將該樣本的攻擊階段拆分為四個主章節,分別是安裝器落地、核心控制與免殺、ValleyRAT 載入器與 Rootkit 驅動群。本章將聚焦在受害者自釣魚站點下載並執行安裝檔後,惡意程式如何在端點完成第一階段的解包落地、環境偵測與防護繞過,並把下一階段的載入器悄悄部署到固定位置,讓看似正常的安裝流程,轉變為可持續擴張的多階段攻擊起點。

可以透過以下連結取得本次分析所用樣本:

https://tria.ge/260209-clfbsahz8g/

MD5: 7979B24EC49575A1F1A3367F7B888D0E

警語

本文僅供防禦研究、事件應變、威脅狩獵與教育用途。文中提及之樣本與工具可能具風險,請僅在隔離、可還原且不連接生產網路之環境中測試。本文不鼓勵、協助或默許任何未經授權之行為,讀者若將內容用於非法或不當用途,相關責任由讀者自行承擔;本文所提及之第三方平台與產品名稱僅作技術描述之用。

落地階段分析

取得樣本後,先使用工具 MD5 Hash 確定該檔案的 Hash 值是否正確,且透過開源情資查詢樣本的掃描資訊。

MD5 Hash Tool

MD5 Hash Tool


File:     hysij.exe
Size:     116778195 (111 Mb)
MD5:      7979B24EC49575A1F1A3367F7B888D0E
Compiled: Sat, Oct 30 2010, 20:54:54 - 32 Bit EXE

檔案顯示的編譯時間為 2010 年,明顯與我們的採集時間不符。此時間戳被刻意偽造,不能直接用來判定樣本年代,為常見混淆手段。

在分析惡意程式時,會透過靜態分析、動態分析等方法進行,而這個過程的第一步是確定要分析的目標適合使用哪一種方法進行分析。使用 DIE 掃描目標特徵,可以發現在 Installer 欄位中發現樣本是使用 Inno Setup 5.3.10 打包的安裝檔。

DIE 工具

DIE 工具

Inno Setup 是一種開源的安裝程式製作軟體,並可在安裝過程中執行 Pascal 指令碼。攻擊者可透過寫入執行惡意 Pascal Script 以在安裝時達成初步混淆與防禦規避。而利用 Inno Setup 或 NSIS 作為安裝器的手法至少在 2010 年就已有案例,但多半是把惡意程式當一般檔案安裝,未特別濫用 Pascal 的邏輯能力。自從 2022 年的 Inno Stealer 被公開揭露濫用 Pascal 腳本執行的手法後,不少惡意程式也開始利用此技術,導致濫用量急劇上升。

本次分析樣本之安裝階段,可以將其抽象行為視為以下流程圖:首先由使用者啟動時請求 UAC 以管理員權限啟動,隨後安裝器投放檔案,利用腳本進行防護破壞。將檔案解密後,執行下一階段的病毒與啟動欺騙受害者的誘餌文件。

惡意 Inno Setup 程式流程圖

惡意 Inno Setup 程式流程圖

針對此類型檔案,可對樣本使用 InnoUnpacker 進行解包,取得資源與執行腳本。

innounp.exe -v -m -x -dmal hysij.exe
-m:取得執行腳本
-x:導出檔案
-d:資料夾名稱

若使用 innounp 進行解包時顯示失敗,可以嘗試使用最新的 InnoUnpacker 以處理新版本的 InnoSetup 安裝檔。

innounp

innounp

執行指令後得到以下檔案:

根據解包資訊,大致可以分為主目錄的安裝配置檔、位於{app}的資源與位於embedded目錄的安裝時腳本。

首先,檢視位於主目錄的安裝配置檔 install_script.iss

install_script.iss

install_script.iss

主要檔案 funzip.bman.datmain.xmlServer.log 一開始被投放到 C:\ProgramData\WindowsData 目錄中,且安裝過程中不會顯示任何介面。雖然看起來很可疑,但是這份文件中沒有實際的惡意行為。由於目前階段的檔案皆經過加密或編碼,因此掃描引擎無法直接偵測檔案是否含有惡意邏輯存在。

接著檢查 CompiledCode.bin,此檔案為 Pascal Script 編譯後的位元碼。我們可以使用 ifpsdasmInno Setup Decompiler 取得反組譯結果,據此還原腳本邏輯。

分析該安裝包的 Pascal Script 後,可解析出安裝時會執行以下行為:

  1. 讀取 funzip.b,以 Base64 解碼並輸出為 funzip.exe
  2. 建立目錄 C:\ProgramData\WindowsData\C:\Users\Public\Pictures\WindowsData\
  3. 檢查 C:\ProgramData\WindowsData\Server.log 是否存在,同時刪除 C:\Users\Public\Pictures\WindowsData\Server.log 避免既有檔案干擾,隨後將 Server.log 移動至該位置。
  4. 透過 WMI 查詢 Windows Defender 是否啟用。若啟用,執行 powershell.exe -Command "Add-MpPreference -ExclusionPath 'C:\'",將整個 C:\ 加入 Defender 排除清單 。
  5. 透過 WMI 查詢以下程序是否存在:MsMpEng.exe360tray.exe360Tray.exeQQPCRTP.exeQQPCTRay.exekxetray.exe。若偵測到任一程序,則對 Win32_NetworkAdapterNetEnabled = TRUE 的網卡設置為 Disable,停用所有已啟用的網路介面,推測其目的用於破壞端點在安裝當下的即時回報與遠端查詢機會。
  6. 使用 funzip.exe 解壓檔案 main.xml,並帶入密碼參數 -phtLcENyRFYwXsHFnUnqK,該密碼字串由兩個子字串組合而成,而且該框架下的所有樣本皆使用該密碼進行保護。
  7. 啟動 C:\ProgramData\WindowsData\setup.exe,這是官方版本 LINE 安裝包,用以混淆受害者。
  8. 啟動 C:\ProgramData\WindowsData\men.exe,執行下一階段的攻擊。

將行為抽象化,還原出以下流程:

檔案區域中,man.dat 體積異常偏大,且在安裝腳本與後續流程中未見被引用。結合其常見用法,推測為用來增加樣本體積,降低被上傳至線上沙箱或延後掃描處理的填充檔。

在這個階段,安裝器完成了解包落地、環境偵測、防護繞過與阻斷回報機制,最後再將誘餌與下一階段的載入器執行。透過多階段的包裝,得以防止靜態解析工具在第一層掃描到惡意行為,使其看起來就像正常的安裝程式。

本階段投放以下檔案:

到這裡,已經完成落地階段的分析。當我們想要建立執行安裝檔後的環境卻不想執行下一階段的 men.exe,可以執行以下腳本建立環境(與樣本 hysij.exe 同目錄下執行):

unpack.ps1

$MalDir = 'mal'
​
$XmlPath  = Join-Path -Path ".\$MalDir" -ChildPath '{app}\main.xml'
$OutDir   = Join-Path -Path ".\$MalDir" -ChildPath '{app}'
$manPath = Join-Path -Path ".\$MalDir" -ChildPath '{app}\men.exe'
$logPath = Join-Path -Path ".\$MalDir" -ChildPath '{app}\Server.log'
​
innounp -v -m -x "-d$MalDir" hysij.exe
​
if (-not (Test-Path -Path 'C:\ProgramData\WindowsData')) {
    mkdir 'C:\ProgramData\WindowsData'
    mkdir 'C:\Users\Public\Pictures\WindowsData'
}
​
7z x -y -phtLcENyRFYwXsHFnUnqK $XmlPath "-o$OutDir"
​
cp $manPath 'C:\ProgramData\WindowsData\men.exe'
cp $logPath  'C:\Users\Public\Pictures\WindowsData\Server.log'

若是想要以動態的方式進行分析採樣,可以使用 API Monitor 並針對 CreateProcess 設下斷點,當執行到 men.exe 時選擇跳過,即可在不執行下一階段的情況下取得檔案。但需要注意的是,銀狐組織在其他變種中使用不同的啟動方式,將導致無法透過 Windows API 的 CreateProcess進行直接攔截。

API Monitor-x32

API Monitor-x32

最後,在追蹤本系列的樣本時,於安裝器的執行腳本中觀察到許多有趣的變種。如:

  • 將檔案分割為兩個以上的子檔案,利用多次 copy /b 指令合併檔案。並且使用 powershell 腳本替換載荷內容。
  • 執行過去使用的工具,但該安裝檔並未部署該工具 (該現象在下階段亦有觀察到)。
  • 改用 NSIS 或其他安裝軟體,且使用最新版本已提升舊版工具的分析難度。
  • 破壞安裝檔格式,使其可被正常執行但無法被工具解析。
  • 直接啟動改為由排程任務啟動,混淆 PPID 關係。

技術統整

將安裝行為解析為多個技術:

  1. T1204.002 User Execution: Malicious File: 受害者執行釣魚站點下載的安裝器
  2. T1059 Command and Scripting Interpreter: Inno Setup 內嵌 Pascal 腳本可視為腳本解譯器被濫用的執行框架
  3. T1027 Obfuscated Files or Information: Base64 編碼、加密/壓縮與密碼保護等典型混淆與隱藏
  4. T1140 Deobfuscate/Decode Files or Information: 安裝階段把 Base64 還原、解壓解密等去混淆動作
  5. T1047 Windows Management Instrumentation: 透過 WMI 查詢 Defender、網卡狀態並停用
  6. T1518.001 Security Software Discovery: 探測防護軟體與感測器存在與否
  7. T1057 Process Discovery: 透過 WMI 查詢 MsMpEng.exe、360tray.exe 等程序是否存在
  8. T1059.001 PowerShell: 用 Add-MpPreference 執行排除路徑
  9. T1562.001 Impair Defenses — Disable or Modify Tools: 把 C:\ 加入 Defender 排除清單
  10. T1562.006 Impair Defenses — Indicator Blocking: 停用網路介面以阻斷回報/查詢與集中式分析
  11. T1016 System Network Configuration Discovery: 對 Win32_NetworkAdapter / NetEnabled 的操作前後,伴隨網路組態與介面資訊的蒐集脈絡。

這些技術本身並不新,但被整合在安裝流程中,形成一條不容易被察覺的載入鏈入口。銀狐組織擅長的正是將多個技術組合在同一個攻擊階段中,同時以快速的變異與加入新興技術形成一條不容易被察覺的載入鏈入口,拖延偵測與回報時間。

結語

本章呈現銀狐載入鏈的落地階段,即使看起來是最容易被忽略的安裝流程,卻是最重要的第一階段:攻擊者把安裝器當成腳本執行框架,將解包落地、防護繞過、反回報一次完成,並把真正的惡意核心延後展開。替下一階段的載荷開路,使重要的技術與惡意組件需更長的時間才被偵測。這種設計把最容易被靜態掃描命中的內容隱藏,讓第一層更像合法軟體分發,同時把端點偵測需要的關聯條件變得更分散。

在下一章,我們會接續分析 men.exe 的控制節點行為,以及其搭配的 bypass.exe、NVIDIA.exe 等元件如何延伸免殺與執行鏈,並進一步把視角從安裝器移到中樞控制,還原它如何在端點上建立多個可持續運作的工具與保持攻擊能力。

附錄

安裝器載入階段之相關檔案雜湊值:

| FileName     | Path                                   | MD5                                       |
| ------------ | -------------------------------------- | ----------------------------------------- |
| `hysij.exe`  | ``                                     | 7979B24EC49575A1F1A3367F7B888D0E          |
| `Server.log` | `C:\Users\Public\Pictures\WindowsData` | 60C90ED68922F10C568127D705AE115A          |
| `man.dat`    | `C:\ProgramData\WindowsData`           | C661590C2146CD1D18A37371BCE522EB          |
| `main.xml`   | `C:\ProgramData\WindowsData`           | 076140AD3479AF042D812ACEF8FF094D          |
| `funzip.b`   | `C:\ProgramData\WindowsData`           | 39E36678D35CB702B01CFE4D5E6452C0          |
| `men.exe`    | `C:\ProgramData\WindowsData`           | 0399D4A43E3343A938A9026FA4E1AF68          |
| `setup.exe`  | `C:\ProgramData\WindowsData`           | ~~4AD2FC6FFF2E693478EADC6793F76924~~ (白) |

本文章由 開啟資安系統股份有限公司(OpenInfoSec)資安服務處 提供

Author: Dinlon5566


메타데이터
post_id
0d68fa59f8a6
slug
深入銀狐-part-1-載荷落地-inno-setup-與-pascal-的隱形載入鏈-0d68fa59f8a6
url
https://medium.com/ois/%E6%B7%B1%E5%85%A5%E9%8A%80%E7%8B%90-part-1-%E8%BC%89%E8%8D%B7%E8%90%BD%E5%9C%B0-inno-setup-%E8%88%87-pascal-%E7%9A%84%E9%9A%B1%E5%BD%A2%E8%BC%89%E5%85%A5%E9%8F%88-0d68fa59f8a6
canonical_url
https://medium.com/ois/%E6%B7%B1%E5%85%A5%E9%8A%80%E7%8B%90-part-1-%E8%BC%89%E8%8D%B7%E8%90%BD%E5%9C%B0-inno-setup-%E8%88%87-pascal-%E7%9A%84%E9%9A%B1%E5%BD%A2%E8%BC%89%E5%85%A5%E9%8F%88-0d68fa59f8a6
author_url
https://medium.com/@dinlon5566
status
ok
fetched_at
2026-06-12 18:14:10