记一次MEMZ样本分析
字数 1935 2025-08-24 07:48:22
MEMZ病毒样本分析教学文档
1. 样本概述
MEMZ病毒(又称彩虹猫病毒)是一个恶搞性质的MBR病毒,主要特点:
- 修改MBR主引导扇区,破坏电脑正常启动
- 运行后显示彩虹猫画面并播放音乐
- 采用多进程守护机制防止被终止
- 包含多种恶搞效果(鼠标失控、窗口变形、弹窗等)
2. 样本行为分析
2.1 运行表现
- 初始运行显示2个确认提示框
- 弹出记事本程序
- 创建6个MEMZ进程
- 打开多个浏览器窗口
- 鼠标控制失效
- 窗口颜色变化
- 桌面弹出大量图标
- 任意关闭一个MEMZ进程或尝试关机都会导致系统崩溃蓝屏
- 重启后无法进入系统,显示彩虹猫动画
2.2 进程结构
- 主进程创建5个"/watchdog"参数的守护进程
- 主进程创建1个"/main"参数的主功能进程
- 主进程设置主功能进程为最高优先级后退出
3. 技术分析
3.1 守护机制(watchdog)
- 每个守护进程创建监控线程(sub_40114A)
- 线程功能:
- 定期枚举系统进程
- 统计MEMZ进程数量
- 发现进程数量减少时触发蓝屏关机(sub_401021)
蓝屏关机函数(sub_401021):
- 创建20个线程制造大量随机弹窗
- 调用RtlAdjustPrivilege提权
- 调用NtRaiseHardError制造蓝屏
- 调用ExitWindowsEx强制注销系统
3.2 窗口钩子
- 使用SetWindowsHookEx设置全局钩子
- 回调函数(fn)随机修改窗口位置
- 拦截WM_CLOSE和WM_ENDSESSION消息,触发蓝屏关机
3.3 主功能(main)
3.3.1 10个恶意线程
通过结构体数组定义10个线程函数及其延迟时间:
struct FuncAddrDelay {
DWORD pFuncAddr; // 函数地址
DWORD dwTimeDelay; // 延迟时间
};
线程功能详情:
-
浏览器操作线程
- 随机打开网站
- 启动任务管理器、注册表编辑器、计算器等
-
鼠标控制线程
- 使鼠标位置失控
-
键盘监控线程
- 插入键盘事件
- 监控键盘输入
-
声音播放线程
- 播放系统声音
-
桌面复制线程
- 使用BitBlt对桌面像素进行位块转换
-
弹窗线程
- 显示"Still using this computer?"消息框
-
图标绘制线程
- 在鼠标位置绘制图标
-
窗口变形线程
- 枚举子窗口并使其变形
-
界面大小线程
- 改变桌面大小和形状
-
颜色修改线程
- 改变桌面颜色
3.3.2 MBR覆盖
病毒核心功能:覆盖主引导记录(MBR)
- 使用CreateFileA以读写权限打开"\.\PhysicalDrive0"
- 在堆中准备恶意代码
- 使用WriteFile将恶意代码写入MBR
- 恶意代码组成:
- 前304字节(byte_402118):覆盖部分MBR或初始化代码
- 跳过206字节
- 从510字节开始(byte_402248):1952字节彩虹猫动画数据
4. 关键API分析
| 功能类别 | DLL | 关键API |
|---|---|---|
| 窗口操作 | GDI32 | BitBlt, StretchBlt |
| 程序执行 | SHELL32 | ShellExecute |
| 声音播放 | WINMM | PlaySoundA |
| 鼠标控制 | USER32 | SetCursorPos, GetCursorPos |
| 消息循环 | USER32 | GetMessage, TranslateMessage, DispatchMessage |
| 钩子函数 | USER32 | SetWindowHookEx, UnhookWindowHookEx, CallNextHookEx |
| 权限提升 | ADVAPI32 | OpenProcessToken, LookupPrivilegeValue, AdjustTokenPrivileges |
| 进程枚举 | KERNEL32 | CreateToolhelp32Snapshot, Process32First, Process32Next |
5. 防御建议
-
行为监控
- 监控对PhysicalDrive0的写操作
- 监控多进程相互守护行为
- 监控全局钩子设置
-
防护措施
- 禁用不必要的权限提升
- 定期备份MBR
- 使用虚拟机或沙箱分析可疑程序
-
清除方法
- 使用PE修复工具重建MBR
- 使用WinPE环境修复引导
- 重写MBR扇区
6. 分析工具推荐
-
静态分析:
- PEID/ExeInfoPE(查壳)
- IDA Pro(反汇编)
- StudyPE+(导入表分析)
-
动态分析:
- Process Monitor(进程监控)
- Process Explorer(进程查看)
- API Monitor(API调用监控)
-
调试工具:
- WinDbg(内核调试)
- OllyDbg/x64dbg(用户态调试)