Wannacry勒索軟件母體主程序逆向分析
為紅旗等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及紅旗網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、紅旗網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!好了,說正題,我從這里下載了Wannacry樣本,一些枯燥的匯編分析細(xì)節(jié)就不多講,我們盡量快速的了解到整體過程。
首先會(huì)通過一個(gè)函數(shù)算出一個(gè)標(biāo)識(shí),我們將這個(gè)函數(shù)命名為getDisplayName,本質(zhì)就是通過GetComputerNameW獲取計(jì)算機(jī)名然后取隨機(jī)數(shù)算出一個(gè)唯一對(duì)應(yīng)的標(biāo)識(shí)(我們命名為DisplayName),后面的執(zhí)行過程會(huì)用到這個(gè)標(biāo)識(shí)
接下來會(huì)做幾件事情,任意一項(xiàng)未執(zhí)行成功都會(huì)退出
檢查命令行參數(shù)是否為兩個(gè),并且是否有/i這個(gè)參數(shù)
檢查并嘗試在ProgramData目錄 或 Intel目錄 或 Temp系統(tǒng)臨時(shí)目錄下創(chuàng)建前面算出的DisplayName為標(biāo)識(shí)的目錄
將這個(gè)工作目錄設(shè)置為6也就是0×2 和 0×4(FILE_ATTRIBUTE_HIDDEN 和 FILE_ATTRIBUTE_SYSTEM )隱藏和系統(tǒng)
創(chuàng)建自身的副本并命名為tasksche.exe
將tasksche.exe優(yōu)先以服務(wù)方式啟動(dòng),如果失敗則以普通進(jìn)程方式啟動(dòng)(副本啟動(dòng)的入口點(diǎn)和原始文件啟動(dòng)的入口點(diǎn)不同,從而實(shí)現(xiàn)不同的邏輯)
通過互斥體Global\\MsWinZonesCacheCounterMutexA來判斷是否啟動(dòng)成功
以上幾項(xiàng)都成功完成后流程才會(huì)繼續(xù),否則終止。
創(chuàng)建注冊(cè)表項(xiàng)HKEY_LOCAL_MACHINE\Software\WanaCrypt0r\wd ,寫入當(dāng)前路徑值
從資源中釋放PE文件taskdl.exe、taskse.exe,為了免殺,資源中的PE文件是加了密的,釋放過程中會(huì)解密,比較繁瑣
會(huì)給釋放的資源傳一個(gè)類似key之類的參數(shù)過去,參數(shù)值為WNcry@2ol7
然后在當(dāng)前目錄下讀取c.wnry文件
如果讀取到了c.wnry文件,就會(huì)將13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94通過一個(gè)隨機(jī)數(shù)加密后寫回到c.wnry,而這一串?dāng)?shù)字就是***的比特幣地址,也就是說c.wnry文件里保存的是加密后的***的比特幣地址
上圖就是c.wnry文件的加密算法,這個(gè)加密很簡(jiǎn)單,只用了兩句來實(shí)現(xiàn)
下面的臨時(shí)解決方案的自動(dòng)化工具里就用到了這三個(gè)***的比特幣地址
13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94
12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw
115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn
執(zhí)行這兩句命令
attrib +h .
icacls . /grant Everyone:F /T /C /Q
attrib命令將DisplayName工作目錄設(shè)置為隱藏
icacls命令開放目錄的用戶權(quán)限
接下來是動(dòng)態(tài)獲取所需的API地址
首先是獲取kernel32.dll中的文件相關(guān)的API
然后是獲取advapi32.dll中的加解密相關(guān)的API
CSP用的是系統(tǒng)默認(rèn)或者是RSA and AES
加密文件以WANACRY!為特征頭
被加密的文件涉及到各種文檔、文本、虛擬機(jī)、壓縮包、鏡像、圖片、視頻、音樂、源代碼、腳本、數(shù)據(jù)庫、郵件、證書等近200種文件類型,幾乎涵蓋了方方面面,但確沒有BT種子文件,看來***還是有所為有所不為啊^_^
網(wǎng)上流傳了一個(gè)臨時(shí)解決方案的思路是:
獲取***收款地址的交易記錄
將別人支付贖金的記錄信息(交易hash值)冒充是自己付的發(fā)送給***來蒙混過關(guān)(挺賊的^_^)
通過https://btc.com/可以查詢到交易記錄,但是我們需要有***的收款地址,上面我們已經(jīng)分析出來了
13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94
12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw
115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn
網(wǎng)上有個(gè)python的自動(dòng)化腳本,這里再優(yōu)化一下,而且還有很多人不是搞IT的,不懂什么python,于是做了一個(gè)傻瓜式的exe程序來自動(dòng)獲取交易記錄
工具鏈接: http://pan.baidu.com/s/1hsbwQaC 密碼: p263
從下午開始一直坐在電腦前就沒起過身,分析、碼字、寫工具,一晃現(xiàn)在都到半夜了,搞這行傷不起啊。寫不動(dòng)了,今天先休息了。不過也能猜到其他還要做什么,就是掃端口,找到開放了445端口SMBv1的就使用NSA老大的Eternalblue Doublepulsar實(shí)現(xiàn)蠕蟲式傳播
最后再分享下這次罪魁禍?zhǔn)椎墓ぞ撸?/p>
https://github.com/x0rz/EQGRP_Lost_in_Translation
https://github.com/misterch0c/shadowbroker
是工具(沒有源碼),用了一個(gè)python***框架Fuzzbunch簡(jiǎn)稱fb,這個(gè)框架怎么用,可以看這里http://www.freebuf.com/articles/system/133853.html
微軟的補(bǔ)丁信息:https://blogs.technet.microsoft.com/msrc/2017/04/14/protecting-customers-and-evaluating-risk/
文章地址:http://www.freebuf.com/vuls/134602.html
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。