惡意樣本學(xué)習(xí)——勒索病毒(一)
作者:PYozo 編輯:白帽子社區(qū)運營團隊
"白帽子社區(qū)在線CTF靶場BMZCTF,歡迎各位在這里練習(xí)、學(xué)習(xí),BMZCTF全身心為網(wǎng)絡(luò)安全賽手提供優(yōu)質(zhì)學(xué)習(xí)環(huán)境,鏈接(http://www.bmzclub.cn/)
"
前言

MD5:782d18b840c4ea06c51b9dfae728ddd918f38abbb98583c0ac5eb637b0127d8a
類型:勒索病毒

xdbg32、ida、火絨劍

整個流程采用先提權(quán),然后寫入注冊表來達到自啟動效果,再創(chuàng)建多個線程,來加密文件,隨后在該文件的上層目錄中寫入一個exe的窗口文件,用來提示你的電腦被加密,并且留下聯(lián)系方式

生成一段序列號,后面會將序列號放入加密文件名種


然后輸入0x11生成了字符串Software\Microsoft\Windows\CurrentVersion\Run
該字符串可以用所對應(yīng)的鍵值可以用來達到開機啟動的效果
通過獲取當(dāng)前路徑GetModuleFileNameW,然后調(diào)用CopyFileW將文件寫入
C:\Users\Administrator\AppData\Local\
再通過往注冊表中寫入CopyFileW所創(chuàng)建的文件

復(fù)制文件到C:\Users\Administrator\AppData\Local\


設(shè)置注冊表,將該文件變?yōu)閱禹?/span>

再復(fù)制一份文件到c:\users\administrator\appdata\roaming\microsoft\windows\startmenu\programs\startup

c:\programdata\microsoft\windows\startmenu\programs\startup\123.exe


提權(quán)
通過GetShellWindow獲取桌面的窗口句柄,GetWindowThreadProcessId得到其線程ID,OpenProcess獲得桌面的進程句柄,OpenProcessToken打開其令牌,DuplicateTokenEx復(fù)制令牌信息,CreateProcessWithTokenWFunc
創(chuàng)建自身,并且通過DuplicateTokenEx復(fù)制的句柄來達到提權(quán)的效果

關(guān)閉防火墻
通過Generate_str函數(shù)傳入0x29,得到了字符串netsh advfirewall set currentprofile state off\nnetshfirewall set opmode\\
該字符串是cmd.exe命令,通過搜索,發(fā)現(xiàn)是用來關(guān)閉防火墻的

然后啟動CreateProcessW,啟動cmd.exe,通過創(chuàng)建管道往該cmd.exe里面寫入上述字符串

接著樣本會創(chuàng)建5個線程,第一個沒什么特別的行為,第二個關(guān)閉所有正在運行的進程,第三個是將網(wǎng)絡(luò)共享資源進行加密,第四個和第五個都是對文件的操作,主要是加密和遍歷
關(guān)閉進程
關(guān)閉進程白名單

其他進程關(guān)閉


文件操作
調(diào)用htonl將GetLogicalDrives的返回值變?yōu)榫W(wǎng)絡(luò)字節(jié)順序
創(chuàng)建了多個線程調(diào)用0x404A4C

跟進0x404A4C,首先使用了Event,然后利用CreateThread來創(chuàng)建了線程

其調(diào)用了FindFirstFileW函數(shù)來查找文件,嘗試搜索D盤下的所有的文件,由于只有C盤,所以直接退出了

然后再檢索你的C盤里的文件,先查看你是否為文件,如果不是再查看是否為文件夾

并利用dfs開始遍歷該文件夾下的文件

并查看當(dāng)前路徑是否屬于(加密白名單)
c:\\windowsc:\\programdata\\microsoft\\windows\\cachesc:\\users\\admin\\microsoft\\windows\\caches...
加密后綴白名單

找到系統(tǒng)的重要數(shù)據(jù)文件進行加密,將里面的數(shù)據(jù)加密,再置空,隨后刪除原文件
\\\\?\\C:\\ProgramData\\Microsoft\\Search\\Data\\Applications\\Windows\\tmp.edb\\\\?\\C:\\ProgramData\\Microsoft\\Search\\Data\\Applications\\Windows\\Windows.edb\\\\?\\C:\\Users\\Administrator\\AppData\\Local\\IconCache.db\\\\?\\C:\\Users\\Administrator\\AppData\\Local\\Microsoft\\Windows\\Explorer\\thumbcache_1024.db\\\\?\\C:\\Users\\Administrator\\AppData\\Local\\Microsoft\\Windows\\Explorer\\thumbcache_256.db......
枚舉在本機在網(wǎng)絡(luò)上的共享文件,并進行加密

加密
通過CreateFileW來獲取該文件的可讀可寫可執(zhí)行屬性,再判斷是否只讀,如果只讀則將該位置1

加密方式分兩種size大小未超過0x180000的會調(diào)用0xsub_405A75否則調(diào)用sub_405804

新創(chuàng)建的文件名為源文件名+id[主機列].[[email protected]].deal,并且在文件的最后0xb2個字節(jié)都是以一段有序的序列結(jié)尾的(加密算法雖然主要是異或,但這次分析主要是練手一般的行為)


創(chuàng)建文件
創(chuàng)建文件c:\users\administrator\desktop\info.hta,并寫入html文檔

執(zhí)行ShellExecuteExW然后彈出聯(lián)系作者的窗口

再創(chuàng)建一個創(chuàng)建文件c:\users\administrator\desktop\info.txt,并寫入html文檔
然后關(guān)閉所有的線程句柄

參考:
https://blog.csdn.net/p123456789p/article/details/4006836(文件搜索)
