0x1 前言
360互聯(lián)網(wǎng)安全中心近日發(fā)現(xiàn)全球多個(gè)國家和地區(qū)的機(jī)構(gòu)及個(gè)人電腦遭受到了一款新型勒索軟件攻擊,并于5月12日國內(nèi)率先發(fā)布緊急預(yù)警,外媒和多家安全公司將該病毒命名為“WanaCrypt0r”(直譯:“想哭勒索蠕蟲”),常規(guī)的勒索病毒是一種趨利明顯的惡意程序,它會(huì)使用加密算法加密受害者電腦內(nèi)的重要文件,向受害者勒索贖金,除非受害者交出勒索贖金,否則加密文件無法被恢復(fù),而新的“想哭勒索蠕蟲”尤其致命,它利用了竊取自美國國家安全局的黑客工具EternalBlue(直譯:“永恒之藍(lán)”)實(shí)現(xiàn)了全球范圍內(nèi)的快速傳播,在短時(shí)間內(nèi)造成了巨大損失。360追日團(tuán)隊(duì)對“想哭勒索蠕蟲”國內(nèi)首家進(jìn)行了完全的技術(shù)分析,幫助大家深入了解此次攻擊!
0x2 抽樣分析樣本信息
MD5: DB349B97C37D22F5EA1D1841E3C89EB4
文件大小: 3,723,264
影響面:除Windows 10外,所有未打MS-17-010補(bǔ)丁的Windows系統(tǒng)都可能被攻擊
功能: 釋放加密程序,使用RSA+AES加密算法對電腦文件進(jìn)行加密勒索,通過MS17-010漏洞實(shí)現(xiàn)自身的快速感染和擴(kuò)散。
0x03 蠕蟲的攻擊流程
該蠕蟲病毒使用了ms17-010漏洞進(jìn)行了傳播,一旦某臺(tái)電腦中招,相鄰的存在漏洞的網(wǎng)絡(luò)主機(jī)都會(huì)被其主動(dòng)攻擊,整個(gè)網(wǎng)絡(luò)都可能被感染該蠕蟲病毒,受害感染主機(jī)數(shù)量最終將呈幾何級(jí)的增長。其完整攻擊流程如下

0x04 蠕蟲啟動(dòng)邏輯分析
1.蠕蟲啟動(dòng)時(shí)將連接固定url: http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com
a)如果連接成功,則退出程序
b)連接失敗則繼續(xù)攻擊
2.接下來蠕蟲開始判斷參數(shù)個(gè)數(shù),小于2時(shí),進(jìn)入安裝流程;大于等于2時(shí),進(jìn)入服務(wù)流程.
a)安裝流程
i.創(chuàng)建服務(wù),服務(wù)名稱: mssecsvc2.0
參數(shù)為當(dāng)前程序路徑 –m security
ii.釋放并啟動(dòng)exe程序
移動(dòng)當(dāng)前 C:\WINDOWS\tasksche.exe到 C:\WINDOWS\qeriuwjhrf
釋放自身的1831資源(MD5: 84C82835A5D21BBCF75A61706D8AB549),到C:\WINDOWS\tasksche.exe,并以 /i參數(shù)啟動(dòng)
b)服務(wù)流程
i.服務(wù)函數(shù)中執(zhí)行感染功能,執(zhí)行完畢后等待24小時(shí)退出.
ii.感染功能
初始化網(wǎng)絡(luò)和加密庫,初始化payload dll內(nèi)存.
a)Payload包含2個(gè)版本,x86和x64

b)功能為釋放資源到c:\windows\mssecsvc.exe并執(zhí)行
啟動(dòng)線程,在循環(huán)中向局域網(wǎng)的隨機(jī)ip發(fā)送SMB漏洞利用代碼


0x05 蠕蟲利用漏洞確認(rèn)
通過對其中的發(fā)送的SMB包進(jìn)行分析,我們發(fā)現(xiàn)其使用漏洞攻擊代碼和https://github.com/rapid7/metasploit-framework 近乎一致,為Eternalblue工具使用的攻擊包。

蠕蟲 SMB數(shù)據(jù)包:

Eternalblue工具使用的MS17-010 SMB數(shù)據(jù)包:

https://github.com/RiskSense-Ops/MS17-010/tree/master/exploits/eternalblue/orig_shellcode
文件內(nèi)容在DB349B97C37D22F5EA1D1841E3C89EB4中出現(xiàn)
orig_shellcode文件內(nèi)容:

DB349B97C37D22F5EA1D1841E3C89EB4 文件:

0x06 蠕蟲釋放文件分析
蠕蟲成功啟動(dòng)后將開始釋放文件,流程如下:

釋放文件與功能列表,如下:

0x07 關(guān)鍵勒索加密過程分析
蠕蟲會(huì)釋放一個(gè)加密模塊到內(nèi)存,直接在內(nèi)存加載該DLL。DLL導(dǎo)出一個(gè)函數(shù)TaskStart用于啟動(dòng)整個(gè)加密的流程。程序動(dòng)態(tài)獲取了文件系統(tǒng)和加密相關(guān)的API函數(shù),以此來躲避靜態(tài)查殺。

整個(gè)加密過程采用RSA+AES的方式完成,其中RSA加密過程使用了微軟的CryptAPI,AES代碼靜態(tài)編譯到dll。加密流程如下圖所示。

使用的密鑰概述:

目前加密的文件后綴名列表:

值得注意的是,在加密過程中,程序會(huì)隨機(jī)選取一部分文件使用內(nèi)置的RSA公鑰來進(jìn)行加密,這里的目的是解密程序提供的免費(fèi)解密部分文件功能。

能免費(fèi)解密的文件路徑在文件f.wnry中

0x08 蠕蟲贖金解密過程分析
首先,解密程序通過釋放的taskhsvc.exe向服務(wù)器查詢付款信息,若用戶已經(jīng)支付過,則將eky文件發(fā)送給作者,作者解密后獲得dky文件,這就是解密之后的Key
解密流程與加密流程相反,解密程序?qū)姆⻊?wù)器獲取的dky文件中導(dǎo)入Key


可以看到,當(dāng)不存在dky文件名的時(shí)候,使用的是內(nèi)置的Key,此時(shí)是用來解密免費(fèi)解密的文件使用的。


之后解密程序從文件頭讀取加密的數(shù)據(jù),使用導(dǎo)入的Key調(diào)用函數(shù)CryptDecrypt解密,解密出的數(shù)據(jù)作為AES的Key再次解密得到原文件。

總結(jié)
該蠕蟲在勒索類病毒中全球首例使用了遠(yuǎn)程高危漏洞進(jìn)行自我傳播復(fù)制,危害不小于沖擊波和震蕩波蠕蟲,并且該敲詐者在文件加密方面的編程較為規(guī)范,流程符合密碼學(xué)標(biāo)準(zhǔn),因此在作者不公開私鑰的情況下,很難通過其他手段對勒索文件進(jìn)行解密,同時(shí)微軟已對停止安全更新的xp和2003操作系統(tǒng)緊急發(fā)布了漏洞補(bǔ)丁,請大家通過更新MS17-010漏洞補(bǔ)丁來及時(shí)防御蠕蟲攻擊。
|