比海更深 发表于 2019-11-9 10:13

分析带混淆的勒索病毒

本帖最后由 比海更深 于 2020-2-2 13:37 编辑

这是之前的勒索病毒样本,一直没有好好分析,在找工作期间决定好好分析,也当是复习,这是我第一次发帖,如有不足,请各位指出。
一、样本信息

文件名称:1.exe
编译平台:Microsoft Visual C++ 6.0
是否有壳: 无
MD5::DBD5BEDE15DE51F6E5718B2CA470FC3F
SHA1::863F5956863D793298D92610377B705F85FA42B5
CRC32::1386DD7A

二、行为分析
样本无壳,但含附加数据

用火绒剑分析病毒行为,可以猜测病毒 1.exe 先自我复制,重命名为 dlojuo,随后删除自身,修改注册表,并添加启动项这是病毒常见的傀儡进程操作,后面的是一些网络行为和加密目标文件,这里就不截图了

OD加载样本,程序在执行完 004118D6 直接跑飞到 774D64F4,进入函数4118B4查看情况

4118B4 里面全部都是密密麻麻的 JE 跳转,这里就得改变以下思路。火绒剑分析病毒会创建进程,直接下 CreateProcessW/A 断点,然后F9跑起来

程序断下来了,可以看出,子程序以挂起方式创建,栈回溯发现地址太小,猜测是 VirtualAlloc申请出来的空间,一般申请空间后会使用 WriteProcessMemory 往空间写入,接着 VirtualAlloc 、WriteProcessMemory 下断点。

程序断了下来,申请的空间很小,写入内容为乱码,不是我们要找的内存,程序接着断在 Virtualloc

申请的空间很大,写入的是PE文件,这块内存才是真正的病毒程序dlojuo ,选中这块内存右键直接 dump


将dump后的程序拖进 IDA、OD 详细分析病毒会自我复制,在CopyFileW下断点,被复制的程序会在 C:\Users\用户名\Documents\下创建子程序,文件名为6位数随机字母,栈回溯去到4074CE

往上翻看后发现有拼接字符串的操作,重新运行程序发现这里拼接的是病毒程序路径,之后打开C:\Users\15pb-win7\Documents\1_dump.exe的程序,如果没有,则返回错误码0x2h,这里jnz跳转条件不成立,为了方便后序分析,这里更改为无条件跳转

接着往下单步可以发现这里调用GetFunctionAddr获取API CreateMutexW创建互斥体,然后在下面call eax处调用,防止病毒程序多开,之后获取系统版本信息

打开IDA 静态接着分析,接下来,一些不重要的函数就直接跳过不分析了

发现 PowerRaising_4108F0 函数进行提权操作

线程回调函数 sub_406EB0函数枚举当前运行的进程,查找是否有进程名为taskmg、regedi、procex、msconfi、cmd的进程在运行,若在运行,则结束该进程

线程回调函数 4072A0通过 ShellExecuteExW 执行程序

动态调试后猜测是要删除程序,看不懂

线程回调函数413180主要作用是连接网络,将数据发送被作者,下面是病毒用到的URL

接着来到重点线程回调函数401710,往下分析来到 401920 ,该函数是整个程序的重点

401920 函数获取驱动器信息,并调用 EnumDriveDir遍历磁盘

进入EnumDriveDir函数,里面递归遍历磁盘文件

EncodeFile_401CD0 函数是加密函数,可以判断上面的表达式是筛选符合后缀的文件,对其进行加密操作

我之前通过IDA流程图找到关键函数sub_402170, 该函数作用是在内存中解密字符串,动态跟踪函数

函数内先后解密出了大量字符串,动态跟踪时注意堆栈中出现的字符串

观察调用call的返回信息可以发现有非常多的字符串 ,下面就不一一截图了,只截一些关键的字符串

被加密文件的命名

生成勒索文本的字符串

上面的那个判断就是根据这些后缀名进行筛选

绕远了,下面接着分析 加密函数401CD0,进入查看

这里需要配合OD动态调试

设置文件属性,随后将文件读取到内存中,读取128个字节

判断文件开头128位是否为空,为空则跳转调用RtlAllocateHeap申请堆空间,这个判断是 被加密文件的特征

之后设置文件指针到文件头部,写入加密后的文本,写入成功程序继续运行,写入失败则释放堆空间,并关闭句柄


成功后跳转401f01,第二次申请堆空间

往下跑第二个函数就是勒索病毒所使用的加密算法

IDA中显示

算法片段



三、解决方案无解,病毒所使用的加密算法为RSA4096,经评论提醒,该勒索可以解密,详情见https://bbs.pediy.com/thread-255755.htm


四、防护建议开启防火墙,及时给杀软和操作系统打补丁,别点来历不明的文件

下面是样本下载链接,请在安全的环境下运行样本,否则后果自负!
链接:https://pan.baidu.com/s/1BvH--MrpiEj2L0Mp2NvrvA
提取码:l4t7
复制这段内容后打开百度网盘手机App,操作更方便哦


hack528 发表于 2019-11-10 11:05

图片刮了 大佬

Hmily 发表于 2019-11-13 18:51

比海更深 发表于 2019-11-11 17:54
多谢提醒,我这就去弄

接着往下单步可以发现这里调用GetFunctionAddr获取AP

这行上面好像还有一个图无法显示。

比海更深 发表于 2019-11-10 12:29

hack528 发表于 2019-11-10 11:05
图片刮了 大佬

多谢提醒

IMF 发表于 2019-11-10 13:57

感谢大佬的分析:lol

hjm666 发表于 2019-11-11 08:43

别用外链图片···

yppsniper 发表于 2019-11-11 11:19

大佬图片长时间加载不出来,可否做成Word或PDF,再上传一次?谢谢{:1_893:}

忧郁剑客 发表于 2019-11-11 15:02

图片全部挂了,一个也看不到

姚小宝 发表于 2019-11-11 15:21

再编辑一下吧还是图片问题

dtkevin 发表于 2019-11-11 15:57

超厉害。。。但是图片为什么看不了

snsmqing 发表于 2019-11-11 16:19

图都看不到哦
页: [1] 2 3
查看完整版本: 分析带混淆的勒索病毒