GandCrab勒索軟體的最新版本中開始引入加密和混淆功能
眾所周知,勒索軟體如今的迭代速度非常快,不過像Crypter如此之快的迭代速度也不多見。Crypter是在今年1月份首次被發現的,如今它已經更新換代到第5版(10月發現的版本已經到了5.0.2版本)了,且加入了crypter(加密和混淆軟體)技術。
在這篇文章中,McAfee實驗室的研究人員將對Crypter最新版本進行仔細分析和研究,包括開發者如何改進程式碼(雖然在某些情況下這些程式碼還是會出現錯誤)。 不過目前,McAfee閘道器和安全終端產品能夠保護使用者免受已知變種的攻擊。
GandCrab開發者的研發和糾錯能力是很強的,他們已迅速採取行動改進那些容易出錯的程式碼,並添加了使用者評論,以激發安全機構、執法機構等組織對它的持續研究。儘管開發人員採用了很多取巧的改進方法,但編碼技術仍然不是很專業,而且惡意軟體中通常會存在漏洞,甚至在5.0.2版本中也是如此,不過由於開發者快速的糾錯能力,安全分析者要捕獲它們顯然不是很容易。
GandCrab背後的開發團隊在黑客社群中的地位非常重要,不但引領了惡意軟體的研發技術,而且還是社群營銷領域的高手,但顯然程式設計技術並不是他們的優勢。
GandCrab版本5的出現及傳播模式
9月27日,GandCrab的研發者正式在黑客社群釋出了GandCrab版本5,和之前的版本一樣, GandCrab勒索軟體的推出又受到了安全研究人員和黑客的廣泛關注。GandCrab的研發者為了擴大GandCrab的影響了和傳播範圍,還搞了個類似“會員制俱樂部”的推銷代銷方案,讓傳播它的人也從中輕鬆獲利。
這種營銷模式不僅吸引了許多地下黑客組織,而且還促進了GandCrab與其他專門從事惡意軟體供應和分銷的犯罪團伙形成新的聯盟。其中一個合作團伙在GandCrab 4版的傳播中就起了很大作用,在這個版本中,GandCrab開始通過新的Fallout漏洞利用工具包進行傳播。在GandCrab第5版的傳播中再次出現了這一組織,因為GandCrab營銷人員公開支援了Fallout漏洞利用工具包(EK)。
GandCrab第5版的釋出
在第5版中,又新出現了另一個與GandCrab合作的組織。惡意軟體加密服務NTCrypt宣佈它正在與GandCrab工作人員合作,crypter服務是專門提供惡意軟體混淆以逃避反惡意軟體安全產品的。
NTCrypt-GandCrab的合作公告,裡面提到為GandCrab使用者提供特別優惠
GandCrab和NTCrypt之間的合作關係是以一種嶄新的方式出現的。9月底,GandCrab工作人員在一個很受歡迎的地下論壇上發起了一次“crypt服務 ”挑戰賽,以尋找他們可以利用的新的crypt服務。最終,NTCrypt最終贏得了GandCrab團隊的信賴。
“crypt服務”挑戰賽公告
這種新穎的營銷和尋找合作伙伴的方法再次鞏固了GandCrab在黑客社群中的地位。對於像GandCrab這樣的犯罪團伙來說,建立這些聯盟非常有意義。這樣做不僅增加了營銷手段,而且還能很容易的區分那些技術實力不強和信譽不好的供應商和分銷商,從而最大限度的降低營銷和合作風險。
而對於安全界來說,看到GandCrab的營銷策略讓該惡意軟體傳播的如此廣泛,很是令人擔憂。另外,這種傳播手段也讓其他犯罪團伙紛紛效仿。GandCrab日漸形成的產業鏈允許GandCrab與網路犯罪供應鏈中的其他重要服務結成聯盟。
GandCrab概述
GandCrab第5版使用了多種機制來感染系統,下圖概括了GandCrab行為。
攻擊手段
GandCrab採用了多種攻擊手段:
1.安全性較弱或在地下論壇中購買的遠端桌面連線;
2.帶有連結或附件的網路釣魚電子郵件;
3.下載並啟動惡意軟體的木馬程式裡包含的合法程式;
4.利用RigEK和其他諸如FalloutEK之類的漏洞利用工具包;
5.利用Shell/">PowerShell指令碼或PowerShell程序的記憶體(後者主要被應用在V5.0.2中);
6.像Phorpiex這樣的殭屍網路(一種古老的殭屍網路,不僅傳播GandCrab這種惡意軟體,還傳播許多其他惡意軟體);
與其他勒索軟體一樣,GandCrab的目標是加密受感染系統上的所有或多個檔案,然後對受害者進行勒索。開發人員需要的加密貨幣,主要是Dash(或一些舊版本中的比特幣),因為跟蹤和快速接收贖金很複雜。
惡意軟體通常是打包的,但並不總是如此。研究人員已經看到.exe格式(主要形式)以及DLL的變體。GandCrab實際上是勒索軟體即服務,使用者可以選擇他們想要的版本。
5.0版的概述
5.0版已出現有兩個版本,由於編譯時間存在很大的錯誤,第一個僅適用於Windows+7/">Windows 7及以上版本。5.0版帶有兩個試圖提升許可權的漏洞。它會檢查作業系統的版本和程序的TokenIntegrityLevel類(使用TokenIntegrityLevel類器可查詢該程序的完整性級別)。如果SID子許可權是SECURITY_MANDATORY_LOW_RID (0x1000),那麼它還傳遞了之前對互斥值的一次檢查,它將嘗試執行攻擊。
另一個版本是8月在Twitter和GitHub上由黑客“SandboxEscaper”釋出的漏洞,原文可以在此 ofollow,noindex">連結 中找到。這個黑客的Twitter連結是 https://twitter.com/sandboxescaper 。
當作業系統處理本地過程呼叫發生錯誤時,此漏洞會嘗試使用Windows中的任務系統。
GandCrab的開發者則聲稱沒有這個漏洞利用的CVE,它其實屬於CVE-2018-8440。此漏洞可能會影響Windows 7到Windows 10 Server的版本。有關此漏洞的更多資訊,請點 此連結 訪問。
在第一個版本的5.0版中,惡意軟體開發者在對函式的正常呼叫程式碼編寫中,出現了漏洞。因此,在編譯時,二進位制檔案中的IAT被一些呼叫所需的DLL所填充。這個DLL並不存在於Windows Vista和XP中,因此惡意軟體無法在這些系統中執行,顯示錯誤。
匯入無法在Windows XP或Vista上執行的xpsprint.dll
使用漏洞直接呼叫
此版本會在加密使用者檔案後釋出一個HTML檔案,但是這個檔案是錯誤的,因為它並不總是具有解密使用者檔案所需的資訊。
第二個版本使用動態呼叫並混淆了利用漏洞的字串,如上圖所示(第一版中它們是明文顯示的)。
使用動態呼叫和模糊字串的漏洞
第二個漏洞是CVE-2018-8120,在Windows 7、Windows Server 2008 R2和Windows Server 2008中允許從核心提升許可權。由於系統程序令牌中存在錯誤物件,因此更改惡意軟體中的此令牌會導致惡意軟體使用系統許可權。
執行CVE-2018-8120漏洞
惡意軟體會檢查作業系統的版本和使用者型別,以及在使用漏洞利用之前是否可以獲取其自身程序的TOKEN_ELEVATION結構體資訊。在某些情況下,它無法進行惡意傳播。例如,在Windows XP中,版本5的第二個版本雖然會執行但不加密檔案。
此時研究人員已經知道GandCrab5.0.2版中的問題在哪裡,如果對登錄檔進行一些更改可能會使惡意軟體正確執行,但很明顯安全人員並不想幫助惡意軟體開發者修復他們的產品。雖然GandCrab的開發者能迅速彌補其中的某些錯誤,但他們無法自己找到一些基本的程式設計錯誤。
第二個版本隨機用五個字母組成了副檔名,而不是使用以前版本中常見的.CRAB或.KRAB副檔名。惡意軟體將此資訊作為二進位制資料儲存在子項“ext_data\data”中的新登錄檔項中以及“ext”的值項中。
用於儲存隨機副檔名的新登錄檔項
惡意軟體會嘗試在HKEY_LOCAL_MACHINE的root金鑰中建立這個新的值項。如果不能,例如,因為使用者沒有管理員許可權,則它會將值項放在root金鑰HKEY_CURRENT_USER中。檔案加密後,在某些攻擊中此值項就會被刪除。
版本5.0.1
此版本修復了惡意軟體中的一些內部漏洞,但沒有進行其他明顯改進。
版本5.0.2(GandCrab 5版的正式版本)
此版本將隨機副檔名長度從5個字元更改為10個字元,並修復了一些內部漏洞。但是,其他漏洞仍然存在,這意味著即使攻擊成功,也不能總是保證對目標裝置裡的檔案進行加密。
最新的版本
此版本仍是基於10月4日發現的版本5.0.2,儘管其中某些元素出現在第5版的早期版本中。但從此版本開始,惡意軟體開始使用以下兩個漏洞來嘗試提升系統中的許可權。
第一個漏洞使用對函式IsWoW64Process的動態呼叫來檢測作業系統是以32位還是64位執行。
使用混淆的字串動態呼叫IsWoW64Process
根據檢測結果,惡意軟體將有兩個嵌入式DLL,使用簡單的XOR 0x18操作加密檔案。
解密DLL以載入漏洞並修復標頭
惡意軟體開發者使用了一個非常聰明的技巧來進行了混淆處理,以避免被檢測到。技巧就是DLL的前兩個位元組起初是無用的,但在惡意軟體執行後就會自動修復,正如我們在前面的圖示中看到的那樣。
在解密並載入漏洞之後,這個DLL會在系統中建立一個互斥鎖,並在某些管道中與主要惡意軟體進行通訊。惡意軟體會建立DLL稍後讀取的管道,並將字串準作為DLL的互斥鎖字串。
為DLL準備的字串
DLL會為這些字串提供虛擬字串;
建立新的互斥鎖並重新啟動該程序
惡意軟體啟動時會檢查此互斥鎖。該函式是返回1或0,具體取決於它是否可以開啟互斥鎖。稍後,這個結果將被檢查,如果互斥鎖可以被開啟,則惡意軟體將避免版本檢查,並且不會使用這兩個新的漏洞來提升許可權。
開啟新的互斥鎖以檢查是否需要執行漏洞
與GandCrab版本4及更高版本一樣,該惡意軟體稍後會檢查所執行的系統版本。如果是Vista或更高版本,它會嘗試獲取“TokenIntegrityLevel”類並重新啟動二進位制檔案,通過呼叫“runas”應用程式 “ShellExecuteExW”來提升其許可權。如果系統是Windows XP,程式碼將避免這種情況並繼續其正常流程。
這個互斥鎖原本就不在GandCrab的建立計劃中,它是為使用漏洞而載入的DLL建立的。為了更好地理解此解釋,下面這個IDA程式碼段可能會有所幫助。
互斥鎖的檢查和利用
這個版本對桌面桌布進行了修改,該桌布是在執行時建立的,並填充了為加密檔案而生成的擴充套件,贖金備註文字或HTML的名稱為:<extension_in_uppercase>_DECRYPT. <txt|html>和裝置的使用者名稱。
在執行時建立新桌布
使用“SYSTEM”檢查使用者名稱,如果使用者是“SYSTEM”,則GandCrab將名稱“USER”放入桌布中。
檢查桌布的使用者名稱稱
桌布在%TEMP%資料夾中建立,名稱為pidor.bmp。
在臨時資料夾中建立桌布
下面是桌布名稱中使用的字串樣本,用於檢查使用者名稱和格式字串,無論是另一個使用者,還是SYSTEM使用者,均使用大寫USER的最終字串。
桌布的名稱和特殊字串
最後,桌布是為SYSTEM以外的任何使用者設定的。
桌布的修改
惡意軟體會檢測系統的語言,並解密字串,從而以系統語言寫入正確的贖金通知。
總結
GandCrab的攻擊技術指標包括:
·檔案刪除
· 系統資訊的檢測
· 通過API執行
· 通過WMIC執行
· 應用程式的檢測:用於檢測防毒和安全產品以及正常程式
· 查詢登錄檔:獲取有關惡意軟體需要建立或讀取的金鑰資訊
· 修改登錄檔
· 發現檔案和目錄:搜尋要加密的檔案
· 發現網路共享來加密它們
· 加密檔案
· 發現程序:列舉裝置上的所有程序以殺死一些特殊的程序