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.利用PowerShell腳本或PowerShell進程的內存(後者主要被應用在V5.0.2中);
6.像Phorpiex這樣的殭屍網路(一種古老的殭屍網路,不僅傳播GandCrab這種惡意軟體,還傳播許多其他惡意軟體);
與其他勒索軟體一樣,GandCrab的目標是加密受感染系統上的所有或多個文件,然後對受害者進行勒索。開發人員需要的加密貨幣,主要是Dash(或一些舊版本中的比特幣),因為跟蹤和快速接收贖金很複雜。
惡意軟體通常是打包的,但並不總是如此。研究人員已經看到.exe格式(主要形式)以及DLL的變體。GandCrab實際上是勒索軟體即服務,使用者可以選擇他們想要的版本。
5.0版的概述
5.0版已出現有兩個版本,由於編譯時間存在很大的錯誤,第一個僅適用於Windows 7及以上版本。5.0版帶有兩個試圖提升許可權的漏洞。它會檢查操作系統的版本和進程的TokenIntegrityLevel類(使用TokenIntegrityLevel類器可查詢該進程的完整性級別)。如果SID子許可權是SECURITY_MANDATORY_LOW_RID (0x1000),那麼它還傳遞了之前對互斥值的一次檢查,它將嘗試執行攻擊。
另一個版本是8月在Twitter和GitHub上由黑客「SandboxEscaper」發布的漏洞,原文可以在此鏈接中找到(https://github.com/SandboxEscaper/randomrepo)。這個黑客的Twitter鏈接是https://twitter.com/sandboxescaper。
當操作系統處理本地過程調用發生錯誤時,此漏洞會嘗試使用Windows中的任務系統。
GandCrab的開發者則聲稱沒有這個漏洞利用的CVE,它其實屬於CVE-2018-8440。此漏洞可能會影響Windows 7到Windows 10 Server的版本。有關此漏洞的更多信息,請點此鏈接訪問(https://www.mcafee.com/enterprise/es-es/threat-center/threat-landscape-dashboard/vulnerabilities-details.cve-2018-8440.html)。
在第一個版本的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_datadata」中的新註冊表項中以及「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的名稱為:_DECRYPT. 和設備的用戶名。
在運行時創建新壁紙
使用「SYSTEM」檢查用戶名,如果用戶是「SYSTEM」,則GandCrab將名稱「USER」放入壁紙中。
檢查壁紙的用戶名稱
壁紙在%TEMP%文件夾中創建,名稱為pidor.bmp。
在臨時文件夾中創建壁紙
下面是壁紙名稱中使用的字元串樣本,用於檢查用戶名和格式字元串,無論是另一個用戶,還是SYSTEM用戶,均使用大寫USER的最終字元串。
壁紙的名稱和特殊字元串
最後,壁紙是為SYSTEM以外的任何用戶設置的。
壁紙的修改
惡意軟體會檢測系統的語言,並解密字元串,從而以系統語言寫入正確的贖金通知。
總結
GandCrab的攻擊技術指標包括:
·文件刪除
·系統信息的檢測
·通過API執行
·通過WMIC執行
·應用程序的檢測:用於檢測殺毒和安全產品以及正常程序
·查詢註冊表:獲取有關惡意軟體需要創建或讀取的密鑰信息
·修改註冊表
·發現文件和目錄:搜索要加密的文件
·發現網路共享來加密它們
·加密文件
·發現進程:枚舉設備上的所有進程以殺死一些特殊的進程
·創建文件
·許可權修改
·改變壁紙
※開掛的惡意軟體——Part 1:簡單的CMD反向shell
※Domestic Kitten:針對伊朗的監控活動
TAG:嘶吼RoarTalk |