MEMZ 样本分析

前言

MEMZ属于是远古时期的一个样本了,其算是一个基本的恶搞程序,没有采取隐藏或者是免杀技术,适合刚入门的师傅们进行研究,但是MEMZ会修改MBR主引导扇区,以此来破坏电脑的正常启动,当用户重启时便会一直播放彩虹猫的画面,因此也不能完全算是一个恶搞,也带点木马的成分在里面。

准备工作

我们采用之前搭建好的Win10分析环境下运行MEMZ,并准备相关的分析工具如IDA等。

和分析其他样本一样我们先将其上传在线云沙箱观察一下程序的对应信息,如导入导出表等等。获取一些初步的信息。

此处我们采用微步云沙箱,进行上传分析

1.png

可以看到彩虹猫的一些行为特征,修改MBR,安装钩子获取信息等等,我们观察其对应的导入导出表

2.png

我们观察可以看到程序有创建文件、创建线程、创建对话框、设置鼠标等等相关的一些API函数,我们可以推测出其的一些相关功能特点

11.png

同时在程序中有许许多多的URL,全部是谷歌的相关搜索,合理推测程序会联网打开这些网页

3.png

沙箱的动态分析下我们可以观测到彩虹猫会自己创建六个线程,然后创建一个txt文件,前面所提到的许多导出函数在这个图中也有相关的体现

4.png

尝试运行

我们通过云沙箱的一定分析后,尝试跑一下对应的恶意程序观察其相关的破坏性

当我们尝试运行时会收到作者的提示,告诉你这个是一个恶意程序,确保我们不是一不小心点开的,需要我们两次进行确认

5.png

我们确认后程序会生成一个txt,告诉我们电脑被彩虹猫破坏了

6.png

之后会出现:

  • 电脑打开一些进程,如画图记事本控制面板
  • 文字出现反转,显示不正常
  • 电脑桌面不断设置反色,然后回复正常
  • 鼠标指针处出现各种报错图标,以及鼠标产生不正常的抖动
  • 电脑弹出反正的警告以及报错声
  • 电脑重启后出现彩虹猫

如:

7.png

当我们重启时候会产生一个蓝屏错误信息,随后启动便只剩下了一个彩虹猫,以及那奇妙的音乐…

8.png 9.png

逆向分析

之后就是我们的最重要的部分,尝试逆向分析程序

10.png

放入PE进行查壳,发现是无壳32位位程序,拖入IDA中进行反编译

需要注意一下,有些PE检测时会运行对应的程序,因为MEMZ存在有保护性确认,因此本地实体机分析时并不会产生太大的问题,但对于某些恶意样本可能会对主机产生不可逆的破坏

拖入IDA反编译后可以发现程序十分的简单,仅有26个函数,同时结构也十分清晰,方便我们的分析。

启动过程

12.png

13.png

通过观察我们可以看出MEMZ在询问我们是否启动后(两次警告过后),便会创建六个MEMZ进程,带有watchdog的五个进程以及一个带有main的进程

此时我们就可以发现创建的进程会进入里面的if块,此时我们开始对if块内的一些东西进行分析

14.png

MEMZ在启动创建多个进程后,又会启动相应的线程来不断遍历内存中的相关进程数目

15.png

当我们手动关闭或者是关机时候,那么对应的进程数目便会减少,进而调用崩溃函数,引发崩溃

21.png

同时我们可以注意到MEMZ调用了ntdll中的一些无文档的提权函数,通过dll中的函数进行提权以及引发蓝屏异常,并强制用户重启

修改MBR

MEMZ将覆写的数据进行提出,然后重新写入,导致了我们的磁盘启动后BIOS无法将权限给MBR进而无法启动OS

17.png

即覆写逻辑为:

我们稍后尝试提取出修改的数据

随机调用

18.png

MEMZ创建线程来进行随机打开文件,于off_405130处我们可以看到执行的函数每两个dword一组,每次执行完后,采用地址+2,获取下一个函数的地址

22.png

随机打开进程

打开网页

19.png

20.png

通过随机数来进行随机的打开进程,并返回一个随机数

鼠标抖动

23.png

通过随机数来改变当前鼠标所在位置,达到鼠标指针抖动效果

随机输入

24.png

MEMZ通过Hook输入信息并通过随机数产生输入进行发送

播放声音

25.png

改变桌面

26.png

随机位置弹提示框

27.png

28.png

29.png

文字反转

30.png

小总结

双击打开病毒文件时,首先弹出警告框,点取消直接退出,点确定则创建五个参数/watchdog和一个参数/main的进程。

/watchdog进程检测是否有病毒进程被关闭或者将要关机,有的话弹出20个提示框,然后蓝屏/关机。

/main进程首先修改磁盘MBR,然后用记事本弹出信息,最后循环执行打开程序/播放声音/反色屏幕/放图片/不断缩放屏幕/随意复制屏幕内容等操作并堵塞。

MBR修改内容提取

我们前面提到了MEMZ会修改MBR内容,那么修改了什么呢?我们尝试提取一下。

我们可以通过IDA调试拿到数据,我们前文所分析过了,MEMZ会创建带参数的启动,其中带/main参数的可以修改MBR,因此我们在对应位置上打上一个断点,提取就是了

注意此处调试需要带参数

那么问题来了,我们提取到后该怎么分析呢?

我们可以使用虚拟机Bochs来进行调试

Bochs是一个开源的虚拟机,同时Bochs完全是靠软件来模拟整个PC环境,因此它非常的适合开发操作系统

我们提取到了对应的MBR,我们利用Bochs中的创建磁盘可以新建一个启动硬盘

31.png

我们找到Bochs的安装文件夹,以管理员权限进行打开bximage

32.png

按照上图进行设置,磁盘大小以及名字可以自己定义,需要注意的是不要带有任何的中文

33.png

之后找到bochsrc-sample进行修改

34.png

35.png

此处的abc为一个文件夹,文件夹不要带任何的中文!!!

按照上述过程设置完毕后,将txt文件后缀改为bxrc,之后启动,然后选择continue,加载一次镜像成功后便可以将bxrc文件直接拖入IDA进行调试分析

36.png

我们反汇编后可以看到其主要是 16 位的汇编和底层机器进行打交道,我们比较难以观察,于是采用动调观察修改后的启动过程

37.png

我们大致可以得到如下过程图:

38.png

至此样本分析大致就结束了

不知道为什么在bochs上跑出来的彩虹猫音乐变成了全损😥

总结

MEMZ的感染特征比较的明显,可以对比MBR数据是否为其修改过后的数据,来判断是否中毒

同时MEMZ仅存在MBR部分为恶意部分,其他小玩意均为无害,可以拿来图一乐,以及感叹作者能利用 16 位汇编展现动画

有时间的话想自己写一个相似的小玩意,但苦于学业压力,天天被迫赶作业🙄🙄


MEMZ 样本分析
https://equinox-shame.github.io/2022/10/26/MEMZ 样本分析/
作者
梓曰
发布于
2022年10月26日
许可协议