Campaign

Silver Fox APT:遞送鏈的中樞化特徵研究

銀狐在部分投放站點採用前後端分離的下載誘導框架:釣魚落地頁以熱門關鍵字做 SEO 佔位,點擊下載後由外部混淆腳本向短連結 API 請求動態連結、投放最終載荷。關鍵控制面已從釣魚落地頁中樞化到外部腳本來源與短連結 API;封鎖與監測這些中樞節點,比追逐最終落點更能有效切斷投放。

Dinlon · 發布

地區 Taiwan · Hong Kong · China · APAC 產業 跨產業 平台 Windows 歸因信心 high
actor Silver Fox(銀狐) malware Winos RAT technique SEO poisoning technique Short-link redirection

Key findings

  • 銀狐在部分投放站點採用前後端分離的下載誘導框架:釣魚落地頁以熱門關鍵字做 SEO 佔位,點擊下載後由外部混淆腳本(nice.js)向短連結 API 請求動態連結、投放最終載荷。
  • 關鍵控制面已從釣魚落地頁「中樞化」到外部腳本來源與短連結 API;封鎖與監測這些中樞節點,比追逐可替換的最終落點更能有效切斷投放。
  • 站點以 HTTP Header 條件放行(需帶 Referer: google.com)、互動點擊事件,以及寄件者 IP 與歷史紀錄作為門檻,使未觸發點擊的自動化掃描難以取得投遞連結。
  • nice.js 劫持 pcgetDown、androidgetDown 等下載按鈕點擊,以 MD5(硬編碼密鑰 + 時間戳 + 域名)簽名向 API 請求短網址,再以動態 a 標籤 click() 無感導流。
  • 最終載荷為多階段載入 Winos RAT 的框架,與安天 2025 年 12 月的游蛇(銀狐)家族報告相符。

遞送鏈中樞化示意圖(AI 生成)

前言

在針對 Silver Fox APT 相關資產進行情資收集時,我們觀測到一系列具有一致行為模式的前端下載誘導框架。此類站點多以熱門關鍵字進行 SEO 佔位,吸引使用者透過搜尋引擎進入偽裝下載頁;當使用者點擊下載,站點會載入外部 JavaScript 資源並觸發導流,過程中向指定 API 請求動態短連結並投放最終載荷。此框架具備以下設計:

  1. 針對 HTTP Header 欄位過濾,規避直接掃描
  2. 將多個釣魚站點的下載導流匯聚於同一外部站點集中控制,以便統一分發、切換落點與統計點擊。
  3. 分離前端落地頁與投遞端 API,降低釣魚站點被封鎖的傷害。
  4. 以互動事件作為門檻,讓未觸發點擊的自動化分析難以取得投遞連結

雖然攻擊者透過前後端分離與動態短連結投放,使最終落點更具可替換性、降低被動觀測的可見度,但本次分析顯示收束機制使關鍵控制面由過去的釣魚落地頁轉移至外部腳本來源與短連結 API。相較於追逐最終落點,針對中樞節點進行封鎖與監測更能有效切斷投放流程並降低受害面。

投遞流程圖

本文僅供防禦研究、事件應變、威脅狩獵與教育用途。文中提及之樣本與工具可能具風險,請僅在隔離、可還原且不連接生產網路之環境中測試;文中所提及之第三方平台與產品名稱僅作技術描述之用。

行為調查

以近期較常見的 linebbn[.]com 作為演示樣本。使用 Google 搜尋「line 電腦版下載」,目標站點通常出現在前幾條結果。

Google 搜尋「line 電腦版下載」結果

該站點在觀察列表已有一段時間,但近期自動掃描總是失敗。直接以網址訪問得到 500 Error,而在請求加入 Referer: google.com 後即可取得正常頁面內容,確認站點對來源具有條件放行:

curl www.linebbn[.]com -v -H "referer: google.com"

可觀察到這類站點使用 WordPress 並加入 Yoast SEO Premium plugin v20.4。當使用者點擊下載按鈕,會觸發 hxxps://js.telegram[.]organic/site/nice.js 這支高度混淆的 JavaScript 資源。

高度混淆的 nice.js 腳本

該腳本劫持網頁上的下載按鈕點擊事件:當使用者點擊帶有特定 class(如 pcgetDownandroidgetDown)的元素時,蒐集當前頁面資訊與設備類型,發送 POST 請求至第三方 API 取得短連結,再透過多個步驟開啟,過程中使用規避與反分析措施。已清除 API 域名的原始碼分析見 VirusStrategy / WinosDrop-nice.js

混淆手法

破壞靜態字串索引,腳本開頭定義字串索引函數 _0x3aa7 與明文字串陣列 _0x41fe();其他函數透過索引映射呼叫並附上索引值,該值減去 0x198 後才是真正的字串內容。

立即調用函式(IIFE),以 IIFE 作為啟動器,載入後重新執行字串表索引,讓索引在符合算式時才成功取字串,並將主邏輯包裝成私有作用域,載入後立即生效。

左:破壞靜態字串索引;右:IIFE 相關函數

初始化

腳本加載後定義:User-Agent 檢測_0x259491 檢查 navigator.userAgent,Android/iPhone/iPad 歸類為 mobile,其餘為 pc);MD5 函數(由硬編碼 0x674523010xefcdab89 特徵識別出標準 MD5,用於 API 簽名生成)。

事件監聽與 API 請求

_0x516082document.addEventListener('click', ..., true) 監聽符合以下 CSS Class 的點擊:pcgetDown(PC)、androidgetDown(Mobile)、getDown(依 UA 自動判斷)。在該站中只有電腦版下載具 pcgetDown 按鈕,其餘方案直接導向下載連結。

下載按鈕對應的 CSS Class

一旦偵測到點擊,腳本會:阻止默認行為preventDefault()stopPropagation() 使原始按鈕失效);生成簽名(硬編碼密鑰 14729935cmDLpt,最終簽名為 MD5(密鑰 + 時間戳 + 當前域名));發送請求(向 hxxps://api.6x[.]org/v1 POST,包含時間戳、來源域名 ref(去除 www.)、設備類型與簽名)。

惡意 Payload 投放

當 API 回傳 HTTP 200 且含 short_url 時,腳本動態建立 <a> 標籤、將 href 設為回傳的惡意短網址、設定 rel="noreferrer noopener"target="_blank",插入 DOM 後程式化觸發 .click() 再移除。使用者被無感導向投放點,而自動掃描工具無法直接取得最終投放點。測試時,目標會依發送者 IP 與過去連線紀錄決定是否回應含惡意樣本的短連結。

失敗的連線紀錄

經分析,最終投放的樣本與安天於 2025 年 12 月分析的家族報告相符,為最終載入 Winos RAT 的多階段載入框架(參見 安天:游蛇(銀狐)技戰術追蹤)。

情資調查

對攻擊者資產中的域名查詢,發現有趣的子網域與歷史紀錄。透過 Google 搜尋發現一筆已無法訪問的紀錄;透過子網域枚舉找到用於登入的介面。

Google 搜尋到的歷史紀錄(已無法訪問)

枚舉子網域找到的登入介面

以情資工具查詢,該域名在 2025 年 8 月前即用於釣魚頁面;DNS 紀錄顯示其自 2022 年於 GKG.NET 註冊後,2025 年 2 月將 CDN 轉移至 Cloudflare,隨後開始註冊大量子網域以準備攻擊行動。

情資工具中的 DNS 與註冊紀錄

結論

本次調查主要確認銀狐組織在其部分投放站點中,利用前後端分離的下載誘導框架,以外部腳本與短連結 API 完成下載連結的動態分發,將最終載荷的落點從釣魚落地頁分離。

對防禦方而言,這類框架使偵測與追蹤特徵由過去的釣魚落地頁轉移至外部腳本來源與短連結 API。本研究建議將防禦範圍拓展到中樞節點的封鎖與監測,包含對引用外部腳本網域與 API 站點的出站流量進行偵測,以及在觀測到上述情資時將來源導流站點納入監測,如此更能有效切斷投放流程並降低受害風險。

樣本與參考

MITRE ATT&CK mapping

TacticTechniqueProcedure
Resource developmentT1608.006以熱門軟體關鍵字做 SEO 佔位,將偽裝下載頁推上搜尋結果前列
Initial accessT1189受害者經搜尋進入偽裝下載頁,點擊下載觸發導流
Defense evasionT1036站點偽裝成 LINE 電腦版等熱門軟體的官方下載頁
Command and controlT1102以外部混淆腳本與第三方短連結 API 作為投遞中樞,動態分發最終落點
Defense evasionT1027前端腳本 nice.js 以字串索引破壞與 IIFE 大量混淆函數與流程
Defense evasionT1480以 HTTP Referer 條件放行、互動點擊事件與寄件者 IP/歷史紀錄為門檻,使自動化分析難以取得投遞連結
ExecutionT1204.002使用者執行偽裝成正常軟體的最終載荷(多階段載入 Winos RAT)

Indicators of compromise

TypeIndicatorFirst seenLast verifiedConfidenceStatus
SHA1154d5a259cfe9b0908d0cff3cd02b102ee3a14d8nice.js — 前端劫持下載按鈕、向短連結 API 請求投遞連結的混淆腳本2025-122026-01-14High
URLhxxps://js.telegram[.]organic/site/nice.js被下載頁引用的外部混淆腳本2025-122026-01-14HighACTIVE
Domaintelegram[.]organic外部腳本來源(投遞中樞)2025-122026-01-14HighACTIVE
Domainjs.telegram[.]organic混淆腳本 nice.js 的托管子網域2025-122026-01-14HighACTIVE
Domain6x[.]org短連結 API 網域(投遞中樞)2025-122026-01-14HighACTIVE
Domainapi.6x[.]org短連結 API 端點(回傳惡意短網址)2025-122026-01-14HighACTIVE
Domainhkdownload[.]com關聯資產2025-122026-01-14ModerateACTIVE
Domainxiazai.heimao[.]io關聯資產2025-122026-01-14ModerateACTIVE
Domainlinebbn[.]comTOP5 釣魚下載頁(本文示範樣本)2025-122026-01-14HighACTIVE
Domainhk-line[.]comTOP5 釣魚下載頁2025-122026-01-14HighACTIVE
Domainlinebzn[.]comTOP5 釣魚下載頁2025-122026-01-14HighACTIVE
Domainlinebcn[.]comTOP5 釣魚下載頁2025-122026-01-14HighACTIVE
Domainwps1[.]comTOP5 釣魚下載頁2025-122026-01-14HighACTIVE
String14729935cmDLptnice.js 生成 API 簽名用的硬編碼密鑰(簽名 = MD5(密鑰+時間戳+域名))2025-122026-01-14High

OIS-2026-001 · TLP:CLEAR under FIRST TLP 2.0 · 引用本研究請附研究編號與固定網址。