恶意样本学习——勒索病毒(一)
共 2795字,需浏览 6分钟
·
2021-05-09 04:21
作者:PYozo 编辑:白帽子社区运营团队
"白帽子社区在线CTF靶场BMZCTF,欢迎各位在这里练习、学习,BMZCTF全身心为网络安全赛手提供优质学习环境,链接(http://www.bmzclub.cn/)
"
前言
MD5:782d18b840c4ea06c51b9dfae728ddd918f38abbb98583c0ac5eb637b0127d8a
类型:勒索病毒
xdbg32、ida、火绒剑
整个流程采用先提权,然后写入注册表来达到自启动效果,再创建多个线程,来加密文件,随后在该文件的上层目录中写入一个exe的窗口文件,用来提示你的电脑被加密,并且留下联系方式
生成一段序列号,后面会将序列号放入加密文件名种
然后输入0x11生成了字符串Software\Microsoft\Windows\CurrentVersion\Run
该字符串可以用所对应的键值可以用来达到开机启动的效果
通过获取当前路径GetModuleFileNameW,然后调用CopyFileW将文件写入
C:\Users\Administrator\AppData\Local\
再通过往注册表中写入CopyFileW所创建的文件
复制文件到C:\Users\Administrator\AppData\Local\
设置注册表,将该文件变为启动项
再复制一份文件到c:\users\administrator\appdata\roaming\microsoft\windows\startmenu\programs\startup
c:\programdata\microsoft\windows\startmenu\programs\startup\123.exe
提权
通过GetShellWindow获取桌面的窗口句柄,GetWindowThreadProcessId得到其线程ID,OpenProcess获得桌面的进程句柄,OpenProcessToken打开其令牌,DuplicateTokenEx复制令牌信息,CreateProcessWithTokenWFunc
创建自身,并且通过DuplicateTokenEx复制的句柄来达到提权的效果
关闭防火墙
通过Generate_str函数传入0x29,得到了字符串netsh advfirewall set currentprofile state off\nnetshfirewall set opmode\\
该字符串是cmd.exe命令,通过搜索,发现是用来关闭防火墙的
然后启动CreateProcessW,启动cmd.exe,通过创建管道往该cmd.exe里面写入上述字符串
接着样本会创建5个线程,第一个没什么特别的行为,第二个关闭所有正在运行的进程,第三个是将网络共享资源进行加密,第四个和第五个都是对文件的操作,主要是加密和遍历
关闭进程
关闭进程白名单
其他进程关闭
文件操作
调用htonl将GetLogicalDrives的返回值变为网络字节顺序
创建了多个线程调用0x404A4C
跟进0x404A4C,首先使用了Event,然后利用CreateThread来创建了线程
其调用了FindFirstFileW函数来查找文件,尝试搜索D盘下的所有的文件,由于只有C盘,所以直接退出了
然后再检索你的C盘里的文件,先查看你是否为文件,如果不是再查看是否为文件夹
并利用dfs开始遍历该文件夹下的文件
并查看当前路径是否属于(加密白名单)
c:\\windows
c:\\programdata\\microsoft\\windows\\caches
c:\\users\\admin\\microsoft\\windows\\caches
...
加密后缀白名单
找到系统的重要数据文件进行加密,将里面的数据加密,再置空,随后删除原文件
\\\\?\\C:\\ProgramData\\Microsoft\\Search\\Data\\Applications\\Windows\\tmp.edb
\\\\?\\C:\\ProgramData\\Microsoft\\Search\\Data\\Applications\\Windows\\Windows.edb
\\\\?\\C:\\Users\\Adm
inistrator\\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
......
枚举在本机在网络上的共享文件,并进行加密
加密
通过CreateFileW来获取该文件的可读可写可执行属性,再判断是否只读,如果只读则将该位置1
加密方式分两种size大小未超过0x180000的会调用0xsub_405A75否则调用sub_405804
新创建的文件名为源文件名+id[主机列].[butters.felicio@aol.com].deal,并且在文件的最后0xb2个字节都是以一段有序的序列结尾的(加密算法虽然主要是异或,但这次分析主要是练手一般的行为)
创建文件
创建文件c:\users\administrator\desktop\info.hta,并写入html文档
执行ShellExecuteExW然后弹出联系作者的窗口
再创建一个创建文件c:\users\administrator\desktop\info.txt,并写入html文档
然后关闭所有的线程句柄
参考:
https://blog.csdn.net/p123456789p/article/details/4006836(文件搜索)