一、前言
對于一個“正經”的黑產從業者來說,利益最大化是他所追求的目標,而利益最大化的實現無非需要兩個方面來支撐,一是成本最小化,二是收入最大化。當然,那些制作、傳播敲詐者木馬的黑產從業者也深諳此道。為了實現成本最小化,這些黑客們拋棄了以前繁瑣的開發模式,有的開始轉戰擁有龐大類庫的.NET平臺,有的則擯棄繁雜的程序加殼和混淆,直接以“裸體”的文件加密代碼示眾;而實現收入最大化呢,多勒索幾個比特幣顯得不夠“紳士”,那就只能耍一些花招來增加用戶被勒索的可能性了。最近,360互聯網安全中心就捕獲到多枚進行“花式敲詐”的敲詐者木馬,其敲詐手段可謂無所不用其極,下面將具體分析三種敲詐者木馬是怎么“耍花招”的。
二、加密手法分析
在對這些“花招”進行分析之前,還是需要對這三款“敲詐者”木馬的加密手法進行簡要敘述。這幾款木馬所使用的編程語言為C#和C++,用C#編寫的“敲詐者”木馬受益于.NET平臺下強大的加密類庫,因此直接使用相關加密函數即可完成加密工作。
圖1 產生隨機數密鑰
圖2 用RSA公鑰加密隨機數密鑰
圖3 用隨機數密鑰加密文件
上面三幅圖是.NET平臺下“Fantom”敲詐者木馬的加密方法,此種加密方法和一般的敲詐者木馬相似,使用RSA公鑰去加密隨機數密鑰,然后用隨機數密鑰去加密文件(也有的使用AES加密算法加密文件)。其他類型的敲詐者木馬使用的加密方法大同小異,只是在密鑰的處理上有些不同。而對于使用c++編寫的敲詐者木馬而言,使用現成的公開庫也是可以解決加密的問題,只是相比較.NET平臺還是略顯臃腫。
圖4 c++編寫的“敲詐者”木馬部分加密算法
三、“花招”的具體分析
當然,剛剛那些只是“前戲”,分析這幾款敲詐者木馬所耍的“花招”才是正事。這些敲詐者木馬耍花招的目的有的是讓用戶更容易上當受騙,有的是增加用戶對敲詐勒索的恐懼感,還有的直接簡化了支付的流程,可謂是”花樣百出”。不過,“花招”的目的都是一致的-——“多撈錢”。那么,它們耍的花招到底都有哪些亮點呢?
1.“Fantom”敲詐者木馬
“Fantom”敲詐者木馬是基于.NET平臺的敲詐者木馬,其加密手法之前已經進行了介紹,那么,這款“敲詐者”木馬到底耍了啥花招呢?
我們可以從代碼中看出點端倪。由于程序的主要功能是以窗口事件處理的形式執行的,為了不讓用戶察覺到蛛絲馬跡,程序把窗口的圖標和任務欄圖標都隱藏起來。
圖5 隱藏圖標和任務欄圖標
當然這不是重點,重點在程序資源段中一個名為“WindowsUpdate.exe”的程序。程序通過extractResource方法將該程序復制到臨時文件夾下執行。
圖6 從資源段獲取程序并執行
從程序名可以看出,這應該是個和Windows更新有關的程序,果然,反編譯代碼證實了這一點,這是個偽造的windows更新界面!
該程序窗口布局是仿造windows更新界面繪制而成的,并且覆蓋整個屏幕。為了達到動態效果,程序以窗口事件處理程序的形式增加了一個定時器,以100秒為間隔修改更新進度。因此進度達到百分之百需要大約要兩個半小時,這時間足夠完成加密工作。
圖7 程序以100秒為間隔修改更新進度
借助C#強大的窗體繪制能力,程序繪制出了一個“以假亂真”的Windows更新界面。
圖8 偽造的Windows更新界面
當然,僅僅依靠這樣一個覆蓋全屏的窗口界面還是不能令作者滿意的,因此作者為這個偽造界面添加了許多“左膀右臂”,比如禁止打開任務管理器。
圖9 禁止打開任務管理器
當受害者的計算機屏幕上覆蓋著這樣一個偽造的Windows更新界面時,由于無法打開任務管理器,受害者也就無法關閉產生該界面的程序。實際上更多的情況是,受害者根本不知道這是一個偽裝的Windows更新程序,而會把所見的當作真正的Windows更新界面。
等到加密工作完成之后,加密程序就結束掉產生偽造Windows更新界面的程序。
圖10 結束掉偽造Windows更新進程
當受害者以為自己計算機系統已經更新完畢時,也正是悲劇來臨之時。計算機中大部分文件將被加上“fantom”后綴名,而顯示在用戶面前的是一封顯眼的勒索信。原本以為系統更新成功,結果才發現一切都是個騙局。
圖11 勒索信內容
圖12 被加密的文件
作者在每個文件夾下都留有一個html網頁,上面介紹如何支付贖金恢復文件。
圖13 介紹支付流程的html網頁
圖14 網頁內容
是不是到此程序就結束它的“勒索“之行坐等收贖金了呢?并不是這樣的,為了防止用戶通過卷影備份恢復數據,程序調用“Vssadmin delete shadows”命令刪除計算機中的卷影,可謂“趕盡殺絕”。
圖15 刪除卷影防止通過備份恢復數據
可以看出,“Fantom”敲詐者木馬充分利用了C#語言繪制窗體的方便性,繪制了一個栩栩如生的偽造Windows更新界面,這以假亂真的功夫簡直6翻了。
2.“Voldemont”敲詐者木馬
不同于 “Fantom”敲詐者木馬所走的專業山寨路線,“Voldemont”可謂另辟蹊徑,沒有勒索信,也不讓你看到那一大堆被加密的文件,在你面前只有這么一張圖。
圖16 “Voldement”敲詐者展示的界面
一個伏地魔的照片突然就出現在面前,著實有些嚇人。不過還有一個更嚇人的,就是這款敲詐者木馬不勒索比特幣,而是直接要你把信用卡發給他,這明擺著就是搶劫嘛!
可能有些用戶在此時會選擇通過任務管理器關閉相關程序或者重啟計算機,不過悲劇的是,程序已經結束掉explore進程和任務管理器進程并且寫入啟動項,下回開機時還要被嚇一次,無計可施的用戶不得不輸入信用卡信息來尋求解密。
圖17 程序結束explore和taskmgr進程
圖18 程序寫注冊表啟動項
當受害用戶填寫信用卡信息并點擊“Get Key!”時,程序就會將信用卡信息發送至遠程服務端。
圖19 發送信用卡信息到遠程服務端
遠程端會核實信息是否正確,正確的話將會發送一個key到本地客戶端。
圖20 判斷信用卡信息是否正確以選擇要執行的代碼
按說接收到的key應該是用于解密文件的,然而事實并非如此,程序并不是使用這個key對文件進行解密,只是用它來判斷是不是可以進行解密了,而且判斷條件也僅僅是個簡單的運算。
圖21 解密的判斷
可以看出,解密算法并不需要key的參與,也就是說加密算法即解密算法,從算法的代碼中也可以很清楚的看出,這是個加解密通用的算法。看來“伏地魔”的功力也不過如此,除了會嚇人,也沒啥亮點了。
圖22 部分加/解密代碼
相比較“Fantom”木馬縝密的加密流程以及無可匹敵的山寨功力,“Voldemont”也就僅僅起到了嚇人的作用,并沒有一般“敲詐者”木馬不可逆的加密手段,只要弄清“Voldemont”的加密手法就能讓它功力盡失。
3.“QrCode”敲詐者木馬
之所以叫它“QrCode”,因為這是個關于二維碼的故事。“QrCode”敲詐者也是基于.NET平臺,它在函數命名以及加密方式方面和“Fantom”有較多相似之處,不排除是同一團伙所為。而且相比較“Fantom”敲詐者,“QrCode”在加密流程上更為縝密,而且將加解密鑰的存儲全部轉移到了遠程服務端,可以說更加隱蔽。
圖23 “QrCode”加解密流程
從上圖可以看出,本地程序和服務端進行交互,向服務端發送本地相關信息,而服務端通過判斷這些信息來決定是進行加密還是解密,而加密和解密使用的密鑰也是由服務端提供的,分別是FIRST字段下的值和RECEIVED字段下的值。
除外,為了防止殺軟檢測程序對一些敏感信息的獲取,該款“敲詐者”并沒有獲取諸如計算機名等較為敏感的信息,而是獲取一些可以代表機器但不是那么敏感的信息,比如ProductName,CDVersion,作者也“親切”地稱他們“FriendlyName”。
圖24 獲取“FrienflyName”
這些信息上傳到服務端后將作為標識受害計算機所用的信息,作者通過多次從本地獲取這些信息來和服務端做對比來確定受害者是否支付贖金亦或者這是臺初次感染的機器。
那么,受害者該怎么交付贖金呢?在代碼中可以發現一個名為.CreateQrCode的函數,難道要通過掃二維碼支付贖金?
圖25 創建二維碼函數
果不其然,屏幕出現了一個大大的二維碼,不過掃描該二維碼只是獲得比特幣錢包地址和支付金額。
圖26 感染“QrCode”敲詐者后的界面
由于二維碼的生成使用了谷歌的接口,因此有些國內用戶感染該木馬后并不會產生二維碼,不過屏幕依然會出現對方的比特幣錢包地址。該“敲詐者”會向受害者勒索1.5個比特幣,而且要求受害者在十分鐘內完成支付。
這時候受害者應該也會選擇啟動任務管理器結束相關進程或者重啟,不過同樣悲劇的是,程序禁止打開任務管理器并且設置了啟動項。
圖27 設置開機啟動項
圖28 禁止使用任務管理器
“QrCode”敲詐者木馬禁止任務管理器的函數和“Fantom”木馬完全相同,除此之外獲取計算機所在國家語言的函數也和“Fantom”敲詐者完全相同,因此可以基本確定兩者來自同一團伙。
不過“QrCode”敲詐者木馬最大的亮點還是來自于那個大大的二維碼,雖然這個二維碼并不帶“掃一掃即可支付”的功能,只是用于提供比特幣錢包地址和支付金額,但從這種接地氣的設計來看,敲詐者木馬離“掃一掃即可支付”不遠了。
四、總結
從分析中可以看出,這幾款“敲詐者”威力雖然參差不齊,但由于使用了各種各樣的“花招”來迷惑和恐嚇用戶,并且簡化了支付流程,因此它們的能力還是不容小覷。在敲詐者木馬多樣化的今天,用戶在下載運行未知程序時保持警惕狀態,對于具有迷惑性的程序更應該“慎點”。面對敲詐者木馬多樣化的趨勢,360安全衛士已經開通了“反勒索服務”,并向用戶公開承諾:使用360安全衛士11.0版本并開啟該服務后,一旦感染敲詐者病毒,360將提供最高3個比特幣(約13000元人民幣)的贖金并幫助用戶回復數據,讓用戶遠離財物及文檔的損失。