菜鸟之路---2,简单的勒索病毒分析

样本链接:https://pan.baidu.com/s/1mje8FMw 密码:wzxv

1.样本概况

1.1 样本信息

MD5值:MD5: DBD5BEDE15DE51F6E5718B2CA470FC3F

SHA1:863F5956863D793298D92610377B705F85FA42B5

CRC32: 1386DD7A

病毒行为:自我复制,文件加密,释放文件。

1.2 测试环境及工具

测试环境:Windows7

测试工具:火绒剑,Ollydbg,IDAPro,LordPE,x32dbg,PEiD

1.3 分析目标

这是一个略有技术含量的病毒

2.具体行为分析

1,先把程序拉进火绒剑分析一波,看到有创建进程和自我复制并且创建进程的操作。

2,再往下跟,发现修改了自启动项,并且机制是:cmd+命令的形式启动。

3,继续往下跟,发现他进行了释放文件的操作,在根据病毒实际运行的效果(记得给虚拟机拍个快照),可以得出结论,他会遍历文件并且给许多文件夹添加了图片和一个txt文件,而且此时会发现任务管理器好像也打不开了,连任务管理器都被干了,这个程序问题很大。

4,火绒剑进行简单的分析之后,我们把程序拉入OD,根据上面的分析结果,我们先在CreateProcessW这个函数上下个断点,跑起来试试。此时有个注意的地方,因为这个病毒会修改我们的文件,导致许多工具无法正常使用,这时候就得恢复一下快照了,哎,这病毒真是恶心。

5,好了,程序已经断了下来了,竟然是创建了一个和自己一模一样的进程,而且还是挂起状态,根据经验,挂起状态的程序可能调用WriteProcessMemory改写进程内的数据。我们可以在这个函数和ResumeThread恢复线程的函数的地方下断点。

6,断下来之后,我们看看写入的数据时什么,发现了一个有意思的数据,4D5A,并且写入的地址是400000,这有点像函数的加载基址,试图把要写入的数据解析成PE文件头试试。

7,再往下有看到了一个心仪数组,50,45。看来我们的猜想是对的。往下看可以知晓写入后新的文件的加载基址是147F0,这个一会dump文件要用到。

8,继续往下运行,直到卡在恢复线程的那块,这个时候就可以dump文件了,但是有个文件,用OD附加新创建的进程,只能看到一个病毒的进程,实际上是有两个的,看来重名的文件OD有些不给力,换x32dbg试试。具体步骤如下:

9,在地址0x1336C20上调用GetModuleFileNameW这个函数,返回的是文件所在的位置。

10,在地址0x1336C59上调用DeleteFileW这个函数来删除桌面的文件,可惜好像删除失败。

11,在地址0x13374A5的地址上调用可一个函数,完成字符串的拼接,得到的拼接后的文件路径为: "C:\Users\15pb-win7\Documents\xjblnu.exe"(文件名感觉是随机的)。

12,在地址0x13374CE上调用了CopyFileW这个函数,把桌面上的病毒文件拷贝到:

"C:\Users\15pb-win7\Documents\xjblnu.exe"里面,看来是要伪装自己干坏事。

13,在地址0x13374D9上调用SetFileAttributesW这个函数,设置文件的属性为0x02,参数0x02意思是该文件是隐藏的。把自己复制到别的地方,并且改名又隐藏,套路深。

14,在地址0x133752D上调用函数CreateProcessW创建进程,运行起来的进程正是复制到C盘目录下的那个文件,狐狸尾巴好像露出来了。

15,之后继续跟踪,发现一条可疑的指令:在地址0x 13E32E7上的这个函数把传入的字符串进行拼接,好像成了一条命令:

 "/c DELC:\Users\15PB-W~1\Desktop\带混淆~1\1_dump.exe",可能接下来要使用cmd命令干什么事情了。

16,继续往下跟,在地址0x13E0A84上调用了函数:GetEnvironmentVariableW(是一个从调用该函数的进程的环境变量中返回指定的变量名值的函数,主要参数有lpName、lpBuffer等),这块传入的参数是: "ComSpec",得到的是cmd命令所在的路径。(第二个截图是他的返回值)

17,继续往下跟,在地址0x13E0AA4上调用函数ShellExecuteW,

ShellExecute的功能是运行一个外部程序(或者是打开一个已注册的文件、打开一个目录、打印一个文件等等),并对外部程序有一定的控制。运行完之后程序就结束了,没有发现什么不轨的动作,但是他却有打开另一个相同的进程,只是进程路径不一样,那么这个程序就很有可能是判断自己是不是在某个特定的文件夹里面。然后才干坏事

18,此时我们换到之前打开的新的进程去分析。调用函RegCreateKeyExW用来创建指定的注册键。

之后,调用函数RegQueryValueExW检索一个已打开的注册表句柄中,指定的注册表键的类型和设置值。

这些好像是对注册表进行的操作,我们等程序运行之后打开注册表看看,果然有在注册表中添加启动项。

19,接下来继续往下跟,在地址0x013DFDF2上调用函数CreateFileW,创建了一个名为"C:\Users\15pb-win7\Documents\+recover+file.txt"的文件,在地址0x013DFE11上调用函数WriteFile写入文件,这个txt文件是病毒释放出来的恶意文件。

19,在地址0x013DFED7上调用函数GdipCreateBitmapFromHBITMAP

从句柄创建 GDI+ 图像(lBitmap)

lRes = GdipSaveImageToFile(lBitmap, StrPtr(filename),tJpgEncoder, tParams) '利用lBitmap该值保存图像(创建可一个Bitmap)

20,此时我们在IDA里面观察到有创建了不止4个线程,过滤一波发现四个问题比较大的线程:


21,因为这些都是基于固定加载基址的,此刻我们应该关掉随机基址去分析,会方便一些,前面没有关随机,有瑕疵。我们先看第一个线程

21-1,在第一个线程中,即0x406EB0的回调函数中,我们发现他在不停的判断




21-2,如果符合判断的要求,会跳到一个重要的函数:TerminateProcess,作用是终止指定进程及所有线程。分析出这个线程是终止任务管理器,cmd,注册表,组策略等进程。

22,接下来分析第二个线程,0x401710上的回调函数,设断点,进去看看。

22-1,在地址0x00401768上调用函数GetLogicalDriveStringsW,获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径。

22-2,在地址0x00401865上调用函数GetDriveTypeW,判断一个磁盘驱动器的类型。

22-3,在地址0x0040189B上调用函数GetVolumeInformationW,获取与一个磁盘卷有关的信息。

22-4,在地址0x4018A8上调用了一个函数跟进去发现哟许多可疑的东西。在地址0x004019BC上调用函数FindFirstFileW,遍历文件夹的节奏。

22-5,一边遍历文件,一边在地址0x004102E6上调用函数GdipSaveImageToFile,生成图片到传入的目录中。

22-6,在地址0x00410352上调用函数CreateFileW,生成txt在制定的目录下。

22-7,在地址0x00410380上调用函数往上面创建的文件夹里写入文件WriteFile

22-8,之后做了一些判断,是不是windows,programfiles,program data。

  



22-9,如果不是上述的文件夹,那么就进入函数0x401C85进行加密操作,里面有一系列的读写文件的操作,这个应该是对文件进行了加密操作。

23,接下来分析第三个线程。

23-1,在地址0x0040730E上调用函数ShellExecuteExW,一个可疑的调用。看看他的参数,是以管理员权限运行一行命令,其中参数:Delete Shadows /All/Quiet的作用是:删除所有数据备份。太坏了。

24,接下来分析第四个线程:

在地址0x403182的地址上,是第四个线程的回调函数,进行了一系列有关于联网的操作。

24-1,连接网络

 

24-2,分解url

 

24-3,设置和查询internet选项

24-4,发送HTTP请求到指定的服务器

25,在地址0x410aa4上调用函数ShellExcuteW打开cmd运行了一串命令:"/c DEL C:\Users\15PB-W~1\DOCUME~1\ceivjn.exe >>NUL",删除自己

26,至此病毒基本分析完毕。

2.1.1 恶意程序对用户造成的危害(图)

1,修改注册表启动项。

2,文件加密

3,释放恶意文件

4,进行网络连接

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值