漏洞攻擊
ZDI-CAN-25373:Windows 快捷漏洞成 APT 零時差攻擊武器
Trend Zero Day Initiative™ (ZDI) 漏洞懸賞計畫發現有國家資助駭客和一般網路駭客集團在大量攻擊 ZDI-CAN-25373 (也就是 ZDI-25-148) 漏洞,這是一個 Windows 捷徑檔 (.lnk) 的漏洞,可讓駭客執行隱藏的指令。
摘要
- Trend Zero Day Initiative™ (ZDI) 漏洞懸賞計畫發現了將近 1,000 個惡意的 .lnk 檔案正在攻擊 ZDI-CAN-25373 (也就是 ZDI-25-148) 漏洞,這是一個可讓駭客利用特製的捷徑檔案在受害電腦上執行惡意隱藏指令的漏洞。
- 這類攻擊利用 .lnk 檔案中隱藏的指令列參數來執行惡意檔案,讓偵測工作變得更加複雜。企業若遭到 ZDI-CAN-25373 漏洞攻擊,可能將暴露於資料竊取和網路間諜活動的重大風險。
- 此漏洞已遭北韓、伊朗、俄羅斯和中國的國家資助 APT 集團所利用,受害範圍遍及北美、歐洲、亞洲、南美及澳洲的政府、金融、電信、軍事、能源等產業。
- 企業應立即掃描自己是否存在著 ZDI-CAN-25373 漏洞,確實做好對應的防範措施。此外對可疑的 .lnk 檔案也應隨時保持警戒,並採取完整的端點與網路防護措施來偵測及回應這項威脅。趨勢科技客戶可透過我們 2024 年 10 月和 2025 年 1 月發布的規則和過濾條件來防範可能的漏洞攻擊。
Trend Zero Day Initiative™ (ZDI) 漏洞懸賞計畫的威脅追蹤團隊在各式各樣的駭客行動中發現了攻擊 ZDI-CAN-25373 (也就是 ZDI-25-148) 漏洞的重大案例,最早可追溯至 2017 年。根據我們的分析顯示,總共有來自北韓、伊朗、俄羅斯和中國的 11 個國家資助駭客集團已將 ZDI-CAN-25373 用於他們的網路間諜和資料竊取行動。
我們發現了將近一千個攻擊 ZDI-CAN-25373 漏洞的 Shell Link (.lnk) 樣本,但實際的漏洞攻擊嘗試次數很可能遠高於此。隨後,我們經由 Trend ZDI 漏洞懸賞計畫向 Microsoft 提交了一份概念驗證攻擊,但 Microsoft 卻拒絕發布資安修補來解決這項漏洞。
國家資助 APT 集團利用 ZDI-CAN-25373 從事間諜活動並竊取資料
我們在追蹤使用 ZDI-CAN-25373 的攻擊行動時,發現了許多駭客集團和 APT 集團都在廣泛利用這項漏洞,包括國家資助與非國資助的 APT 集團。其中有許多集團的攻擊程序都相當精密,而且都曾經使用過網路上流傳的零時差漏洞。

如需圖 1 的原始資料請參閱此處。
圖 1 所顯示的樣本有很高的可能性是由 APT 集團所散播。此外,Trend ZDI 威脅追蹤團隊又另外發現了數百個樣本,但這些樣本目前仍無法很確定其源頭是哪些集團,不過同樣也是使用網路上流傳的 ZDI-CAN-25373 漏洞攻擊手法。

圖 2 顯示在攻擊程序中使用 ZDI-CAN-25373 漏洞的 APT 集團分布國家。這些 APT 集團當中包括了國家資助或親政府的集團,以及一般的網路駭客集團。我們將已知其所屬國家的 APT 集團另外用圖 3 來呈現。

根據報導,攻擊 ZDI-CAN-25373 漏洞的國家資助集團有將近半數來自北韓。值得注意的是,絕大多數攻擊 ZDI-CAN-25373 漏洞的北韓入侵集合 (intrusion set) 都分散在不同的時間點。這項觀察顯示出隸屬北韓網路計畫的不同駭客集團,彼此之間會互相合作並分享技巧與工具。
根據我們對攻擊 ZDI-CAN-25373 漏洞的行動及其相關入侵集合所做的分析指出,有將近 70% 的行動主要從事間諜活動與資訊竊取 (圖 4)。相較之下,只有 20% 多一點是為了獲利。有時候,以從事間諜活動為主的駭客集團也可能會透過以獲利為目標的攻擊行動來取得資金。

目標產業與風險
我們在我們監控的 ZDI-CAN-25373 相關攻擊行動及其對應的入侵集合中,找到了大量監測資料顯示有各式各樣的國家資助駭客與一般駭客集團犯罪一直在攻擊各種產業 (圖 5)。

如需圖 5 的原始資料請參閱此處。
我們在分析 ZDI-CAN-25373 漏洞的攻擊情勢時,發現以下幾個產業尤其容易遭到針對:
- 政府機關
- 民間企業
- 金融業 (包括虛擬加密貨幣相關產業)
- 智庫 (包括 NGO 非政府組織)
- 電信
- 軍事與國防
- 能源
這些產業的機構有較高的風險遭到漏洞攻擊,因此應立即掃描自己是否存在著 ZDI-CAN-25373 漏洞,並確實做好對應的防範措施,同時對可疑的 .lnk 檔案也應隨時保持警戒。此外,我們也鼓勵企業調查自己是否可能已遭入侵,或曾經有駭客試圖利用 ZDI-CAN-25373 作為入侵管道。
惡意程式檔案分析
我們在追蹤攻擊 ZDI-CAN-25373 漏洞的 .lnk 檔案以及攻擊行動時,發現了一些惡意程式檔案,並透過趨勢科技的威脅監測來交叉關聯這些檔案。資料顯示 ZDI-CAN-25373 相關的攻擊行動使用了各式各樣的惡意程式檔案與載入器。

如需圖 6 的原始資料請參閱此處。
針對圖 6 所列的「MaaS」(Malware-as-a-Service,惡意程式服務) 樣本,我們並無法找到特定的惡意程式檔案,只是觀察到其來源網域通常是 MaaS 以及一般常見的惡意程式。此外,「PoC」那一排是我們找到的概念驗證樣本。這些很可能是駭客在開發攻擊程序時所使用的。我們在追蹤這些入侵集合及惡意程式時發現到一個有趣的現象:Water Asena (Evil Corp) 一直在他們的 Raspberry Robin 攻擊行動當中使用 ZDI-CAN-25373 漏洞。
受害者分析
我們所分析到的樣本絕大多數都來自於北美,包括美國和加拿大。但由於攻擊 ZDI-CAN-25373 漏洞的 APT 集團數量相當多,因此受害目標也分散得相當廣,還包括了歐洲、亞洲、南美洲、非洲及澳洲 (圖 7)。

如需圖 7 的原始資料請參閱此處。
我們從圖 8 的地圖可以看到,攻擊 ZDI-CAN-25373 漏洞的檔案來源分布相當廣,主要分布在北美、南美、歐洲、東亞及澳洲。值得注意的是,實際的受害範圍很可能還更大,因為圖 8 只顯示 Trend ZDI 威脅追蹤團隊所能找到的樣本。

如需圖 8 的原始資料請參閱此處。
技術細節
ZDI-CAN-25373 漏洞跟 Windows 在其使用者介面上顯示捷徑 (.lnk) 檔案內容的方式有關。利用這個漏洞的駭客會精心製作一個惡意的 .lnk 檔案來發送給受害者。當受害者從 Windows 介面上查看這個檔案時,他們會看不出這個檔案含有任何惡意內容。以下詳細說明這個漏洞。
MS-SHLLINK (.lnk) 檔案格式
Windows 捷徑檔案,又稱為 Shell Link 檔案 (.lnk),是一種 Windows 作業系統用來當成檔案、資料夾或應用程式的捷徑使用的二進位檔案。這種檔案相當受到駭客青睞,原因是他們可以在 .lnk 檔案中的Target 欄位插入指令列參數,這樣就能在受害電腦上執行程式碼。本節將說明 Windows 捷徑 (MS-SHLLINK) 二進位檔案格式的一些基本資訊,因為這跟 ZDI-CAN-25373 漏洞攻擊手法有關。
ShellLinkHeader
每個 .lnk 檔案的開頭都有一個 ShellLinkHeader 結構,ShellLinkHeader 中含有每個 .lnk 檔案都必要且相同的兩個數值欄位 (表 1): HeaderSize 和 LinkCLSID (圖 9)。這兩個欄位可當成神奇位元組 (magic byte) 來判斷某個檔案是否為 .lnk 檔案。
欄位 | 數值 |
HeaderSize (4 個位元組,偏移 0x0000) | 0x0000004C |
LinkCLSID (16 個位元組,偏移 0x0004) | 00021401-0000-0000- C000-000000000046 |
表 1:ShellLinkHeader 結構中的必要欄位。

LinkFlags
跟隨在 HeaderSize 和 LinkCLSID 之後的是 LinkFlags 結構,裡面含有一些旗標,用來指定 .lnk 檔案中含有哪些額外的資料結構。其中,HasArguments 旗標尤其重要。當設定了這個旗標時,就代表 .lnk 當中含有一個 COMMAND_LINE_ARGUMENTS 結構 (圖 10)。作為 .lnk 二進位格式的一部分,這個額外的 COMMAND_LINE_ARGUMENTS 可包含一些傳給 .lnk 檔案目標的指令列參數。對一個惡意 .lnk 檔案來說,這些指令列參數就能讓它們透過 cmd.exe、powershell.exe 或其他 LOLbin 二進位檔案來下載並安裝惡意檔案。這是那些習慣在攻擊中使用 .lnk 檔案的駭客慣用的手法,現在也出現在使用 ZDI-CAN-25373 漏洞的攻擊當中。

LinkTargetIDList
如圖 11 所示,此結構含有 .lnk 檔案的目標。當這個結構被用到時,LinkFlags 區段中的 HasLinkTargetIDList 旗標就會被設定。

COMMAND_LINE_ARGUMENTS
當 LinksFlags 結構中的 HasArguments 旗標被設定時,COMMAND_LINE_ARGUMENTS 結構就會存在。此結構用來儲存指令列參數,這些參數會在捷徑啟動時傳送給指定的目標 (圖 12)。在使用 .lnk 檔案的攻擊中,這通常用來執行程式碼。

ICON_LOCATION
此外,駭客也經常利用 ICON_LOCATION 結構來控制 .lnk 檔案所顯示的圖示,如圖 13 所示。

在使用 .lnk 檔案的攻擊行動中,駭客經常會修改圖示來誘騙受害者執行捷徑。由於 Windows 通常不會顯示「.lnk」這個副檔名,所以駭客經常會在其檔名末端多加上一個「假的」副檔名,變成像「.pdf.lnk」(來假扮成 PDF 檔案),然後再配上一個對應的圖示讓使用者更容易上當。正常來說,「.lnk」檔案的圖示左下角應該要有一個箭頭符號。
漏洞詳細資訊
為了攻擊 ZDI-CAN-25373 漏洞,駭客精心製作了 .lnk 檔案,並在其 COMMAND_LINE_ARGUMENTS 結構中插入一些空白字元 (表 2)。
十六進位值 | 輸出字元 |
\x20 | 空格 (Space) |
\x09 | 水平跳格 (Horizontal Tab) |
\x0A | 換行 (Line Feed) |
\x0B | 垂持跳格 (Vertical Tab) |
\x0C | 換頁 (Form Feed) |
\x0D | 歸位 (Carriage Return) |
表 2:用來攻擊 ZDI-CAN-25373 漏洞的空白字元。
使用者若深入查看含有惡意填充字元的 .lnk 檔案,在 Windows 操作介面上的指定區域內,其實看不到惡意參數 (圖 14)。由於這項漏洞的緣故,使用者完全無法看到 .lnk 檔案執行時的指令列參數。

想要查看攻擊 ZDI-CAN-25373 漏洞的樣本檔案中的 Target 欄位以及 COMMAND_LINE_ARGUMENTS 結構,就必須使用第三方工具。

如果使用十六進位編輯器來檢視樣本,就能在 COMMAND_LINE_ARGUMENTS 結構中看到大量的「空格」(\x20) 字元 (圖 16)。

我們發現一個有趣的現象,駭客在 COMMAND_LINE_ARGUMENTS 中加入了「換行」(\x0A) 和「歸位」(\x0D) 字元。就這個例子來說,當使用者查看 .lnk 檔案的內容時, Target 欄位中只會看到一個可反白的字元 (圖 17)。

我們在分析時發現,有些北韓駭客,如 Earth Manticore (APT37) 和 Earth Imp (Konni),偏愛使用超大型的 .lnk 檔案並搭配大量的空白字元和其他垃圾內容來進一步躲避偵測。Earth Imp 使用的檔案大小「中位數」為 3.32 MB,最大的檔案為 70.1 MB。Earth Manticore 使用的檔案大小「中位數」是 33.33 MB,最大的檔案為 55.16 MB。
ZDI-CAN-25373 是一個「使用者介面 (UI) 關鍵資訊不實表示 (CWE-451)」的範例,代表 Windows UI 無法在使用者面前呈現關鍵的資訊。這跟我們先前發現的一個案例很像,使用者無法看到跟安全相關的重要資訊。藉由 ZDI-CAN-25373 漏洞,駭客就能避免使用者看到可判斷檔案危險程度的關鍵資訊 (例如執行了某些指令)。
結論
國家級 APT 集團及高階駭客集團所帶來的威脅,對全球政府機關、關鍵基礎設施以及私人企業所持有的資料來說,都是重大的機密性、完整性與可用性風險。在攻擊 ZDI-CAN-25373 漏洞的 11 個國家資助 APT 集團中,絕大多數都曾有過在網路上攻擊零時差漏洞的歷史。這些零時差漏洞之所以成為嚴重的風險,是因為軟體廠商仍不知道這些漏洞存在,所以沒有提供對應的資安修補,使得政府機關和企業很容易遭到漏洞攻擊。隨著地緣政治的緊張與衝突日益升高,駭客攻擊的精密度以及使用零時差漏洞的情況預料將持續攀升,因為不論是國家或網路駭客都會拼命想要獲得競爭對手沒有的優勢。有鑑於零時差漏洞攻擊日益普遍,企業有必要建置一套完整的資安解決方案來有效保障關鍵資產及產業的安全。本文討論的漏洞是經由 Trend ZDI 漏洞懸賞計畫揭露給 Microsoft,但 Microsoft 已將它列為低嚴重性漏洞,因此短期內不會立即修補。
為了讓軟體更加安全,並且保護客戶免於零時差攻擊,Trend ZDI 一直在與資安研究人員及廠商合作,在 APT 集團對軟體漏洞發動攻擊之前,預先修補並負責任地揭露漏洞。此外,Trend ZDI 威脅追蹤團隊也會主動追蹤網路上的零時差攻擊來守護產業的安全。
採用 Trend Vision One™ 的主動式防護
企業可採用 Trend Vision One™ 來防範 APT 集團所發動的攻擊,這是唯一採用 AI 來驅動的企業網路資安平台,集合了資安曝險管理、資安營運,以及強大的多層式防護於一身。這套全方位的方法能協助您預測及防範威脅,讓您在所有數位資產上加速實現主動式防護的成果。它憑著數十年的網路資安領導地位,以及業界首創的 Trend Cybertron 主動式網路資安 AI,為您帶來經得起考驗的具體成果:減少 92% 的勒索病毒風險,以及縮短 99% 的偵測時間。資安領導人可評量自己的資安狀況,向所有利害關係人展示資安的持續改善。有了 Trend Vision One,您就能消除資安盲點,專心處理最重要的問題,讓資安晉升為支援您創新的策略合作夥伴。
在是否遭到入侵以及駭客行為和攻擊程序不確定的情況下,企業應假設自己的系統已經遭到入侵或發生資料外洩,並且立即隔離受影響的資料或工具。藉由更廣泛的視野以及快速的回應,企業就能應付駭客入侵的問題並保護剩餘的系統,尤其是採用強大的端點與網路防護解決方案。這套平台的資安營運功能提供了無可匹敵的可視性來攔截敵人,結合原生感測器及第三方監測資料的豐富資訊。藉由 XDR、SIEM 和 SOAR 的強大威力來主動偵測、調查及回應威脅,讓駭客無所遁形。
針對 ZDI-CAN-25373 的趨勢科技防護
趨勢科技客戶可採取以下防護:
Trend Vision One™ - Network Security
- TippingPoint 入侵防護過濾條件:44844 - HTTP: Microsoft Windows LNK File UI Misrepresentation Vulnerability (ZDI-25-148)
以下 Network Security 防護將於 3 月 25 日正式推出:
- Deep Discovery Inspector (DDI) 關聯規則:5351 - Microsoft Windows LNK File UI Misrepresentation Remote Code Execution Exploit (ZDI-25-148) - HTTP(RESPONSE)
- Trend Vision One XDR for Network OAT 規則: 5351 - Microsoft Windows LNK File UI Misrepresentation Remote Code Execution Exploit (ZDI-25-148) - HTTP(Response)
Trend Vision One™ – Endpoint Security、Trend Micro™ Deep Security™
- 1012182 - Microsoft Windows LNK File UI Misrepresentation Vulnerability Over HTTP (ZDI-25-148)
- 1012183 - Microsoft Windows LNK File UI Misrepresentation Vulnerability Over SMB (ZDI-25-148)
如需更多的趨勢科技規則與過濾條件,請參閱此處。
Trend Vision One 威脅情報
要隨時掌握持續演變的威脅,Trend Vision One 客戶可透過 Intelligence Reports 以及 Threat Insights 取得各種情報與威脅洞見。Threat Insights 可幫助客戶在威脅發生之前便提前掌握,並對新興的威脅預先做好準備,提供有關駭客、惡意活動及駭客技巧的完整資訊。善用這些情報,客戶就能主動採取步驟來保護自己的環境、防範風險,並且有效回應威脅。
Trend Vision One Intelligence Reports 應用程式 [IoC 掃描]
- ZDI-CAN-25373:Windows 捷徑漏洞成為大規模 APT 攻擊行動濫用的零時差漏洞
Trend Vision One Threat Insights 應用程式
- 駭客集團:Water Glashtyn、Earth Iktomi、Water Poukai、Water Cetus、Earth Balayang、Fire Tengu、Earth Imp、Water Asena、Earth Akurra、Earth GelertEarth Iktomi、Water Poukai、Water Cetus、Earth Balayang、Fire Tengu、Earth Imp、Water Asena、Earth Akurra、Earth Anansi、Earth Gelert、Earth Vetala、Earth Kapre、Earth Preta、Earth Tengshe、Earth Lusca
- 新興威脅:ZDI-CAN-25373:Windows 捷徑漏洞成為大規模 APT 攻擊行動濫用的零時差漏洞
追蹤查詢
Trend Vision One Search 應用程式
Trend Vision One 客戶可以使用 Search 應用程式來尋找或追蹤本文提到的惡意指標,看看是否也出現在自己的環境中。
偵測來自 LNK 檔案的可疑 cmd.exe 或 powershell.exe 執行
eventSubId:2 AND (processFilePath:\"*\\cmd.exe\" OR processFilePath:\"*\\powershell.exe\") AND parentFilePath:\"*.lnk\"
除此之外,Trend Vision One 客戶還可啟用 Threat Insights 權利來取得更多追蹤查詢。
Yara 威脅追蹤規則
您可使用以下 YARA 規則來尋找攻擊 ZDI-CAN-25373 漏洞的檔案:
rule ZTH_LNK_EXPLOIT_A
{
meta:
author = "Peter Girnus"
description = "This YARA file detects padded LNK files designed to exploit ZDI-CAN-25373."
reference = "https://www.trendmicro.com/en_us/research/25/c/windows-shortcut-zero-day-exploit.html"
target_entity = "file"
strings:
$magic = {4C 00 00 00 01 14 02 00}
$spoof_a = {20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00 20 00}
$spoof_b = {09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00 09 00}
$spoof_c = {0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00 0A 00}
$spoof_d = {0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00 0D 00}
$spoof_e = {11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00 11 00}
$spoof_f = {12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00 12 00}
$spoof_g = {13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00 13 00}
$spoof_h = {0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00 0D 00 0A 00}
condition:
$magic at 0x00 and ($spoof_a or $spoof_b or $spoof_c or $spoof_d or $spoof_e or $spoof_f or $spoof_g or $spoof_h)
}
入侵指標資料
如需本文提到的入侵指標完整清單,請至此處。