彩虹猫病毒(MEMZ)分析及思维导图

memz1

0x00 基本介绍

​ 彩虹猫病毒是一款MBR类型病毒,中招的用户MBR会被篡改重启后无法正常进入系统只会出现彩虹猫的动画。同时在中招之后用户的鼠标和键盘会间歇性失效,桌面不断出现弹窗并且出现负片效果,鼠标图标会被修改,发出错误提示的声音,诺通过任务管理器关闭MEMZ.exe进程桌面会出现大量弹窗,随后出现蓝屏。

​ 本文仅局限于逆向分析层面,如查壳,行为分析,运行效果分析等未在本文展开,文末会放上个人认为比较好的分析文章以供学习。

image-20201107104238650

0x01 环境及工具

应用程序名称:MEMZ.exe
MD5:19DBEC50735B5F2A72D4199C4E184960
SHA1: 6FED7732F7CB6F59743795B2AB154A3676F4C822
工具: IDA Pro 7.0 & OD&die
分析环境:VMware Workstation Pro 15 + Win7 x64

0x02 逆向分析

image-20201107110433438

程序中的函数很少我们只要把握大体执行流程,通过简单分析总共分为三大部分:

1. 初次运行执行流程

通过 GetCommandLineW 函数获取命令行参数,如果命令行无参数则为初次运行。

image-20201107105158378

弹出俩个弹窗对用户进行提醒,如果都选择确认病毒就正式运行

image-20201107105405242

创建了5个命令行参数为/watchdog的进程和一个命令行参数为/main的进程

image-20201107105907751

至此初次运行流程就已经结束了,接下来分析命令行参数为/watchdog的进程执行了什么

2. /watchdog

此模块创建了一个线程和名为“hax”的窗口,线程的回调函数稍后分析,先来看看windows窗口的消息处理函数

image-20201107110553380

我们发现消息处理函数只关注两个窗口关闭消息,如果捕获到了窗口关闭消息则触发 RandomBoxAndOverWindows 函数,那我们接下来就得分析该函数做了什么事情

image-20201107110820241

RandomBoxAndOverWindows

首先我们发现该函数创建了20个线程

image-20201107111312096

StartAddress

这个线程回调函数设置了消息钩子,对窗口创建进行挂钩让窗口出现的位置随机

image-20201107111409918
image-20201107111823503

弹窗的内容

image-20201107112051845

DestroyWindows

通过GetProcessAddress 获取 RtlAdjustPrivilege和NtRaiseHardError函数的地址,如果获取成功则先用RtlAdjustPrivilege函数提权如何使用NtRaiseHardError制造蓝屏;如果有一个获取失败则启动备用方案使用ExitWindowsEx 函数强制关机。

至此WndProcess消息回调函数就分析结束了,接下来回过头分析先前的线程回调函数

image-20201107113011378

ProtectSelf

循环创建进程快照,然后和自身路径进行比较,有相同的计数器就加1,假如有病毒进程被关闭了本次循环的计算器数值会小于上一次,就会进入RandomBoxAndOverWindows 函数,出现大量弹窗并引起蓝屏。

image-20201107113845506

3. /main

​ 接下来的操作就是本病毒最核心的部分了,对MBR的操作以及让电脑出现总总异常,这里放一个对MBR的介绍,简单的说就是早期系统的一个系统引导代码,从Win8开始以后的系统基本上都不在使用MBR分区做为系统引导了,都开始使用GPT分区了。

​ 将程序内的硬编码拷贝到申请的堆内存中去,然后再写入MBR区域,写入成功就弹出note.txt

image-20201107120243489

​ 然后就循环创建10个线程,线程函数都在405130处

image-20201107121218901
image-20201107121236491

​ 每个线程的功能都不相同,具体的功能都是由某个特定的API来实现的,相对来说是比较好分析的,这里就不具体展开了,就直接上思维导图里的图片了

image-20201107121529657

至此三大模块都分析完毕

0x03 总结

此病毒的分析还是比较顺利的,没有遇到什么反调试,对于病毒本身还是具有局限性的只能应用在使用MBR分区的操作系统中。在github上有人写出了源码,将在下面的参考文章中放出

0x04 参考文章

MEMZ源码参考

彩虹猫病毒的逆向