勒索病毒
Kasseika 勒索病毒使用 PsExec 並藉由 Martini 驅動程式的漏洞發動 BYOVD 攻擊
本文詳細說明我們對 Kasseika 勒索病毒的研究,並點出我們發現的跡象,顯示該集團似乎已取得惡名昭彰的 BlackMatter 勒索病毒原始程式碼。
2023 年,有越來越多勒索病毒集團在攻擊中「自帶含有漏洞的驅動程式」(bring-your-own-vulnerable-driver,簡稱 BYOVD),而 Kasseika 勒索病毒就是最新一個跟上這波風潮的勒索病毒集團。繼 Akira、BlackByte 及 AvosLocker 之後,Kasseika 也採用了這項手法來終止系統上的防毒軟體處理程序和服務,以便部署勒索病毒。在我們研究的案例中,Kasseika 勒索病毒使用了 Martini 驅動程式來終止受害電腦上的防毒軟體相關處理程序。
在分析 Kasseika 勒索病毒的攻擊程序時,我們發現到一些很像 BlackMatter 勒索病毒的跡象。這些跡象包括:使用隨機字串作為副檔名的一部分,並使用「隨機字串.README.txt」作為勒索訊息的檔案名稱和格式。
更進一步的研究顯示,此次攻擊用上了 BlackMatter 的大部分原始程式碼。據我們所知,BlackMatter 的原始程式碼並未在網路上廣泛流傳,因此會出現在 Kasseika 勒索病毒攻擊當中,意味著應該是集團內有熟悉人士取得或購買了這份原始程式碼。
BlackMatter 是從 DarkSide 重新衍生而來,而 DarkSide 已知是 ALPHV 的基礎 (大家更熟悉的名稱是 BlackCat)。自從它在 2021 年遭到瓦解之後,其他勒索病毒集團便開始使用類似 BlackMatter 的技巧和工具,但有一群較為圈內的人士獨家取得了它的舊程式碼,然後用在新的變種上。
經由電子郵件發送針對性網路釣魚連結來突破防線
我們研究的 Kasseika 勒索病毒案例使用針對性網路釣魚技巧來突破防線,它先從目標企業的一名員工竊取了登入憑證,然後再使用遠端管理工具 (RAT) 來取得管理權限,進而在目標網路內部橫向移動。
使用 PsExec 來執行
Kasseika 使用了合法的 Windows 遠端管理工具 PsExec 來執行其惡意檔案。PsExec 原本的設計用途是網路管理,但卻經常被駭客用來從遠端部署惡意 .bat 檔案,如此處的情況。
Kasseika 惡意程式會先使用一個批次檔腳本來載入它的惡意檔案,這個腳本會先檢查系統上是否有名為「Martini.exe」的處理程序正在執行。若有,就先將它終止來確保接下來系統上只會有一份這個處理程序正在執行。
Kasseika 用來躲避偵測的 KILLAV 機制
進一步分析可發現 Martini.exe 會先檢查 Martini.sys 這個驅動程式是否已成功下載到受害系統上。含有簽章的 Martini.sys 檔案 (原本的名稱為 viragt64.sys) 是 TG Soft 公司開發的 VirIT Agent System 中的一個驅動程式。Kasseika 利用這個驅動程式的漏洞來停用各種資安工具。若系統上沒有 Martini.sys,惡意程式就會自行終止,不會執行原本意圖的行為。
在確認驅動程式存在之後,Kasseika 接著在系統上建立一個服務並將它初始化。
接著,Martini.exe 會使用 CreateFileW 函式來將 Martini.sys 驅動程式載入系統。
在載入 Martini.sys 之後,Martini.exe 會繼續不斷掃描系統上所有執行中的處理程序。一旦偵測到其內建名單上的處理程序,就會透過 DeviceIoControl 函式將這項資訊傳遞給驅動程式。
驅動程式會收到「0x82730030」這個控制碼,告訴它要將名單上所列處理程序終止,這份名單至少包含了 991 個項目,包括各種防毒產品、資安工具、分析工具,以及系統工具等等。如需被終止的處理程序完整名單,請參閱此處。
除此之外,Kasseika 也會使用 FindWindowA API 函式來比較字串。
Kasseika 勒索病毒會搜尋一些處理程序監控、系統監控以及分析工具相關的應用程式。
OLLYDBG |
18467-41 |
GBDYLLO | FilemonClass |
pediy06 | File Monitor – Sysinternals: www.sysinternals.com |
RegmonClass | PROCMON_WINDOW_CLASS |
Registry Monitor – Sysinternals: www.sysinternals.com | Process Monitor – Sysinternals: www.sysinternals.com |
表 1:Kasseika 會搜尋的處理程序監控、系統監控以及分析工具名單。
Kasseika 勒索病毒會搜尋系統上是否有資安與分析相關工具的處理程序正在執行,這是它提升躲避偵測能力的一種技巧。如果在系統上找到這類處理程序,他就會自行終止。
ntice.sys | CisUtMonitor |
iceext.sys | FileMonitor.sys |
Syser.sys | REGMON |
HanOlly.sys | Regsys |
extrem.sys | Sysregm |
FRDTSC.SYS | PROCMON |
fengyue.sys | Revoflt |
Kernel Detective | Filem |
表 2:資安與分析相關的處理程序名單。
圖 12 顯示該腳本會將其所在目錄底下的任何目錄清除,以確保處於一個乾淨的狀態。Kasseika 會設定一些變數來儲存路徑和執行檔名稱。這些變數可以讓腳本更有彈性,這樣未來使用時可以輕易修改檔案路徑和名稱。
接下來,Kasseika 會將檔案從某個網路共用資料夾複製到本地端的一個目錄。它使用了 /E 這個參數來確保能完整複製所有子目錄 (包括空的目錄)。接下來,執行 Martini.exe 來終止防毒軟體相關的處理程序。隨後,繼續啟動 smartscreen_protected.exe,這就是我們偵測到的 Kasseika 勒索病毒二進位檔案。最後,執行 clear.bat 來清除電腦上所有的攻擊痕跡。
Kasseika 惡意檔案分析
Kasseika 勒索病毒是一個 32 位元 Windows PE 檔案,並使用 Themida 來加以保護。經過 Themida 保護的二進位檔案通常會使用強大的加密編碼與反除錯技巧,讓逆向工程變得困難。
在加密檔案之前,Kasseika 會先終止所有正在執行且會存取 Windows Restart Manager 的處理程序和服務。Kasseika 會先啟動一個新的執行階段,然後修改下列系統登錄機碼中的 Owner 數值。接著讀取系統登錄機碼中所列的處理程序和服務執行階段雜湊碼 (SessionHash)。在將處理程序終止之後,擷取被終止的處理程序檔案路徑,並在後續的加密過程中核對這些路徑:
- HKEY_CURRENT_USER\Software\Microsoft\RestartManager\Session{numbers}
- Owner = {hex values}
- HKEY_CURRENT_USER\Software\Microsoft\RestartManager\Session{numbers}
- SessionHash = {hex values}
- HKEY_CURRENT_USER\Software\Microsoft\RestartManager\Session{numbers}
- Sequence = 0x01
- HKEY_CURRENT_USER\Software\Microsoft\RestartManager\Session{numbers}
- RegFiles{numbers} = {encrypted path and file}
- HKEY_CURRENT_USER\Software\Microsoft\RestartManager\Session{numbers}
- RegFilesHash = {hex values}
Kasseika 勒索病毒會刪除受害系統的陰影複製備份,它使用 Windows Management Instrumentation 指令列 (WMIC) 查詢敘述來找出這些備份:
- SELECT * Win32_ShadowCopies
接著,Kasseika 勒索病毒產生它的加密副檔名,第一步,先從 CryptoPP::StringSinkTemplate 讀取一個寫死的字串。接著,使用 Base64 來將字串的前面九個字元編碼。最後,由於 Base64 會產生「+」、「/」和「=」這幾個不能用於副檔名的字元,所以勒索病毒會再將它們分別改成「a」、「l」和「e」。
Kasseika 會使用開放原始碼 C++ 函式庫 CryptoPP 讀取它的加密演算法金鑰 (ChaCha20) 以及 RSA 加密演算法。接著,Kasseika 會產生一個修改版的 ChaCha20 矩陣,裡面包含隨機產生的位元組。這個矩陣會複製到一個緩衝區,然後再用 RSA 公開金鑰將它加密,加密後的緩衝區會被寫回修改版的 ChaCha20 矩陣。Kasseika 勒索病毒接著使用修改版的 ChaCha20 矩陣來加密目標檔案。
檔案加密完成之後,Kasseika 勒索病毒會將被加密的檔案重新命名,在原本的名稱後方加入前述的加密字串:
{original filename}.{original extension}. CBhwKBgQD
此外,Kasseika 會將這個同樣的副檔名加到勒索訊息檔案的名稱前面,變成 CBhwKBgQD.README.txt,每一個被 Kasseika 加密過的目錄都會有一份這個勒索訊息檔案。
整個加密過程結束後,Kasseika 勒索病毒會換掉受害系統的桌布,如圖 20 所示。
清除攻擊痕跡 如圖 21 所示,Kasseika 勒索病毒還會將其攻擊痕跡清除,它會執行一些命令來清除系統的事件記錄檔。
「wevutil.exe」這個命令可以有效率地清除 Windows 上的應用程式、安全與系統事件記錄。這項技巧讓它可以偷偷地暗中執行而不讓資安工具發現並回應其惡意活動。
資安建議
企業可採取以下最佳實務原則來降低被 Kasseika 及其他勒索病毒襲擊的機會:
- 唯有當員工在職務上有需要時才授予系統管理員的存取權限。
- 確定您的資安產品隨時保持更新並且定期執行掃描。
- 定期備份重要檔案以防範任何損失。
- 養成良好的電子郵件與網站安全使用習慣,唯有來自可信賴來源的附件檔案、網址及程式才能下載、點選或執行。
- 鼓勵使用者在遇到可疑電子郵件和檔案時立即通報資安團隊,並使用工具來攔截惡意郵件。
- 定期舉辦使用者教育訓練,教導使用者認識社交工程技巧的危險與徵兆。
一套多層式的方法有助於企業防範各種駭客可能入侵系統的途徑,包括端點、電子郵件、網站以及網路。資安解決方案可偵測惡意元件與可疑行為來保護企業。
Trend Vision One™ 提供了多層式防護與行為偵測來攔截可疑行為和工具,不讓勒索病毒有機會造成破壞。
Trend Cloud One™ – Workload Security 可保護系統,防範已知和未知的漏洞攻擊。這項防護採用的是像虛擬修補和機器學習這樣的技巧。
Trend Micro™ Deep Discovery™ Email Inspector 採用客製化沙盒模擬分析與進階分析技巧來有效攔截勒索病毒用來突破企業防線的惡意郵件 (包括網路釣魚郵件)。
Trend Micro Apex One™ 可進一步提供自動化威脅偵測及回應,防範無檔案式威脅與勒索病毒等進階攻擊,保障端點安全。
入侵指標資料
如需 Kasseika 勒索病毒的入侵指標,請至此處。