恶意样本学习——勒索病毒(一)

白帽子社区

共 2795字,需浏览 6分钟

 ·

2021-05-09 04:21

作者:PYozo  编辑:白帽子社区运营团队




    "白帽子社区在线CTF靶场BMZCTF,欢迎各位在这里练习、学习,BMZCTF全身心为网络安全赛手提供优质学习环境,链接(http://www.bmzclub.cn/)

"    




前言

本次分析的是一个勒索病毒的样本
第一次分析,虽然分析了2-3天,但还可能会遗漏一些地方没分析(太菜了..哭)


样本基本信息

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:\\windowsc:\\programdata\\microsoft\\windows\\cachesc:\\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\\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......


枚举在本机在网络上的共享文件,并进行加密

加密

通过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(文件搜索)



往期精彩文章




CVE-2020-16846 CVE-2020-25592 分析
MISC题解
利用句柄表实现反调试
Chrome浏览器代码执行0 day漏洞通知




技术支持:白帽子社区团队
— 扫码关注我们 



浏览 151
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报