
1. 簡介
現今的網路安全環境特點就是惡意軟體一直在進化,威脅行為者(Threat actor) 不停開發更複雜的工具來搞亂系統並躲過檢測。最近加入這一堆工具的其中之一是 CoffeeLoader,這是一個新發現的惡意軟體加載器(Malware loader),完美展現了這個趨勢。這種高級的惡意軟體家族大約在 2024 年 9 月冒出來,主要設計來在目標系統上下載並執行第二階段的 payload 1 。它的招牌特點在於用多種方法來躲避端點安全產品的檢測,採用了一堆高級技術。這些技術包括一個專門的封裝器(Packer),利用系統的圖形處理單元(GPU)的運算能力,還有一招叫做「Call stack spoofing」來掩蓋它的行動來源,睡眠混淆技術(Sleep obfuscation) 來藏身於記憶體中,再加上利用 Windows 纖程(Fiber) 來進一步提升它的隱密性 1 。

安全研究人員觀察到,CoffeeLoader 是透過另一個惡意軟體家族 SmokeLoader 散播的,這顯示兩者之間可能有某種聯繫或運作上的關係 1 。這種關聯突顯了網路犯罪生態系統的複雜性跟常常互相連繫的特性,已經站穩腳跟的惡意軟體平台可能被用來部署更新、更難抓的威脅。這份報告目標是要給 CoffeeLoader 一個完整的技術分析,深入探討它的各個組成部分、用來反檢測的功能,以及它的網路通訊協定。目的是要剖析讓 CoffeeLoader 在當前惡意軟體環境中變成一個值得注意威脅的機制。
CoffeeLoader 跟 HijackLoader 3 這類高級加載器同時出現跟被使用,凸顯了威脅行為者策略裡的一個重要趨勢。這個趨勢很可能是對端點檢測與回應(EDR)系統能力越來越強的回應。隨著 EDR 解決方案在辨識已知的惡意軟體簽章跟行為模式上越來越厲害,威脅行為者不得不投入更多心力在更複雜的傳遞機制上,好在攻擊初期繞過這些防禦。CoffeeLoader 跟 SmokeLoader 1 之間觀察到的行為相似性更暗示了可能是現有惡意軟體的進化,或者是網路犯罪社群裡的合作努力,來增強其行動的隱密性和有效性。
2. 軍械庫封裝器(Armoury Packer):利用 GPU 來躲避
CoffeeLoader 複雜躲避策略的一個關鍵部分是用了一個獨特的惡意軟體封裝器,叫做「Armoury」 1 。這個封裝器負責保護 CoffeeLoader 樣本不被分析跟檢測,用了一招不尋常的技術:它利用目標系統的 GPU 來執行部分程式碼 1 。具體來說,Armoury 用的是 OpenCL 函式庫,這是一個用來寫跨不同平台(包括 GPU)執行的程式框架,來跑解密程序 1 。這種GPU-based 的執行主要是為了讓分析變得更麻煩,特別是在安全研究人員跟自動化沙箱系統常用的虛擬環境裡 1 。把程式碼執行丟到 GPU 上,Armoury 就能可能躲過傳統專注在 CPU 的分析工具跟沙箱,因為這些工具對 GPU 運作的能見度沒那麼高。
更深入的分析顯示,Armoury 被設計來假冒由知名電腦硬體製造商 ASUS 打造的正版「Armoury Crate」工具程式 1 。這種假冒還延伸到劫持原本工具程式的特定匯出函數,例如 Post_EntrypointReturn 跟 freeBuffer,然後換成自我解密的 Shellcode 1 。這個 Shellcode 負責解開更多程式碼,最後在系統的 GPU 上跑解密程序 1 。解密過程本身是用 GPU 核心函數對一個編碼的輸入緩衝區做 XOR 運算,用的解密金鑰是從兩個 Hardcode 的 32 位元組字串來的 1 。值得一提的是,這個封裝器 Armoury 不只被看到保護 CoffeeLoader 的 payload,還保護 SmokeLoader 的 payload,這更顯示這兩個惡意軟體家族之間的緊密關係 1 。
在惡意軟體躲避中策略性使用 GPU 給威脅行為者帶來好幾個潛在好處 5 。GPU 有自己的專用記憶體跟處理資源,這些通常不在主要盯著中央處理單元(CPU)的安全工具監控範圍內。這讓惡意軟體能在比較少被檢查的環境裡跑惡意程式碼。而且,隨著 GPU 在人工智慧跟機器學習這種計算密集型任務上越來越重要,攻擊者也開始看出同樣硬體在惡意操作上兼具隱密跟速度的潛力 6 。像 Armoury 這種客制化封裝器的部署,需要對 GPU 程式設計跟架構有更深的了解,這突顯了現代惡意軟體威脅越來越複雜的特性。
3. 初始感染與持久性機制
在初始解封裝(Unpacking)階段後,CoffeeLoader 第一個動起來的元件是一個 Dropper,負責在被感染的系統上跑惡意軟體的安裝程序 1 。分析 CoffeeLoader 樣本發現, Dropper 會把封裝好的 CoffeeLoader 動態連結庫(DLL)複製到特定安裝路徑。如果惡意軟體是用提升的權限跑,這個封裝 DLL 通常會安裝在 %PROGRAMDATA%\ArmouryAIOSDK.dll 目錄下。反過來說,如果沒拿到提升權限,DLL 會裝在 %LOCALAPPDATA%\ArmouryAIOSDK.dll 目錄下 1 。這種雙路徑做法讓惡意軟體不管一開始拿到什麼權限等級,都能在系統上站穩腳跟。
為了更進一步達成目標,CoffeeLoader Dropper 會試著繞過使用者帳戶控制(UAC),這是作業系統裡設計來防止未經授權改變系統的安全功能 1 。觀察到的具體技術是用 CMSTPLUA COM 介面,這是一個已知的 UAC 繞過方法 1 。成功繞過 UAC 讓惡意軟體能做需要管理權限的動作,這些通常是建立強大持久性跟跑後續惡意活動必要的。
CoffeeLoader 運作的一個關鍵點是它能在被感染系統上建立持久性,確保系統重開機後它還是活著。惡意軟體用 Hardcode 名稱(像是 AsusUpdateServiceUA)建立排程任務來做到這點 1 。舊版的 Dropper 被看到用 schtasks.exe 命令列工具來建這個排程任務 1 。不過,新版改用 ITaskScheduler COM 介面,這是用程式化方式管理排程任務的方法 1 。這個排程任務被設定在特定間隔或系統事件跑惡意軟體,確保它持續運作 2 。
除此之外, Dropper 還會動手腳更改安裝路徑裡封裝 CoffeeLoader DLL 的檔案屬性。它把屬性設成唯讀、隱藏跟系統 1 。這些屬性改變是為了讓檔案對使用者不太顯眼,還能防意外或故意刪除。另外, Dropper 用 SetEntriesInAclW API 拒絕目前使用者對封裝 DLL 做幾個關鍵操作的權限,包括 DELETE (0x10000)、FILE_WRITE_DATA (0x2)、FILE_APPEND_DATA (0x4)、FILE_WRITE_EA(擴展屬性)(0x10) 跟 FILE_WRITE_ATTRIBUTES (0x100) 1 。這種存取控制操作進一步阻礙了使用者或安全軟體刪除或修改惡意軟體的嘗試。
這些初始感染和持久機制的組合體現了一種經過深思熟慮的策略,可以獲得並維持在受感染系統的立足點。使用排程任務等標準技術,加上 UAC 繞過和檔案系統操縱等更高級的方法,凸顯了該惡意軟體隱密而持續運行的意圖。用於創建計劃任務的方法從命令列工具程式演變為 COM 接口,這可能表明正在不斷努力改進惡意軟體並可能逃避更新的檢測技術。
4. 分階段與程序注入技術
在初始安裝跟持久性階段後,CoffeeLoader 用一個分階段元件來幫忙載入跟執行它的主要惡意模組 1 。這個分階段器在為惡意軟體核心功能搭舞台上扮演關鍵角色。分階段器(stager)的一個主要動作是建立一個新的 dllhost.exe 程序實例,這是 Windows 用來託管 DLL 的正版程序 1 。重點是,這個程序在建立時是處於暫停狀態(Suspended),意思是它已經初始化,但主執行緒還沒跑起來 1 。
為了準備注入主要模組,分階段器得解析它要用的各種 Windows API 函數位址。CoffeeLoader 不是直接用名稱呼叫這些函數(這樣容易被監控),而是用自訂的雜湊演算法來解析需要的 API 函數 1 。這種技術叫做 API 雜湊 ,會為每個函數名稱算出一個獨特的雜湊值,然後在執行時比對這些雜湊值,在系統的 DLL 裡找到對應的函數位址 16 。這招加了一層混淆,讓惡意軟體的靜態分析更麻煩,因為程式碼裡的特定 API 呼叫不會馬上顯現出來。
在目標 dllhost.exe 程序處於暫停狀態並解析好必要的 API 函數位址後,分階段器就繼續把主要 CoffeeLoader 模組注入這個程序 1 。這種程序注入技術是惡意軟體常用的手法,用來在正版程序的環境裡跑它的惡意程式碼,這樣可能躲過安全軟體的檢測,因為那些軟體可能會標記可疑的獨立執行檔 19 。CoffeeLoader 用 Native API 函數,具體是 NtAllocateVirtualMemory、NtProtectVirtualMemory 跟 NtWriteVirtualMemory 來做這個注入 1 。NtAllocateVirtualMemory 用於在目標 dllhost.exe 程序的位址空間內分配記憶體,NtProtectVirtualMemory 用於修改分配區域的記憶體保護屬性(例如,將其設定為可執行),NtWriteVirtualMemory 用於將主 CoffeeLoader 模組的程式碼寫入分配的記憶體中。
最後,為了啟動注入的主模組的執行,階段程序修改了暫停的 dllhost.exe 程序1 的執行緒環境。這涉及到改變程序主執行緒的指令指標,使其指向注入的主模組2的入口點。一旦設定了指令指標,階段程式就會使用 NtResumeThread 之類的函數恢復執行緒,從而導致 dllhost.exe 程序開始執行注入的惡意程式碼,就好像它是自己的一樣3。從解封包到程序注入,這個多階段過程顯示了惡意軟體刻意隱藏其真實性質和活動的行為。
5. 主模組中的高級躲避策略
一旦主要 CoffeeLoader 模組成功注入並在 dllhost.exe 程序裡跑起來,它會用一整套高級躲避技術,來進一步阻礙安全產品的檢測跟分析 1 。這些技術包括呼叫堆疊偽造(Call stack spoofing)、睡眠混淆跟 Windows 纖程的使用。
5.1. 呼叫堆疊偽造(Call stack spoofing)
CoffeeLoader 的主模組實作了一招叫做呼叫堆疊偽造的技術,很可能是參考 BokuLoader 惡意軟體家族裡看到的方法 1 。呼叫堆疊偽造是一種高級躲避策略,目標是偽造執行中程序的呼叫堆疊,來掩蓋函數呼叫的真正來源,讓安全軟體很難把惡意軟體的活動追回它的初始入口點 25 。這招對分析呼叫堆疊軌跡來找可疑行為或把動作歸因到特定模組的安全產品特別有效。
CoffeeLoader 的呼叫堆疊偽造實作會去找特定的指令序列,0x23, 0xFF,這對應到 x64 組合語言裡的 jmp rbx 小工具 1 。這裡說的小工具是一小段以返回結尾的指令序列,串起來時(像是 Return-Oriented Programming 或 ROP)可以用來做特定操作。jmp rbx 指令會讓程式執行跳到 rbx 暫存器裡存的位址。找到這個小工具後,CoffeeLoader 就能用受控的方式操縱執行流程。
接著,惡意軟體會開始設合成堆疊框架(Stack frames),這基本上是呼叫堆疊裡的假進入點(Fake entries),設計來模仿正版的函數呼叫序列 1 。這包括小心用返回位址建堆疊,這些位址指向系統函式庫或其他可信模組裡看起來無害的地方。這樣一來,當惡意軟體做可能有嫌疑的系統呼叫時,呼叫堆疊會看起來像是從正版來源來的,躲過靠呼叫堆疊分析的檢測機制 28 。
除了偽造呼叫堆疊,CoffeeLoader 還試著避開使用者模式監控(User-mode hooks),這是 EDR 系統常用來攔截跟監控 API 呼叫的技術 1 。為了做到這點,惡意軟體用間接系統呼叫,而不是直接呼叫被監管的 API 函數 1 。這包括動態搜尋這些函數裡的特定位元組模式,來提取目標函數的系統呼叫編號(System call numbers)。例如,CoffeeLoader 會找位元組模式 0x4C, 0x8B, 0xD1, 0xB8,這對應到 x64 組合語言指令 mov r10, rcx,通常出現在系統呼叫橋接(system call stubs) 的開頭 1 。它還會找位元組模式 0x0F, 0x05,這代表 x64 組合語言裡的 syscall 指令 1 。一旦找到合適的 syscall 小工具,CoffeeLoader 會存下它的位址,然後在需要做目標系統呼叫時用它,有效繞過可能設在對應 API 函數上的任何使用者模式監控 33 。
5.2. 睡眠混淆 (Sleep Obfuscation)
CoffeeLoader 用的另一個重要躲避技術是睡眠混淆,設計來從掃描系統記憶體的安全工具裡藏住惡意軟體的存在跟活動 1 。睡眠混淆的核心想法是在睡眠狀態時加密惡意軟體的程式碼跟資料,讓它在記憶體掃描器看來像是隨機位元組 2 。只有在程式碼真的跑起來時,未加密、可能被抓到的惡意軟體痕跡才會出現在記憶體裡。
CoffeeLoader 的睡眠混淆程序有幾個步驟。首先,它會產生一個隨機的 16 位元組值,當作後續加密操作的金鑰 1 。這個金鑰通常跟對稱加密演算法一起用。然後,惡意軟體會走遍它分配的堆積記憶體(Heap memory),用原生的 RC4 實作來加密,但這步驟有條件,看內部旗標決定 2 。在選擇性加密堆積後,惡意軟體會把含它程式碼跟資料的記憶體區設成 PAGE_READWRITE,允許對這塊記憶體讀寫 1 。接著,它用 SystemFunction032 函數加密這塊記憶體區,這函數跟 RC4 加密有關 4 。這個函數是 Windows Native API 的一部分,但沒正式文件記錄,使其使用產生另一層混淆5。
加密完成後,CoffeeLoader會進入指定時間長度的睡眠狀態,預設睡眠時間為30分鐘1。在此期間,惡意軟體的程式碼和關鍵資料仍加密保存在記憶體中,從而有效地躲避安全產品進行的記憶體掃描。一旦睡眠期到期,惡意軟體就會使用相同的 RC4 金鑰和 SystemFunction032 函數解密記憶體區域1。然後,根據特定的記憶體區域,將記憶體權限恢復為 PAGE_EXECUTE_READ 或 PAGE_EXECUTE_READWRITE,從而允許再次執行程式碼2。如果堆積記憶體之前被加密過,那麼在這個階段也會被解密1。
有趣的是,CoffeeLoader 也會檢查系統是否啟用了控制流保護 (CFG)1。 CFG 是一種安全功能,其目的在防止攻擊者將應用程式的控制流程重新導向到任意記憶體位置2。如果 CFG 處於有效狀態,CoffeeLoader 會為某些功能添加例外,以確保其睡眠混淆技術不會無意中觸發 CFG 違規並導致惡意軟體崩潰3。這表明人們意識到了現代漏洞緩解技術並努力保持營運穩定1,2,3。
此外,CoffeeLoader 支援以內部旗標為基礎1 的不同方法來實現睡眠週期和相關的加密/解密循環。這些方法可能包括使用計時器佇列、可等待計時器和非同步程序呼叫 (APC),所有這些都是 Windows 作業系統提供的用於調度和管理非同步操作的機制2。這種實施上的靈活性使得惡意軟體可以潛在地逃避專門針對某種特定睡眠混淆方法的偵測技術。
5.3. Windows 纖程隱匿(Windows Fibers for Stealth)
除了比較常見的睡眠混淆技術之外,CoffeeLoader 還可以利用 Windows 纖程作為另一種方法來增強其隱身性和逃避偵測1 。 Windows 纖程是一種相對模糊且輕量級的機制,用於在單一執行緒2 內實現使用者模式多工處理。與由 Windows 作業系統核心管理和調度的傳統執行緒不同,纖程由應用程式本身協作管理3。這使得應用程式可以在單一執行緒內的不同執行環境(纖程)之間切換,從而有效地實現應用程式級多工處理1。
CoffeeLoader 有一個選項,可以使用 Windows 纖程來實現其睡眠混淆副程式1 。背後的原因是,某些端點偵測和回應 (EDR) 系統可能不會像監控傳統執行緒和程序那樣直接監控或追蹤 Windows 纖程的執行和記憶體狀態2。透過在纖程中執行睡眠混淆活動,CoffeeLoader 可以在不太嚴格的執行環境中運行,從而增加其逃避檢測的機會3。使用這種不常見的多任務機制凸顯了惡意軟體作者對 Windows 作業系統細微差別的理解,以及他們願意利用不常監控的功能進行逃避監控。
6. 命令與控制基礎架構
在感染後的命令與控制(C2)通訊上,CoffeeLoader 用 HTTPS 協定跟遠端伺服器連繫 1 。選這個協定能讓惡意軟體可能把它的網路流量混進正版的網頁通訊裡,這樣基本網路監控就比較難抓到 52 。惡意軟體會發起 HTTP POST 請求來跟它的 C2 伺服器通訊 1 。
為了更提升隱密性跟可能根據網路足跡躲避檢測,CoffeeLoader 用 Hardcode 的使用者代理字串,假裝成 iPhone 1 。這招是想讓惡意軟體的網路請求看起來像是從正版行動裝置來的,在某些網路環境裡可能比較不會被標成可疑。
CoffeeLoader 實作的一個關鍵安全措施是用 Certificate pinning 來保護它的 C2 通訊管道不被攔截 1 。Certificate pinning 是一種技術,惡意軟體會根據已知、 Hardcode 的值驗證 C2 伺服器的 TLS 憑證公鑰 57 。這能防中間人(MITM)攻擊,免得攻擊者用假憑證試著攔截並可能操縱被感染主機跟 C2 伺服器間的通訊。透過固定預期的憑證,CoffeeLoader 確保只跟正版的 C2 伺服器通訊。
在 HTTPS POST 主體裡,被感染主機跟 C2 伺服器間交換的資料不是明文傳輸,而是用加密二進位協定保護 1 。這個協定裡的每個封包都用 Hardcode 的 16 位元組 RC4 金鑰加密 1 。有趣的是,CoffeeLoader 用不同的 RC4 金鑰來加密送到 C2 伺服器的請求,跟解密從伺服器收到的回應用的金鑰不一樣 1 。這種雙金鑰做法給 C2 通訊的分析加了另一層複雜度。
在這個加密二進位協定裡,CoffeeLoader 支援特定訊息類型,來幫忙它運作的不同階段。一個已知的訊息類型是用來註冊,十六進位值是 0x69 1 。這個訊息可能是被感染主機用來向 C2 伺服器註冊自己,可能拿到一個獨特的識別碼或 bot ID。另一個訊息類型是用來拿或回報任務狀態,標示為十六進位值 0x42 1 。這顯示 C2 伺服器有機制給被感染主機派任務,主機也能回報任務完成或狀態。
對網路協定的進一步分析顯示,CoffeeLoader 對請求跟回應用不同的位元組順序 1 。從被感染主機送到 C2 伺服器的請求用 Big-Endian 位元組順序,多位元組值的最重要位元組先存。相反,從 C2 伺服器收到的回應用 Little-Endian 位元組順序,最不重要位元組先存。這種位元組順序差異需要在協定實作跟分析時小心處理。
CoffeeLoader 的 C2 伺服器能對被感染客戶端發各種命令,允許遠端控制跟跑惡意活動 1 。這些命令包括讓客戶端睡覺、注入並跑 Shellcode 1 、更新客戶端用的睡眠混淆方法、寫入並執行任意執行檔 1 ,還有用 rundll32.exe 工具寫入並執行 DLL 檔案 1 。值得注意的是,安全研究人員看到 CoffeeLoader 被用來部署 Rhadamanthys Shellcode ,這是個偷資訊的惡意軟體,突顯這個加載器在幫被感染系統跑更多惡意活動的角色 1 。
7. 後備機制:域名生成演算法
為了確保彈性跟在主要 C2 伺服器掛掉或被擋時還能維持命令與控制,CoffeeLoader 加了一個後備機制,就是域名生成演算法(DGA) 1 。DGA 是個用來定期產生一大堆偽隨機域名的演算法 94 。如果惡意軟體連不上它主要的 Hardcode C2 伺服器,就會跑它的 DGA 來生出一堆潛在備用 C2 網域名稱 1 。在 CoffeeLoader 的情況下,DGA 是用日期當種子(Seed),意思是當前日期被當作演算法的輸入,確保被感染主機跟攻擊者(用同樣演算法並知道當前日期)能生出同一組域名 1 。
然後,惡意軟體會試著聯繫這些生成域名中的一個或多個,來重新跟攻擊者的基礎架構連繫 94 。CoffeeLoader 的這個特定 DGA 實作被設計來生成帶 .com 頂級域名(TLD)的備用 C2 網域名稱 1 。用 DGA 給攻擊者帶來很大優勢,因為這讓防禦者很難有效封鎖惡意軟體的通訊管道。就算有些生成的域名被認出來並列入黑名單,惡意軟體還是能試著連到同一天或之後日子由演算法生的不同域名,讓中斷它的運作變成持續挑戰 93 。
8. 跟 SmokeLoader 的關係
對 CoffeeLoader 的分析揭露了它跟另一個已經站穩腳跟的惡意軟體加載器 SmokeLoader 的顯著連結 1 。安全研究人員觀察到 CoffeeLoader 透過 SmokeLoader 散播的案例,顯示兩者間有有效的運作連結 1 。還有,行為分析顯示這兩個惡意軟體家族在運作方式上有好幾個相似點 1 。這些共通特徵暗示可能有共同來源或技術被故意重用。
更重要的是,研究人員在 CoffeeLoader 跟 SmokeLoader 的原始碼層級上找到共通點 2 。這個發現強烈顯示兩者間有密切關係,可能 CoffeeLoader 是 SmokeLoader 下一個主要迭代或進化 50 。這在最近針對 SmokeLoader 基礎架構的執法行動背景下特別合理 50 。CoffeeLoader 帶著它的高級躲避能力冒出來,可能是同一群威脅行為者試著克服這些干擾,推出 SmokeLoader 更進階後繼者的嘗試。
雖然證據指向強烈連結跟潛在進化關係,但這種關係的確切本質——CoffeeLoader 是直接後繼者、變種還是合作成果——還沒完全清楚 2 。需要持續分析跟進一步研究,來完全搞清楚這兩個惡意軟體家族間的精確連結,以及這對未來威脅環境的影響。
9. 結論
CoffeeLoader 是惡意軟體加載器武器庫裡一個複雜的新成員,特點在於它多層次的躲避檢測跟分析方法。這份技術分析突顯了它運作的幾個關鍵點,包括用 Armoury 封裝器,這個惡意軟體利用 GPU 處理來做初始解開封包及可能躲過沙箱。惡意軟體用多階段感染過程,從 Dropper 開始,透過排程任務建立持久性並試著繞過 UAC。然後分階段器把主要模組注入到暫停的程序裡,用 API 雜湊 來混淆跟 Native API 呼叫來注入。
主模組本身包含高級躲避策略,像呼叫堆疊偽造(可能從 BokuLoader 來的靈感),來誤導分析呼叫流程的安全產品。睡眠混淆用 RC4 加密跟未公開的 SystemFunction032 API,在閒置時進一步藏住惡意軟體在記憶體裡的存在。可選用 Windows 纖程來做睡眠混淆,顯示惡意軟體作者知道作業系統裡比較少被監控的功能。
跟命令與控制基礎架構的通訊用 HTTPS 保護,用 Certificate pinning 防 MITM 攻擊,還用 RC4 的加密二進位協定。C2 伺服器支援多種命令,讓攻擊者能做從部署更多 payload(像 Rhadamanthys Shellcode )到更新惡意軟體自己躲避技術的動作。最後,加了個日期種子的域名生成演算法,提供 C2 通訊的彈性後備機制。
透過 SmokeLoader 觀察到的 CoffeeLoader 散播跟原始碼層級的共通點,強烈顯示兩者間有密切關係,可能表示 CoffeeLoader 是 SmokeLoader 的下一個進化。因為它創新的攻擊能力跟跟 SmokeLoader 這種成熟威脅的潛在連結,CoffeeLoader 構成一個重大且持久的威脅。持續監控、深入分析跟開發針對性的檢測與緩解策略,對有效對抗這種複雜惡意軟體至關重要。
功能 | CoffeeLoader | SmokeLoader |
---|---|---|
GPU-based 的封裝 | 是 (Armoury) | 否 |
呼叫堆疊偽造 | 是 (可能基於 BokuLoader) | 是 (已觀察到) |
睡眠混淆 | 是 (RC4 加密, SystemFunction032) | 是 (已觀察到) |
Windows 纖程 | 是 (用於睡眠混淆) | 否 (這些片段中未明確提及) |
程序注入 | 是 (暫停的 dllhost.exe) | 是 (已觀察到) |
持久性 | 排程任務 (schtasks.exe, ITaskScheduler) | 排程任務 (已觀察到) |
C2 通訊 | HTTPS, 加密二進位協定, Certificate pinning | HTTPS (已觀察到) |
DGA | 是 (日期種子) | 是 (已觀察到) |
參考文獻
- CoffeeLoader: A Brew of Stealthy Techniques | ThreatLabz - Zscaler
- CoffeeLoader Malware Loader Linked to SmokeLoader Operations - Infosecurity Magazine
- HijackLoader Updates | ThreatLabz - Zscaler
- Abusing the GPU for Malware with OpenCL - eversinc33
- Zscaler just found malware that hides in your GPU | Capacity Media
- CoffeeLoader: A Brew of Stealthy Techniques - Malware News
- GPU Vulnerability: 8 Security Risks and How to Address Them - Liquid Web
- PoC Linux Rootkit Uses GPU to Evade Detection - SecurityWeek
- Detection: CMLUA Or CMSTPLUA UAC Bypass | Splunk Security Content
- Trickbot Trojan Leveraging a New Windows 10 UAC Bypass - Morphisec
- Shenanigans of Scheduled Tasks - Logpoint
- ITaskScheduler interface (mstask.h) - Win32 - Learn Microsoft
- CoffeeLoader: A Brew of Stealthy Techniques - Security Boulevard
- MITRE ATT&CK T1055.012 Process Injection: Process Hollowing - Picus Security
- API Hashing - Why Malware Loves (And You Should Care) | by Nikhil gupta
- API Hashing - Max Kersten
- API Obfuscation - Unprotect Project
- What is Process Injection? Techniques & Preventions - SentinelOne
- Ten process injection techniques: A technical survey of common and trending process injection techniques | Elastic Blog
- Understanding process injection techniques (T1055) | A comprehensive guide
- NtAllocateVirtualMemory"> NtAllocateVirtualMemory function (ntifs.h) - Windows drivers - Learn Microsoft
- Masking Malicious Memory Artifacts - Part I: Phantom DLL Hollowing - CyberArk
- BabLock - a new stealthy ransomware | Group-IB Blog
- Infostealer Prynt Malware a Deep Dive into Its Process Injection Technique - cyfirma
- Call stack spoofing explained using APT41 malware - CYBER GEEKS
- Reflective call stack detections and evasions - Security Intelligence
- An Introduction into Stack Spoofing - Nigerald's Blog
- Hardware Call Stack | Core Security Blog
- Doubling Down: Detecting In-Memory Threats with Kernel ETW Call Stacks - Elastic
- Hooks - Evasion techniques - Check Point Software Technologies
- User-mode API hooks and bypasses - itm8.com
- Just Carry A Ladder: - Why Your EDR Let Pikabot Jump Through - VMRay
- A Deep Dive Into Malicious Direct Syscall Detection - Palo Alto Networks Blog
- Defeating EDR Evading Malware with Memory Forensics - Volexity
- Understanding Sleep Obfuscation | Binary Defense
- RC4 - Wikipedia
- RC4-crypto.c - GitHub Gist
- Windows Malware Development Part 5: Payload Encryption - RC4 - 4pOcryphOn
- CVE-2023-36025 Exploited for Defense Evasion in Phemedrone Stealer Campaign
- Control Flow Guard for platform security - Win32 apps | Microsoft Learn
- Bypass Control Flow Guard Comprehensively from Black Hat - Class Central
- Exploiting CVE-2015-0311, Part II: Bypassing Control Flow Guard on Windows 8.1 Update 3
- BYPASS CONTROL FLOW GUARD COMPREHENSIVELY - Black Hat
- How is control flow guard (windows 10/11) bypassed? : r/ExploitDev - Reddit
- Waitable Timer Objects - Win32 apps | Microsoft Learn
- Sleeping Safely in Thread Pools - White Knight Labs
- Using Waitable Timers with an Asynchronous Procedure Call - Win32 apps | Microsoft Learn
- MoonWalk: A deep dive into the updated arsenal of APT41 | Part 2 - Zscaler
- How Microsoft identifies malware and potentially unwanted applications - Microsoft's unified security operations platform
- CoffeeLoader Uses GPU-Based Armoury Packer to Evade EDR and Antivirus Detection
- What is a Command and Control Attack? - Palo Alto Networks
- How Threat Actors use C2 and Data Exfiltration as Part of Double Extortion - Infoblox Blog
- C2 Beaconing: Definition, Examples, and Prevention - ExtraHop
- The Evolution of C2 Communication: Custom TCP Protocols - Malware Patrol
- Detect and Stop C2 Attacks - Fidelis Security
- Certificate Pinning - What it Is, its Benefits, and Drawbacks - Sapphire.net
- Certificate Pinning | CyberArk
- Avoiding downtime: modern alternatives to outdated certificate pinning practices
- Certificate Pinning - Does It Help App Security? - PreEmptive Solutions
- What is SSL Pinning? - A Quick Walk Through | Indusface
- What is Binary encryption? Securing Data with Binary-Encoded Protection - ReasonLabs Cyberpedia
- Malware obfuscation, encoding and encryption - Infosec
- www.geeksforgeeks.org
- What Is RC4? | Definition | NinjaOne
- RC4 Encryption Algorithm Stream Ciphers Defined - Okta
- RC4 Encryption Algorithm - GeeksforGeeks
- What is RC4? Is RC4 secure? - Encryption Consulting
- Endianness - Wikipedia
- Networking and Sockets: Endianness - KungFuDev
- What is Endian and How Does it Impact Network Communication? - Lenovo
- Why Does TCP/IP Use Big-Human Encoding? | Baeldung on Computer Science
- Understanding Big and Little Endian Byte Order - BetterExplained
- Leprechaun - A New Malware Loader - Gurucul
- Technical Analysis of Bumblebee Malware Loader - CloudSEK
- Inside Matanbuchus: A Quirky Loader - CyberArk
- Peeking into PrivateLoader - Zscaler
- Blog Process Injection - r-tec IT Security GmbH
- Staying Hidden on the Endpoint: Evading Detection with Shellcode | Mandiant | Google Cloud Blog
- Part 1: Shellcode Execution with Python | Joff Thyer - YouTube
- Writing and Compiling Shellcode in C - Red Team Notes
- Shellcode Detection Using Real-Time Kernel Monitoring - CounterCraft
- Sliver C2 Leveraged by Many Threat Actors - Cybereason
- What is C2 Framework? (+Installation Guide) | by Vasileiadis A. (Cyberkid) - Medium
- Installation and Setup | Cloud C² - Hak5
- JavaScript to Command-and-Control (C2) Server Malware - cyfirma
- C2 Frameworks - Red Canary Threat Detection Report
- Command Shell Activity Started via RunDLL32 | Elastic Security Solution [8.17]
- Rundll32 | Red Canary Threat Detection Report
- Windows: Suspicious Rundll32 Activity
- Detection: Rundll32 Process Creating Exe Dll Files | Splunk Security Content
- System Binary Proxy Execution Rundll32 Biopsy: Exploiting Windows’ Legitimate Features for Malicious Purposes - Nordic Defender
- www.akamai.com
- What Are Domain Generation Algorithms? - Akamai
- Domain generation algorithm - Wikipedia
- Understanding domain generation algorithms (DGAs) | CXO - Zscaler
- Threat Brief: Understanding Domain Generation Algorithms (DGA) - Unit 42