騰訊安全團隊深入解析wannacry蠕蟲病毒
背景:
2017年5月12日,WannaCry蠕蟲經過MS17-010漏洞在全球規模大迸發,傳染了很多的計算機,該蠕蟲傳染計算機后會向計算機中植入敲詐者病毒,致使電腦很多文件被加密,這篇文章對其進行詳細分析。
木馬概況:
WannaCry木馬利用前陣子泄漏的方程式工具包中的“永恒之藍”漏洞工具,進行網絡端口掃描攻擊,目標機器被成功攻陷后會從攻擊機下載WannaCry木馬進行感染,并作為攻擊機再次掃描互聯網和局域網其他機器,行成蠕蟲感染大范圍超快速擴散。
木馬母體為mssecsvc.exe,運行后會掃描隨機ip的互聯網機器,嘗試感染,也會掃描局域網相同網段的機器進行感染傳播,此外會釋放敲詐者程序tasksche.exe,對磁盤文件進行加密勒索。
木馬加密使用AES加密文件,并使用非對稱加密算法RSA 2048加密隨機密鑰,每個文件使用一個隨機密鑰,理論上不可破解。

詳細分析:
mssecsvc.exe行為:
1、開關:
木馬在網絡上設置了一個開關,當本地計算機能夠成功訪問http://www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com時,退出進程,不再進行傳播感染。目前該域名已被安全公司接管。

2、蠕蟲行為:
通過創建服務啟動,每次開機都會自啟動。

從木馬自身讀取MS17_010漏洞利用代碼,playload分為x86和x64兩個版本。

創建兩個線程,分別掃描內網和外網的IP,開始進程蠕蟲傳播感染。

對公網隨機ip地址445端口進行掃描感染。

對于局域網,則直接掃描當前計算機所在的網段進行感染。

感染過程,嘗試連接445端口。

如果連接成功,則對該地址嘗試進行漏洞攻擊感染。

3、釋放敲詐者

tasksche.exe行為:(敲詐者)
解壓釋放大量敲詐者模塊及配置文件,解壓密碼為WNcry@2ol7

首先關閉指定進程,避免某些重要文件因被占用而無法感染。

遍歷磁盤文件,避開含有以下字符的目錄。
\ProgramData
\Intel
\WINDOWS
\Program Files
\Program Files (x86)
\AppData\Local\Temp
\Local Settings\Temp
This folder protects against ransomware. Modifying it will reduce protection

同時,也避免感染木馬釋放出來的說明文檔。

木馬加密流程圖:

遍歷磁盤文件,加密以下178種擴展名文件。
.doc, .docx, .xls, .xlsx, .ppt, .pptx, .pst, .ost, .msg, .eml, .vsd, .vsdx, .txt, .csv, .rtf, .123, .wks, .wk1, .pdf, .dwg, .onetoc2, .snt, .jpeg, .jpg, .docb, .docm, .dot, .dotm, .dotx, .xlsm, .xlsb, .xlw, .xlt, .xlm, .xlc, .xltx, .xltm, .pptm, .pot, .pps, .ppsm, .ppsx, .ppam, .potx, .potm, .edb, .hwp, .602, .sxi, .sti, .sldx, .sldm, .sldm, .vdi, .vmdk, .vmx, .gpg, .aes, .ARC, .PAQ, .bz2, .tbk, .bak, .tar, .tgz, .gz, .7z, .rar, .zip, .backup, .iso, .vcd, .bmp, .png, .gif, .raw, .cgm, .tif, .tiff, .nef, .psd, .ai, .svg, .djvu, .m4u, .m3u, .mid, .wma, .flv, .3g2, .mkv, .3gp, .mp4, .mov, .avi, .asf, .mpeg, .vob, .mpg, .wmv, .fla, .swf, .wav, .mp3, .sh, .class, .jar, .java, .rb, .asp, .php, .jsp, .brd, .sch, .dch, .dip, .pl, .vb, .vbs, .ps1, .bat, .cmd, .js, .asm, .h, .pas, .cpp, .c, .cs, .suo, .sln, .ldf, .mdf, .ibd, .myi, .myd, .frm, .odb, .dbf, .db, .mdb, .accdb, .sql, .sqlitedb, .sqlite3, .asc, .lay6, .lay, .mml, .sxm, .otg, .odg, .uop, .std, .sxd, .otp, .odp, .wb2, .slk, .dif, .stc, .sxc, .ots, .ods, .3dm, .max, .3ds, .uot, .stw, .sxw, .ott, .odt, .pem, .p12, .csr, .crt, .key, .pfx, .der
程序中內置兩個RSA 2048公鑰,用于加密,其中一個含有配對的私鑰,用于演示能夠解密的文件,另一個則是真正的加密用的密鑰,程序中沒有相配對的私鑰。

木馬隨機生成一個256字節的密鑰,并拷貝一份用RSA2048加密,RSA公鑰內置于程序中。

構造文件頭,文件頭中包含有標志、密鑰大小、RSA加密過的密鑰、文件大小等信息。

使用CBC模式AES加密文件內容,并將文件內容寫入到構造好的文件頭后,保存成擴展名為.WNCRY的文件,并用隨機數填充原始文件后再刪除,防止數據恢復。

完成所有文件加密后釋放說明文檔,彈出勒索界面,需支付價值數百美元不等的比特比到指定的比特比錢包地址,三個比特幣錢包地址硬編碼于程序中。
115p7UMMngoj1pMvkpHijcRdfJNXj6LrLn
12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw
13AM4VW2dhxYgXeQepoHkHSQuy6NgaEb94

解密程序:
木馬解密程序中內置了其中一個公鑰的配對私鑰,可以用于解密使用該公鑰加密的幾個文件,用于向用戶“證明”程序能夠解密文件,誘導用戶支付比特幣。


此后,程序判斷本地是否存在“00000000.dky”文件,該文件為真實解密所需私鑰文件。若存在,則通過解密測試文件來檢測密鑰文件是否正確。

若正確,則解密,若錯誤或不存在,木馬將程判斷解壓后的Tor目錄下是否存在taskhsvc.exe,若不存在,則生成該文件,并且調用CreateProcessA拉起該進程:

該程序主要為tor匿名代理工具,該工具啟動后會監聽本地9050端口,木馬通過本地代理通信實現與服務器連接。

在點擊“Check Payment”按鈕后,由服務端判斷是否下發解密所需私鑰。若私鑰下發,則會在本地生成解密所需要的dky文件。

而后,程序便可利用該dky文件進行解密。不過,到目前為止,未曾有解密成功的案例。
文件列表及作用:
b.wnry: 中招敲詐者后桌面壁紙
c.wnry: 配置文件,包含洋蔥域名、比特幣地址、tor下載地址等
r.wnry: 提示文件,包含中招提示信息
s.wnry: zip文件,包含Tor客戶端
t.wnry: 測試文件
u.wnry: 解密程序
f.wnry: 可免支付解密的文件列表
安全建議:
由于之前爆發過多起利用445端口共享漏洞攻擊案例,運營商對個人用戶關閉了445端口。因校園網是獨立的,故無此設置,加上不及時更新補丁,所以在本次事件中導致大量校園網用戶中招。管家提供以下安全建議:
1、關閉445、139等端口,方法詳見:http://mp.weixin.qq.com/s/7kArJcKJGIZtBH1tKjQ-uA
2、下載并更新補丁,及時修復漏洞(目前微軟已經緊急發布XP、Win8、Windows server2003等系統補丁,已經支持所有主流系統,請立即更新)。
XP、Windows Server 2003、win8等系統訪問:http://www.catalog.update.microsoft.com/Search.aspx?q=KB4012598
Win7、win8.1、Windows Server 2008、Windows 10, Windows Server 2016等系統訪問: https://technet.microsoft.com/zh-cn/library/security/ms17-010.aspx
3、裝置騰訊電腦管家,電腦管家會自動敞開自動防護進行阻攔查殺;
4、付出比特幣并不能解密文件,不要付出比特幣,保存被加密的文件,等候解密。