CryptoWall勒索病毒分析

栏目: 编程工具 · 发布时间: 6年前

内容简介:前几天给的样本,分析完之后,感觉还是比较经典的,且网上并没有相关分析,所以跟大家分析一下我的思路用PEID查看,并没有加壳,但是竟然有附加数据

前几天给的样本,分析完之后,感觉还是比较经典的,且网上并没有相关分析,所以跟大家分析一下我的思路

用PEID查看,并没有加壳,但是竟然有附加数据

CryptoWall勒索病毒分析

用LoadPe查看导入表信息,明显很奇怪

CryptoWall勒索病毒分析

用火绒剑分析进行行为分析,发现创建了一个跟自己同名的子进程

CryptoWall勒索病毒分析

载入Od,在这个call里程序就跑飞了

CryptoWall勒索病毒分析

跟踪进入,一脸懵*

CryptoWall勒索病毒分析

全都是这样的代码,既然创建了进程,于是直接下API断点

CreateProcessW  CreateProcessA

CryptoWall勒索病毒分析

栈回溯发现地址很小,明显是申请的堆空间,且这个进程是被挂起来的,经验告诉我,既然是挂起,肯定是要修改OEP,活者是写入一段shellcode等操作

继续下 WriteProcessMemory 断点

CryptoWall勒索病毒分析

和我想的不太一样,虽然写入了内存,但是发现是把所有的区段都给改了,包括PE头,多次写入,不用想这块内存肯定我们真实的病毒程序

经过分析这块内存是利用VirtualAlloc申请出来的,把内存中的数据复制过来并解密,然后写入挂起的线程

直接把这块内存dump出来

CryptoWall勒索病毒分析

CryptoWall勒索病毒分析

经过测试,dump出来的程序确实真正的病毒程序

下面开始分析病毒的行为

用火绒剑过滤的时候发现病毒会复制到

C:\Users\用户名\Documents\yfqgbh.exe

名字是六位数的随机字母

在CopyFileW上下断

CryptoWall勒索病毒分析

栈回溯发现下面有创建新的进程,这个进程就是我们复制过去的病毒,往上看的话肯定是判断

CryptoWall勒索病毒分析

往上走,发现有拼接字符串,下F2断,重新跑起来

CryptoWall勒索病毒分析

发现在获取目得的路径

CryptoWall勒索病毒分析

然后打开这个位置的病毒,很显然,这个位置并没有我们的程序,所以GetLastError会返回错误代码2

CryptoWall勒索病毒分析

CryptoWall勒索病毒分析

这样我们的跳转实现不了(实现不了则会复制文件到目标目录)为了分析方面我直接把这个jnz改成jmp分析

单步往下跟踪

发现先创建了一个互斥体,防止多开

CryptoWall勒索病毒分析

到这里我们可以先用IDA静态分析,配合OD动态验证我们的猜想

CryptoWall勒索病毒分析

CryptoWall勒索病毒分析

在IDA里我们可以看到,在获取系统版本之后,下面有几个call

第一个call跟进去之后,发现明显是在提权

CryptoWall勒索病毒分析

第二个call,发现看不到什么,回到OD,继续单步

CryptoWall勒索病毒分析

发现返回值是CreateThread

CryptoWall勒索病毒分析

继续单步,发现创建了一个线程,回调函数地址是我们传进来的参数a1

CryptoWall勒索病毒分析

IDA反编译查看该线程的源码,发现是在枚举进程

CryptoWall勒索病毒分析

经过动态分析这个线程

CryptoWall勒索病毒分析

0217FF40   0217FF48  UNICODE "<"

0217FF44   00000000

0217FF48   0000003C

0217FF4C   00000040

0217FF50   00000000

0217FF54   005A3038  UNICODE "runas"

0217FF58   005A33E8  UNICODE "vssadmin.exe"

0217FF5C   005A3410  UNICODE " Delete Shadows /All /Quiet "

静默删除 影子 ?不知道是下要干什么

分析完线程,回到主函数,继续单步发现创建了很多线程,因为文章篇幅,我们直接以找到感染函数和加密函数 为目的分析(毕竟是勒索病毒,分析重点)

单步跟踪发现,有个设置线程优先级的,想象一下,把这个线程设置成了空闲状态

CryptoWall勒索病毒分析

该线程回调函数地址地址为0x401710,IDA中跟随到该函数,发现里面在递归遍历磁盘,既然都遍历了,碰到合适的肯定要加密一下嘛,

进入递归函数,目录是肯定不会加密的,所以里面必不少的就是判断,目录,后缀名为我们需要加密的程序…等

CryptoWall勒索病毒分析

CryptoWall勒索病毒分析

CryptoWall勒索病毒分析

设置属性,读取到内存,又写入,很有可能是在加密,在该函数位置下断

00401C85    E8 46000000    CALL    ; 感染函数

CryptoWall勒索病毒分析

加密函数肯定是要加密我们的文本的,我在C:\backup放入一个txt文本

跑起来程序,发现这个位置确实放了我们的文件,F9运行

CryptoWall勒索病毒分析

断到读取我们放入的文本时,继续单步跟进

CryptoWall勒索病毒分析

发现要CreateFileW我们的文本了

CryptoWall勒索病毒分析

读取到内存

CryptoWall勒索病毒分析

先读取128个字节,并判断开头处是否为空,如果是则是已经加密过的,如果不是则会申请一段堆空间 

CryptoWall勒索病毒分析

把读取的内容放到这个空间

CryptoWall勒索病毒分析

往下单步跟踪发现又申请了一段堆空间,然后有两个可以函数,经过测试

CryptoWall勒索病毒分析

这个位置的call是加密函数

00401FAE   E8 FD1A0000    CALL

CryptoWall勒索病毒分析

最后就是设置文件指针,然后写入加密后的文本了

CryptoWall勒索病毒分析

IDA里面还是比较清晰的

CryptoWall勒索病毒分析

以下为加密函数

CryptoWall勒索病毒分析

如果这个加密是可逆的,那么我们就可以恢复原始文件了。弹出来的框框显示的是RSA-4096不可逆,有兴趣的可以研究

根据这个样本的特征我推测是CryptoWall勒索病毒,具体版本就不知道了

CryptoWall勒索病毒分析

加密前,加密后

CryptoWall勒索病毒分析

- End -

CryptoWall勒索病毒分析

看雪ID: 与时尽现。         

https://bbs.pediy.com/user-830989.htm

本文由看雪论坛  与时尽现。  原创

转载请注明来自看雪社区

热门图书推荐

CryptoWall勒索病毒分析   立即购买!

CryptoWall勒索病毒分析

公众号ID:ikanxue

官方微博:看雪安全

商务合作:wsc@kanxue.com

点击下方“阅读原文”,查看更多干货


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

轻量级Django

轻量级Django

茱莉亚·埃尔曼 (Julia Elman)、马克·拉温 (Mark Lavin) / 侯荣涛、吴磊 / 中国电力出版社; 第1版 / 2016-11-1 / 35.6

自Django 创建以来,各种各样的开源社区已经构建了很多Web 框架,比如JavaScript 社区创建的Angular.js 、Ember.js 和Backbone.js 之类面向前端的Web 框架,它们是现代Web 开发中的先驱。Django 从哪里入手来适应这些框架呢?我们如何将客户端MVC 框架整合成为当前的Django 基础架构? 本书讲述如何利用Django 强大的“自支持”功......一起来看看 《轻量级Django》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具