剖析Mamba-磁盤加密型勒索軟件
一、前言
另一個(gè)新的勒索軟件已經(jīng)加入文件加密的潮流中。只是這一次不是選擇一些類型的文件加密,它直接用一個(gè)開源的工具DiskCryptor加密整個(gè)磁盤。
這個(gè)不是第一次出現(xiàn)磁盤加密類型的勒索軟件。在早年,Petya勒索軟件通過(guò)加密磁盤主文件表(MFT)惡意破環(huán),使用戶無(wú)權(quán)訪問(wèn)文件。不像之前的攻擊,這個(gè)新的勒索軟件完全加密整個(gè)磁盤,包括數(shù)據(jù)。除非支付勒索金否則系統(tǒng)完全不能用。為了匹配它的能力,他被命名為有毒的射的名字,曼巴。
本文調(diào)查了這個(gè)惡意程序的功能和技術(shù)。
二、 DiskCryptor安裝
深入到磁盤權(quán)限和加密將會(huì)非常的復(fù)雜。因此,直接寫代碼加密磁盤將很容易產(chǎn)生一個(gè)噩夢(mèng)。因?yàn)檫@個(gè)原因,一個(gè)實(shí)用的方案是用一個(gè)第三方工具實(shí)現(xiàn)加密磁盤,實(shí)現(xiàn)簡(jiǎn)單,可靠的解密保護(hù)。幸運(yùn)又不幸的是,有一個(gè)叫DiskCryptor的工具,這個(gè)工具提供了勒索軟件需要的功能。它是一種偷懶的方案,但是很聰明。
安裝的組件是該工具的gui版本。這個(gè)工具號(hào)稱多種加密算法實(shí)現(xiàn)多層保護(hù)。
DiskCryptor主界面和支持的加密算法
主程序沒(méi)有參數(shù)(一個(gè)密碼)不能完全執(zhí)行。這個(gè)需要另一個(gè)組件來(lái)生成密碼,但是我們還沒(méi)有發(fā)現(xiàn)。因此在本文中用了一個(gè)假的密碼測(cè)試。
一旦合適的密碼被提供,Mamba通過(guò)安裝DiskCryptor(安裝在C:\DC22\)組件能很好的兼容32位和64位版本的環(huán)境。
圖2 安裝組件
為了持續(xù)性,可執(zhí)行程被安裝成一個(gè)“DefragmentService”的服務(wù),password為參數(shù)。
Mamba用一個(gè)測(cè)試密碼把自己安裝成一個(gè)服務(wù)
三、在映射的網(wǎng)絡(luò)磁盤上加密文件
在全盤加密前,它也會(huì)加密所有映射的網(wǎng)絡(luò)磁盤,進(jìn)一步加大了破環(huán)程度。
顯然,在比較老版本的系統(tǒng)上用“net use”命令枚舉映射的網(wǎng)絡(luò)磁盤。
檢查系統(tǒng)版本
對(duì)于新版的操作系統(tǒng)(Vista及之后的),有UAC特性。這個(gè)惡意程序通過(guò)計(jì)劃任務(wù)運(yùn)行“net use”命令。這樣就能在管理員和普通用戶上下文下能更精確的映射的網(wǎng)絡(luò)磁盤。為了訪問(wèn)密碼保護(hù)的網(wǎng)絡(luò)磁盤,可以使用一個(gè)免費(fèi)工具(Netpass)。這個(gè)工具用來(lái)恢復(fù)存儲(chǔ)在系統(tǒng)中網(wǎng)絡(luò)密碼。磁盤和網(wǎng)絡(luò)密碼列表被存儲(chǔ)在“netuse.txt”和“netpass.txt”。
在新老系統(tǒng)中執(zhí)行“net use”
以管理員和計(jì)劃任務(wù)運(yùn)行“net use”
Netpass GUI模式
用之前創(chuàng)建的管理員賬戶提升權(quán)限執(zhí)行mount.exe組件加密文件。這時(shí),它用一個(gè)包含一系列異或和左移操作的自定義算法。提供給主程序的密鑰是password的一部分。密鑰的MD5哈希值在將它轉(zhuǎn)化為字符串之前用微軟的CryptoAPI來(lái)獲得。為了增加復(fù)雜性,只有字符串的一半被用來(lái)加密。
提權(quán)執(zhí)行Mount.exe
MD5 string
文件加密過(guò)程
在映射的網(wǎng)絡(luò)磁盤上加密文件
四、 全盤加密
正如之前提到的,這個(gè)惡意程序的作者通過(guò)安裝一個(gè)第三方工具來(lái)實(shí)現(xiàn)全盤加密,使得他們的工作變得簡(jiǎn)單。為了更加簡(jiǎn)單,作者把要加密的磁盤號(hào)硬編碼在代碼中,然后可以一個(gè)接一個(gè)加密他們。有個(gè)“-enum”的命令行可以用來(lái)枚舉磁盤。
用dccon.exe –enum枚舉磁盤
用dccon.exe和一個(gè)測(cè)試密碼加密磁盤
硬編碼參數(shù)
自定義的啟動(dòng)引導(dǎo)器用下面的命令行安裝:
安裝DiskCryptor引導(dǎo)啟動(dòng)
下一步,作者完成另一個(gè)技巧。用DiskCryptor的默認(rèn)配置執(zhí)行上述命令完成啟動(dòng)引導(dǎo)器安裝。然后用“enter password”提示用戶輸入密碼。那么問(wèn)題來(lái)了,勒索提示來(lái)自哪里呢?
我們觀察主程序看到,如果用“-config”命令行,沒(méi)啥跡象。輸入密碼的提示消息改變了;DiskCryptor組件dcapi.dll被直接修改。
被修改的dcapi.dll
似乎對(duì)于每個(gè)被感染的機(jī)器ID不是唯一的,對(duì)于所有的感染都只有一個(gè)密碼。支持這個(gè)假設(shè)的證據(jù)是主程序沒(méi)有任何C&C服務(wù)器功能或者從被感染的系統(tǒng)獲取密碼和ID,不過(guò)也可能是之前錯(cuò)過(guò)了一些組件。
強(qiáng)制重啟,只留下了一段勒索提示,除非支付完否則機(jī)器一直被鎖住。
在加密后用DiskCryptor觀察發(fā)現(xiàn)XTS-AES算法被使用了。
加密磁盤的信息
在加密前后轉(zhuǎn)儲(chǔ)的數(shù)據(jù)
在引導(dǎo)啟動(dòng)器被安裝后,加密磁盤,安裝的服務(wù)休眠了5個(gè)小時(shí)——加密過(guò)程需要的最長(zhǎng)時(shí)間。當(dāng)完成后,不管加密過(guò)程完成與否在重啟系統(tǒng)前惡意程序部分移除了痕跡和留下了DiskCryptor。這個(gè)說(shuō)明加密非常大的磁盤將要花費(fèi)超過(guò)5個(gè)小時(shí)的時(shí)間,部分加密將導(dǎo)致數(shù)據(jù)永久損壞。
移除一些組件的過(guò)程
五、總結(jié)
發(fā)現(xiàn)一個(gè)全盤加密的勒索軟件是比較稀少的。因?yàn)閷?shí)用的原因。這個(gè)對(duì)于系統(tǒng)控制有一個(gè)更好的全局控制,因?yàn)樗軐?dǎo)致整個(gè)系統(tǒng)無(wú)法使用。它是一個(gè)可怕的事實(shí)。然而,緩慢的加密過(guò)程掩蓋了這些優(yōu)點(diǎn)。因?yàn)檫@個(gè)原因,除非加密過(guò)程戲劇性的加快了,否則我們相信從基于文件類型的勒索軟件向全盤加密的勒索軟件轉(zhuǎn)變的趨勢(shì)不太可能。
然而,新的勒索軟件的情況表明犯罪一直不停地創(chuàng)新加密方式,同事嘗試用工具的新的方式使他們的活動(dòng)更加簡(jiǎn)單。我們預(yù)計(jì)能在其他家族的勒索軟件上面看到這種趨勢(shì),因?yàn)檫@個(gè)更簡(jiǎn)單方便。