遭遇勒索軟件應(yīng)該怎么辦 被勒索軟件“綁架”了咋辦

在網(wǎng)絡(luò)技術(shù)不斷發(fā)展的同時(shí),一系列的網(wǎng)絡(luò)惡意軟件也在不斷衍生。勒索軟件是黑客用來劫持用戶資產(chǎn)或資源并以此為條件向用戶勒索錢財(cái)?shù)囊环N惡意軟件。
 

勒索軟件
 

Cylance高級(jí)威脅研究員Derek Soeder在本文中與大家分享了如何對(duì)勒索軟件進(jìn)行逆向工程以恢復(fù)加密用戶文件的密碼。下面我們來看看Soeder都做了哪些操作,來恢復(fù)被勒索軟件“綁架”的用戶數(shù)據(jù)。
 

挑戰(zhàn)勒索軟件

2013年初,有一家機(jī)構(gòu)向我們尋求幫助,請(qǐng)求恢復(fù)他們被勒索軟件ACCDFISA感染的服務(wù)器中的數(shù)據(jù)。這個(gè)惡意軟件已經(jīng)仔細(xì)掃描了每個(gè)驅(qū)動(dòng)器上的每一個(gè)文件,并且對(duì)所有重要文件進(jìn)行了惡意加密。想要從備份恢復(fù)完全是不可能的,因?yàn)榉?wù)器上的備份驅(qū)動(dòng)同樣已經(jīng)安裝了惡意軟件。這真的是一場(chǎng)完?。?br />  

這個(gè)惡意軟件讓每個(gè)文件變成了一個(gè)包含加密RAR的自解包程序,同時(shí)文件名帶有指令:(!!解密電子郵件id…到…@…!!).exe。
 

這個(gè)變體聲稱使用了256字符隨機(jī)生成這一高級(jí)加密標(biāo)準(zhǔn).256對(duì)每個(gè)“受害者”進(jìn)行單獨(dú)加密,同時(shí)攻擊者可以遠(yuǎn)程存儲(chǔ)這些密碼。據(jù)稱這種加密方式可以安全地刪除所有未加密原文件以及密碼文件,來對(duì)恢復(fù)硬盤的努力進(jìn)行阻礙。
 

試圖找到解壓軟件加密中的一個(gè)漏洞似乎并不是最有效的解決思路;相反,我們要把注意力轉(zhuǎn)向破解密碼上。為此,我們需要找到創(chuàng)建密碼的代碼。
 

找到密碼生成器
 

在對(duì)受感染服務(wù)器的驅(qū)動(dòng)副本進(jìn)行反復(fù)查看之后,我們發(fā)現(xiàn)惡意程序和一些奇怪的文件可能有關(guān)系。我們發(fā)現(xiàn)微軟Sysinternals的刪除工具(可以永久刪除文件)、一個(gè)“NoSafeMode”庫以及一個(gè)用于自解包程序的RAR實(shí)用程序。而RAR實(shí)用程序則成為我們進(jìn)行逆向工程的起點(diǎn)。
 

這個(gè)實(shí)用程序接受加密秘鑰作為一個(gè)命令行參數(shù),所以我們猜測(cè)能夠通過回溯用于啟動(dòng)的惡意軟件代碼,從而找到密碼生成器
 

找到密碼生成器
 

首先,我們?cè)谝淮涡韵到y(tǒng)中運(yùn)行此勒索軟件。我們用調(diào)試器來攔截生成過程的調(diào)用,啟動(dòng)RAR實(shí)用程序,偽裝成svchost.exe。這樣我們就能看到勒索軟件執(zhí)行的每個(gè)命令,以及最終用于加密文件的密碼。截獲的密碼為aseT322B2XgM(mC0…有57個(gè)字符長,大小寫、數(shù)字、標(biāo)點(diǎn)符號(hào)混合通過一個(gè)點(diǎn)擊動(dòng)作就隨機(jī)生成)。而以aes開始的密碼可能是巧合,或是有意而為的點(diǎn)綴。如果是故意的,那么我們期望可以找到勒索軟件代碼中的字符串。當(dāng)我們打開勒索軟件反匯編程序時(shí),我們發(fā)現(xiàn)不只是aes,而是aesT322。我們因此知道密碼實(shí)際上是aesT322以及后面大約50位隨意生成字符。

 

勒索軟件反匯編程序
 

我們知道截獲的密碼不一定與加密客戶文件的密碼相同。但是我們已經(jīng)知道一些線索來指導(dǎo)我們下一步逆向工程:我們可以尋找密碼本身或者碎片,尋找可能用于生成密碼的字符表,以及尋找用于構(gòu)建命令行密碼部分的字符串。

我們使用調(diào)試器尋找勒索軟件運(yùn)行時(shí)被分配到全局變量的值,通過逆向工程,我們確認(rèn)了一個(gè)全局變量:一個(gè)是aesT322前綴字符串,另一個(gè)是50位隨機(jī)字符的字符串,以及57位的完整密碼。
 

搞清楚生成器工作原理
 

我們了解了很多關(guān)于勒索軟件的工作原理,但目前我們不認(rèn)為這會(huì)對(duì)受害者有所幫助。實(shí)際上,我們排除了只是一個(gè)固定字符串(即簡單密碼)被用于所有情況的可能,我們?nèi)匀辉谔剿鞯穆飞稀?br />  

通過在程序中跟蹤每個(gè)實(shí)例中的三個(gè)變量,我們發(fā)現(xiàn)一個(gè)循環(huán),就是隨機(jī)選擇的50個(gè)字符來自一個(gè)由26個(gè)小寫字符、26個(gè)大寫字母、10個(gè)數(shù)字以及16個(gè)標(biāo)點(diǎn)構(gòu)成的78個(gè)字符表,其中有重復(fù)。計(jì)算機(jī)很難實(shí)現(xiàn)真正的隨機(jī)。想要打敗加密的一個(gè)方法便是攻擊“偽隨機(jī)數(shù)生成器”(PRNG),而這就是我們真正要做的。
 

最終我們發(fā)現(xiàn)了初始化的PRNG,或說是去了“種子”的,這是一段帶有來自執(zhí)行此代碼線程標(biāo)識(shí)符的32字節(jié)數(shù)字,以及以毫秒為單位系統(tǒng)運(yùn)行的時(shí)長。這些都是可以預(yù)測(cè)的值。由于32字節(jié)的種子,我們現(xiàn)在了解到最多可能有40億種不同密碼,而非真正從78個(gè)字符中隨機(jī)產(chǎn)生出50個(gè)字符而存在的天文數(shù)字般可能性。
 

原因是之前提到的,即使在隨機(jī)行為中計(jì)算機(jī)也通常運(yùn)用了僵化的決定方式。而對(duì)于任意給定的種子值,PRNG可以在任何時(shí)間從初始值以相同順序、相同方式、產(chǎn)生相同的數(shù)字。而種子是32字節(jié)的數(shù)字,那么就存在0到10億的可能性,因此相同初始狀態(tài)存在的可能領(lǐng)域是大大受限的。
 

猜密碼的過程是十分耗時(shí)的,而這正是我們接下來要做的。
 

猜密碼
 

一個(gè)包含40億個(gè)密碼的列表是恐怖的。但我們知道了種子是依賴于一個(gè)線性ID的(它是四的倍數(shù)),通常少于10000和系統(tǒng)正常運(yùn)行周期。在49.7天的進(jìn)程中,正常運(yùn)行時(shí)間將從0數(shù)到40億,然后環(huán)繞一圈再次回到0。我們需要了解服務(wù)器在被攻擊之前運(yùn)行了多久——可能通過一個(gè)文件時(shí)間戳或一個(gè)時(shí)間日志條目——來縮小可能性的范圍。但是我們發(fā)現(xiàn)了一些更好的情況。

 

猜密碼
 

在所有奇怪的文件中,我們發(fā)現(xiàn)一個(gè)在ProgramData目錄下的stppthmainfv.dll,帶有21行每行含有8個(gè)隨機(jī)字母。我們決定逆向操作,用“暴力”破解所有存在可能的種子值,找出哪個(gè)可能讓PRNG產(chǎn)生出這21行的。由于這是一個(gè)32位的字符串,我們知道在一臺(tái)正常電腦上搜索應(yīng)該不會(huì)超過幾個(gè)鐘頭。這樣就會(huì)比使用所有潛在密碼破解RAR實(shí)用程序速度快得多。

一個(gè)單核CPU4秒鐘便可測(cè)試31956209種存在的可能性,同時(shí)找到stppthmainfv.dll 中相同順序的字母生成的31956208個(gè)種子值。我們生成了大約12MB的密碼列表與種子值進(jìn)行測(cè)試(比測(cè)試236GB大小的40億中可能要強(qiáng)太多了)。我們通宵運(yùn)行了一批程序,針對(duì)RAR實(shí)用程序進(jìn)行密碼逐個(gè)測(cè)試。
 

當(dāng)清晨降臨,我們已經(jīng)獲得了那個(gè)我們一直在等待的——正確密碼。實(shí)驗(yàn)成功了!最終,看我們成功從勒索軟件中奪回了用戶的數(shù)據(jù)。
 

網(wǎng)友評(píng)論
圖文推薦
  • 勒索病毒發(fā)生變種肆虐 手把手教你正確防范入侵

    席卷全球的WannaCry勒索病毒仍在瘋狂的攻擊他人的電腦,中國等90多個(gè)國家中招,感染電腦超過10萬臺(tái)。還沒有被病毒所侵?jǐn)_的用戶不要慌張,為使大家免于受到勒索危害??赏ㄟ^以下2種方法防范勒索病毒危害。

  • 360IE盾甲在哪里 360IE盾甲開啟方法

    360IE盾甲是360針對(duì)IE停服推出的最新安全產(chǎn)品,很多想要繼續(xù)使用IE舊版的用戶應(yīng)該都想知道在哪里開啟360IE盾甲,現(xiàn)在,就讓小編為大家詳細(xì)的介紹一下360IE盾甲開啟方法吧!