Kann勒索再度活躍,360成功破解
Kann勒索軟件再度活躍
近期,360反病毒團(tuán)隊在監(jiān)測過程中發(fā)現(xiàn)了一款勒索軟件開始活躍,其變種名為“.kann”與“xmrdata”。該勒索軟件采用了較為復(fù)雜的混合加密策略,利用RC4與AES算法對受害者文件進(jìn)行加密,并通過RSA算法對上述密鑰再次進(jìn)行加密,以此進(jìn)一步提升了數(shù)據(jù)解密的難度。最后,勒索軟件會將加密后的文件統(tǒng)一添加“.kann”擴(kuò)展名。
而值得注意的是,雖然該勒索組織自認(rèn)為在密鑰管理上非常穩(wěn)妥,但實際上存在一定設(shè)計缺陷。故此,研究人員通過對加密流程的逆向分析與算法優(yōu)化,發(fā)現(xiàn)可以嘗試?yán)卯?dāng)前GPU或高性能CPU的算力,對加密文件進(jìn)行密鑰暴力破解,從而在較短時間內(nèi)實現(xiàn)文件解密。這一發(fā)現(xiàn)為受害者帶來了一線希望,也為防御和應(yīng)對類似勒索攻擊提供了有價值的參考經(jīng)驗。如果有該勒索軟件的中招用戶,也可以聯(lián)系360反勒索服務(wù)進(jìn)行解密。
樣本分析
樣本概述
下圖展示了該勒索家族加密數(shù)據(jù)的基本流程,包括使用混合加密方式通過RC4和AES算法加密文件,再使用RSA對密鑰進(jìn)行加密,以及最終對被加密文件添加“.kann”擴(kuò)展名等主要操作:
圖1. 加密流程示意圖
密鑰與加密
勒索軟件運行后,會分兩次生成兩份共42位的隨機(jī)密鑰。
圖2. 生成AES密鑰
圖3. 生成RC4密鑰
下圖則給出了被Kann勒索軟件加密后的文件數(shù)據(jù)內(nèi)容結(jié)構(gòu):
圖4. 被加密的文件數(shù)據(jù)結(jié)構(gòu)示意圖
在完成了密鑰生成及傳入工作之后,勒索軟件便展開了核心的文件數(shù)據(jù)加密工作。其首先會使用RC4算法對文件內(nèi)容進(jìn)行加密:
圖5. RC4加密文件
完成后,再用AES加密之前被RC4加密后的前2000字節(jié)(數(shù)據(jù)尾部利用0x16字節(jié)的0x0數(shù)據(jù)進(jìn)行分隔,所以傳入的待加密緩沖區(qū)長度為0x7E0)。
圖6. 使用AES算法二次加密文件頭部數(shù)據(jù)?
完成文件數(shù)據(jù)加密后,勒索軟件再使用RSA 對生成的密鑰以及用戶機(jī)器名拼接進(jìn)行加密,本輪加密還具有以下三個特點:
a)???? 算法初始化
調(diào)用'BCryptOpenAlgorithmProvider'打開加密算法提供程序。
b)???? 密鑰導(dǎo)入
使用'BCryptImportKeyPair'導(dǎo)入密鑰對。
c)????? 加密操作
調(diào)用'BCryptEncrypt'兩次:第一次獲取輸出緩沖區(qū)大小,第二次執(zhí)行實際加密。
圖7. BCryptEncrypt加密代碼?
而根據(jù)待加密文件的大小,勒索軟件會做出如下不同的處理方式:
l? 小文件(<2MB)跳過不加密
l? 中等文件(2MB-100MB)作為整體一次性加密
l? 大文件(>100MB)分塊處理,每次加密100MB
勒索軟件內(nèi)置的RSA 4096公鑰數(shù)據(jù)如下:
圖8. 勒索軟件內(nèi)置的RSA 4096公鑰?
最終,其會嘗試結(jié)束一些特定的敏感進(jìn)程并判斷父進(jìn)程是否為特定進(jìn)程,如果不成功,則勒索軟件會主動退出:
圖9. 勒索軟件嘗試清理并檢測運行環(huán)境
其完整的檢測列表如下:
表1. 勒索軟件環(huán)境檢測字符串列表
同時,勒索軟件還會排除特定目錄和特定擴(kuò)展名,不對其進(jìn)行加密。其中,Kann勒索軟件會排除另外兩個勒索加密的擴(kuò)展名,分別為.Lock(Zyka勒索家族)和.DEVOS(Phobos勒索家族變種)。通過研究,我們發(fā)現(xiàn)這樣做的原因竟然是這兩個勒索和.kann使用了相同的入侵方式,有時候會搶先一步加密文件。
最后,Kann會檢查被加密路徑是否包含以下字符串(不區(qū)分大小寫)并進(jìn)行排除:
l? C:\\Windows
l? NVIDIA
l? Intel
l? VMware
l? Inetpub
l? Windows Mail
l? .kann
l? .Lock
l? .DEVOS
l? Visual Studio
l? 常見擴(kuò)展名(.exe, .dll, .sys, .msi)?
收尾工作
在完成了核心的加密工作后,勒索軟件會采用多種方式刪除磁盤卷影副本,并禁用系統(tǒng)的啟動恢復(fù)功能:
圖10. 刪除卷影以及禁用恢復(fù)
之后,會以/w+盤符為參數(shù)來調(diào)用系統(tǒng)自帶的cipher程序。該命令的作用是擦除磁盤驅(qū)動器盤符上所有已刪除文件的數(shù)據(jù)空間。
圖11. 調(diào)用cipher工具徹底清理被刪除文件
因為在Windows系統(tǒng)中刪除一個文件時,文件的內(nèi)容實際上并沒有立即從磁盤上抹去,只是標(biāo)記了該空間可以被重新使用。而調(diào)用上述這個cipher命令的/w參數(shù)(wipe),可以通過用隨機(jī)數(shù)據(jù)覆蓋這些“已刪除”的文件空間,以此來對抗受害者后續(xù)可能進(jìn)行的文件恢復(fù)工作。
圖12. 被調(diào)起的cipher工具?
最終,Kann勒索會釋放勒索信來通知受害者交付贖金:
圖13. 勒索軟件釋放多語言的勒索信
被釋放的勒索信中,留下了攻擊者的郵箱及受害用戶的ID信息。以此來讓受害者根據(jù)這些信息與攻擊者進(jìn)行聯(lián)系并談判贖金金額。
圖14. Kann勒索信內(nèi)容?
而此處還發(fā)現(xiàn)一個頗為有趣的情況——在該勒索軟件留下的勒索信息中,除了通常的英語和當(dāng)前受害系統(tǒng)對應(yīng)的中文外,還發(fā)現(xiàn)了一份俄語的勒索信息。
圖15. Kann勒索軟件留下的俄語勒索信息?
數(shù)據(jù)解密
經(jīng)安全研究人員分析發(fā)現(xiàn),該勒索軟件在加密過程中存在一些技術(shù)漏洞。這也就意味著我們借助受害用戶手中的“民用設(shè)備”,嘗試對被加密數(shù)據(jù)進(jìn)行暴力破解成為可能。
我們借助手中的NVIDIA GeForce GTX 1660 Ti顯卡進(jìn)行測試。發(fā)現(xiàn)雖然此款顯卡在當(dāng)下并不算高端,但最終的測試結(jié)果依然令人頗為滿意——僅用了不足十分鐘便成功完成了解密。而對于沒有獨立顯卡的受攻擊設(shè)備,也可以調(diào)用其CPU嘗試破解。雖然CPU進(jìn)行此類運算會明顯慢于GPU,但I(xiàn)ntel i9系列CPU也在我們的測試中用了2個多小時便成功完成了解密,這個時間依然是可以接受的。
圖16. i9處理器用時2個多小時成功解密?
目前360解密大師也已經(jīng)支持了解密.xmrdata和.kann加密的文件,并且我們也已使用解密大師成功解密了向我們求助的兩位反饋用戶的被加密文件。
圖17. 解密大師成功幫助受害用戶解密數(shù)據(jù)
安全建議
盡管本次針對.kann勒索軟件的加密缺陷為數(shù)據(jù)恢復(fù)提供了可能,但這并不意味著可以對勒索軟件的威脅掉以輕心。面對逐漸進(jìn)化的勒索攻擊,企業(yè)和個人用戶應(yīng)持續(xù)加強(qiáng)自身安全防護(hù)。
針對勒索攻擊,我們給出如下建議:
1.????? 定期備份數(shù)據(jù)
建議將重要文件定期備份,并確保備份數(shù)據(jù)存放在物理隔離的設(shè)備或云端,避免因主機(jī)感染而導(dǎo)致備份文件也被加密或破壞。
2.????? 及時更新系統(tǒng)與軟件
保持操作系統(tǒng)和常用軟件的最新補(bǔ)丁狀態(tài),及時修補(bǔ)已知漏洞,減少攻擊者利用安全漏洞入侵的風(fēng)險。
3.????? 提高安全意識
警惕可疑郵件、未知來源的下載鏈接和附件,避免點擊來歷不明的內(nèi)容。同時,建議關(guān)閉不必要的遠(yuǎn)程桌面服務(wù),或采用強(qiáng)密碼與多因素認(rèn)證等安全措施。
4.????? 建立應(yīng)急響應(yīng)機(jī)制
發(fā)生異常情況時,及時斷網(wǎng)隔離受感染設(shè)備,保留相關(guān)日志和樣本,第一時間聯(lián)系專業(yè)安全團(tuán)隊處置,切勿盲目支付贖金或隨意操作感染文件。
5.????? 安裝可靠的安全軟件
選擇并安裝具備勒索防護(hù)功能的安全軟件(如360),定期進(jìn)行全盤查殺和實時監(jiān)控,及時發(fā)現(xiàn)并阻斷異常行為,提升整體防御能力。