第二部分
接上面的分析,前面的wcry程序只是進(jìn)行鋪墊趴久,主要為后面的加密做輔助丸相,病毒進(jìn)入TaskStart后,才真正開始它的惡意操作
接下來(lái)就分析幾個(gè)關(guān)鍵函數(shù)彼棍,創(chuàng)建的線程1灭忠,首先修改c.wncy文件
之后啟動(dòng)@WanaDecryptor@.exe
最后添加注冊(cè)表項(xiàng):
執(zhí)行了cmd.exe /c reg add %s /v "%s" /t REG_SZ /d ""%s"" /f的命令
線程2進(jìn)行每隔25秒,循環(huán)寫入數(shù)據(jù)到00000000.res的操作
線程3應(yīng)該是在檢驗(yàn)公鑰文件和密鑰文件
線程4 獲取當(dāng)前所有磁盤座硕,遍歷目錄加密文件
線程5 30秒運(yùn)行一次taskdl.exe
線程6 和線程1一樣:
最關(guān)鍵的加密函數(shù)在線程五中弛作,首先將文件進(jìn)行復(fù)制,之后對(duì)復(fù)制的文件進(jìn)行加密华匾,方式是使用RSA加密后的隨機(jī)生成AES密鑰進(jìn)行加密映琳,并在文件的起始位置寫入WANACRY!的字符串,最后刪除掉所有源文件蜘拉。但是在我的虛擬機(jī)中萨西,好多文件都沒有加密成功,可能是用普通用戶啟動(dòng)病毒的原因旭旭,如果正常情況下谎脯,一般是病毒通過(guò)445端口用永恒之藍(lán)漏洞獲得system權(quán)限再去執(zhí)行加密操作,所以被攻擊的電腦才會(huì)大部分文件加密
病毒會(huì)繞過(guò)后綴名為.WNCRYT您机,.WNCRY穿肄,.WNCYR和名字為@Please_Read_Me@.txt,@WanaDecryptor@.exe.lnk际看,@WanaDecryptor@.exe咸产,同時(shí)為了不干擾系統(tǒng)正常運(yùn)行,病毒繞過(guò)了關(guān)鍵的系統(tǒng)目錄
Taskstart的最后一個(gè)函數(shù)仲闽,關(guān)掉各種系統(tǒng)進(jìn)程脑溢,例如mysql和sqlserver等,其中有三個(gè)函數(shù),功能是建立批處理文件屑彻,創(chuàng)建readme验庙,加密其他用戶文件
創(chuàng)建bat批處理文件,作用是為了快速生成@WanaDecryptor@.exe的快捷方式
把之前的r.wnry創(chuàng)建成readme.txt
加密其他用戶文件:
到這里社牲,t.wnry的導(dǎo)出函數(shù)TaskStart就結(jié)束了粪薛,中間對(duì)加密方式?jīng)]調(diào)明白,后來(lái)網(wǎng)上搜了一波資料才搞懂搏恤,病毒的加密方式是
加密流程:
加密文件的算法是AES, 而AES秘鑰被RSA公鑰_B加密, 私鑰_B 被RSA公鑰A 加密, 而私鑰_A在攻擊者手里
加密文件格式:
對(duì)文件進(jìn)行加密時(shí),首先會(huì)生成新的AES秘鑰,使用RSA公鑰_B對(duì)生成的AES秘鑰進(jìn)行加密,保存到要加密文件的開頭部分,(在WANACRY!)標(biāo)識(shí)符之后,隨后使用AES秘鑰對(duì)文件進(jìn)行加密
解密流程:
每個(gè)被加密的文件均使用不同的AES秘鑰,若想對(duì)文件進(jìn)行解密操作,需要先獲取RSA私鑰_B, 將文件頭的AES秘鑰進(jìn)行解密,再使用AES秘鑰對(duì)文件進(jìn)行解密,而要獲得RSA私鑰_B則必須要獲取私鑰_A,私鑰_A是在攻擊者手里,理論上文件也就無(wú)法被解開
之后繼續(xù)分析病毒程序釋放的taskdl.exe和taskse.exe程序